یہ حکمت عملی چلتی اوسط کراس اوور اصول پر مبنی ہے۔ یہ طویل عرصے تک چلتی ہے جب مختصر مدت کی چلتی اوسط نیچے سے طویل مدتی چلتی اوسط سے تجاوز کرتی ہے ، اور جب مختصر مدت کی چلتی اوسط اوپر سے طویل مدتی چلتی اوسط سے تجاوز کرتی ہے تو مختصر ہوجاتی ہے۔ یہ حکمت عملی کے بعد ایک عام رجحان ہے۔
یہ حکمت عملی بنیادی طور پر قلیل مدتی اور طویل مدتی سادہ حرکت پذیر اوسطوں کا حساب لگاتی ہے اور ان کے کراس اوور کی بنیاد پر رجحان کی سمت کا تعین کرتی ہے۔
خاص طور پر، یہ سب سے پہلے قلیل مدتی چلتی اوسط xMA اور طویل مدتی چلتی اوسط کا حساب لگاتا ہے، جہاں مختصر مدت لین ہے، اور طویل مدتی مدت 2 * لین ہے.
اس کے بعد یہ چیک کرتا ہے کہ آیا قلیل مدتی ایم اے طویل مدتی ایم اے کے اوپر عبور کرتا ہے ، اور اگر کراس اوور ہوتا ہے تو ایک لمبا سگنل تیار کرتا ہے۔ یہ یہ بھی چیک کرتا ہے کہ آیا قلیل مدتی ایم اے طویل مدتی ایم اے سے نیچے عبور کرتا ہے ، اور اگر کراس اوور ہوتا ہے تو ایک مختصر سگنل تیار کرتا ہے۔
ایک طویل سگنل موصول ہونے پر ، اگر کوئی پوزیشن نہیں ہے تو وہ مارکیٹ کی قیمت پر ایک طویل پوزیشن کھولتا ہے۔ مختصر سگنل موصول ہونے پر ، اگر کوئی پوزیشن نہیں ہے تو وہ مارکیٹ کی قیمت پر ایک مختصر پوزیشن کھولتا ہے۔
اس کے علاوہ ، اسٹاپ نقصان اور منافع لینے کے مقامات تشکیل دیئے گئے ہیں۔ لمبی تجارت کے ل the ، اسٹاپ نقصان داخلہ قیمت - اسٹاپ نقصان فیصد * داخلہ قیمت ، اور داخلہ قیمت پر منافع + منافع حاصل کرنے کا فیصد * داخلہ قیمت پر مقرر کیا جاتا ہے۔ مختصر تجارت کے ل the ، اسٹاپ نقصان داخلہ قیمت + اسٹاپ نقصان فیصد * داخلہ قیمت ، اور داخلہ قیمت پر منافع حاصل کریں - منافع حاصل کرنے کا فیصد * داخلہ قیمت پر مقرر کیا جاتا ہے۔
آخر میں، رجحان کا تعین کرنے میں مدد کے لئے حرکت پذیر اوسط کو تصور کے لئے پلاٹ کیا جاتا ہے۔
سادہ اور سمجھنے میں آسان، beginners کے لئے موزوں.
مؤثر طریقے سے منتقل اوسط crossovers کی بنیاد پر مارکیٹ کے رجحانات کو ٹریک کر سکتے ہیں.
سٹاپ نقصان اور منافع لے کر خطرات کو کنٹرول کیا جاتا ہے.
حرکت پذیر اوسط کی نمائش رجحان کی تبدیلیوں کو بدیہی طور پر ظاہر کرتی ہے۔
چلتی اوسطوں کے پیچھے پیچھے اثرات ہوتے ہیں، جس کی وجہ سے بہترین انٹری پوائنٹس کی کمی واقع ہوسکتی ہے۔
غلط سٹاپ نقصان کی ترتیب کے نتیجے میں سٹاپ بہت وسیع یا بہت تنگ ہو سکتا ہے.
قیمتوں میں گھومنے سے غلط سگنل پیدا ہو سکتے ہیں۔
صرف متحرک اوسط ادوار کی بنیاد پر اصلاح سے زیادہ فٹ ہونے کا سبب بن سکتا ہے۔
ان خطرات کو کم کرنے کے لئے، لوزر اسٹاپ کا استعمال کرتے ہوئے، چلتی اوسط مدت کے مجموعے کو بہتر بنانے، فلٹر اشارے وغیرہ کو شامل کرنے کے ذریعے کم کیا جا سکتا ہے.
غلط سگنل سے بچنے کے لئے فلٹرنگ کے لئے MACD، KDJ جیسے دیگر اشارے شامل کریں.
بہترین پیرامیٹرز تلاش کرنے کے لئے مختصر اور طویل چلتی اوسط ادوار کے مجموعے کو بہتر بنائیں۔
مختلف سٹاپ نقصان / منافع لینے کی حکمت عملی جیسے ٹریلنگ اسٹاپ کی جانچ کریں.
سرمایہ کے استعمال کو بہتر بنانے کے لئے پوزیشن سائزنگ شامل کریں.
اس حکمت عملی میں ایک واضح اور آسان منطق ہے ، جو حرکت پذیر اوسط کراس اوورز کی بنیاد پر رجحانات کو مؤثر طریقے سے ٹریک کرسکتی ہے ، اور اس میں قابو پانے والے خطرات ہیں۔ یہ ابتدائی افراد کے لئے سیکھنے کے لئے موزوں ہے۔ لیکن صرف حرکت پذیر اوسط پر انحصار کرنے سے غلط سگنل پیدا ہوسکتے ہیں۔ اسے زیادہ مضبوط بنانے کے لئے مختلف پہلوؤں میں اس کی اصلاح کے لئے ابھی بھی بہت زیادہ گنجائش ہے۔
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //@strategy_alert_message {{strategy.order.alert_message}} //////////////////////////////////////////////////////////// // Copyright by HPotter v2.0 19/09/2023 // MA Crossover Bot for OKX Exchange //////////////////////////////////////////////////////////// var ALERTGRP_CRED = "entry" signalToken = input("", "Signal Token", inline = "11", group = ALERTGRP_CRED) OrderType = input.string("market", "Order Type", options = ["market", "limit"], inline = "21", group = ALERTGRP_CRED) OrderPriceOffset = input.float(0, "Order Price Offset", minval = 0, maxval = 100, step = 0.01, inline = "21", group = ALERTGRP_CRED) InvestmentType = input.string("percentage_balance", "Investment Type", options = ["margin", "contract", "percentage_balance", "percentage_investment"], inline = "31", group = ALERTGRP_CRED) Amount = input.float(100, "Amount", minval = 0.01, inline = "31", group = ALERTGRP_CRED) getAlertMsg(action, instrument, signalToken, orderType, orderPriceOffset, investmentType, amount) => str = '{' str := str + '"action": "' + action + '", ' str := str + '"instrument": "' + instrument + '", ' str := str + '"signalToken": "' + signalToken + '", ' //str := str + '"timestamp": "' + str.format_time(timenow, "yyyy-MM-dd'T'HH:mm:ssZ", "UTC+0") + '", ' str := str + '"timestamp": "' + '{{timenow}}' + '", ' str := str + '"orderType": "' + orderType + '", ' str := str + '"orderPriceOffset": "' + str.tostring(orderPriceOffset) + '", ' str := str + '"investmentType": "' + investmentType + '", ' str := str + '"amount": "' + str.tostring(amount) + '"' str := str + '}' str getOrderAlertMsgExit(action, instrument, signalToken) => str = '{' str := str + '"action": "' + action + '", ' str := str + '"instrument": "' + instrument + '", ' str := str + '"signalToken": "' + signalToken + '", ' str := str + '"timestamp": "' + '{{timenow}}' + '", ' str := str + '}' str strategy(title='OKX: MA Crossover', overlay=true) Len = input(13) Profit = input.float(7, title='Take Profit %', minval=0.01) / 100 Stop = input.float(7, title='Stop Loss %', minval=0.01) / 100 xMA = ta.sma(close, Len) //Robot State isLong = strategy.position_size > 0 isShort = strategy.position_size < 0 isFlat = strategy.position_size == 0 //Current Signal doLong = low < xMA[1] ? true : false doShort = high > xMA[1] ? true: false //Backtest Start Date tm = timestamp(2022, 01, 01, 09, 30) //Entry and exit orders if doLong[2] == false and isLong == false and doLong and time > tm strategy.cancel_all() buyAlertMsgExit = getOrderAlertMsgExit(action = 'EXIT_LONG', instrument = syminfo.ticker, signalToken = signalToken) buyAlertMsg = getAlertMsg(action = 'ENTER_LONG', instrument = syminfo.ticker, signalToken = signalToken, orderType = OrderType, orderPriceOffset = OrderPriceOffset, investmentType = InvestmentType, amount = Amount) strategy.entry('Long', strategy.long, limit = close, comment='Long', alert_message =buyAlertMsg) strategy.exit("ExitLong", 'Long', stop=close - close * Stop , limit = close + close * Profit , qty_percent = 100, alert_message = buyAlertMsgExit) if doShort[2] == false and isShort == false and doShort and time > tm strategy.cancel_all() sellAlertMsgExit = getOrderAlertMsgExit(action = 'EXIT_SHORT', instrument = syminfo.ticker, signalToken = signalToken) sellAlertMsg = getAlertMsg(action = 'ENTER_SHORT', instrument = syminfo.ticker, signalToken = signalToken, orderType = OrderType, orderPriceOffset = OrderPriceOffset, investmentType = InvestmentType, amount = Amount) strategy.entry('Short', strategy.short, limit=close, comment='Short', alert_message = sellAlertMsg) strategy.exit("ExitShort", 'Short', stop=close + close * Stop , limit = close - close * Profit , qty_percent = 100, alert_message = sellAlertMsgExit) //Visual barcolor(isShort ? color.red : isLong ? color.green : color.blue) plot(xMA, color=color.new(color.red, 0), title='MA')