یہ حکمت عملی مارکیٹ کے رجحانات اور انٹری پوائنٹس کا تعین کرنے کے لئے تیز رفتار اور سست حرکت پذیر اوسط لائنوں کے مابین کراس اوور پر مبنی تجارتی سگنل تیار کرتی ہے۔ جب تیز EMA سست EMA سے اوپر عبور کرتا ہے تو ، اس کا فیصلہ کیا جاتا ہے کہ مارکیٹ اوپر کے رجحان میں ہے اور خرید کا اشارہ پیدا ہوتا ہے۔ جب تیز EMA سست EMA سے نیچے عبور کرتا ہے تو ، اس کا فیصلہ کیا جاتا ہے کہ مارکیٹ نیچے کے رجحان میں ہے اور فروخت کا اشارہ پیدا ہوتا ہے۔ حکمت عملی خطرات کو سنبھالنے کے لئے اسٹاپ نقصان اور منافع کی قیمتیں بھی طے کرتی ہے۔
یہ حکمت عملی مارکیٹ کے رجحان کا تعین کرنے کے لئے تیز EMA (8 دن) اور سست EMA (21 دن) کے درمیان کراس اوور کا استعمال کرتی ہے۔ مخصوص منطق یہ ہے:
یہ حکمت عملی مارکیٹ کی سمت اور الٹ پوائنٹس کو مؤثر طریقے سے پکڑنے کے لئے رفتار کے اشارے اور رجحان تجزیہ کو جوڑتی ہے۔ چلتی اوسط کے ساتھ ساتھ تیز اور سست ای ایم اے کراس اوور کچھ شور مچانے والے تجارتی سگنل کو فلٹر کرسکتا ہے۔
اس حکمت عملی کے اہم فوائد یہ ہیں:
خلاصہ یہ ہے کہ یہ حکمت عملی رجحان اور رفتار کے اشارے کو جوڑتی ہے۔ پیرامیٹر ٹوننگ کے ذریعے ، یہ مختلف مارکیٹ کے ماحول کو اپنانے کے قابل ہے اور یہ ایک نسبتا flexible لچکدار قلیل مدتی تجارتی حکمت عملی ہے۔
اس حکمت عملی کے ساتھ کچھ خطرات بھی ہیں:
ان خطرات سے نمٹنے کے لیے کچھ اصلاحات کی جا سکتی ہیں:
اس حکمت عملی کو بہتر بنانے کے لیے ابھی بھی کافی گنجائش موجود ہے۔
یہ اقدامات حکمت عملی کے استحکام ، موافقت اور منافع میں بہتری لاسکتے ہیں۔
اختتام کے طور پر ، یہ رجحان کی پیروی اور رفتار کے اشارے کی کراسنگ پر مبنی ایک عام قلیل مدتی تجارتی حکمت عملی ہے۔ یہ EMA کراس اوور منطق اور اسٹاپ نقصان / منافع حاصل کرنے کو تیزی سے سمتی مارکیٹ کے مواقع پر قبضہ کرنے کے لئے جوڑتا ہے۔ دیگر معاون اشارے اور خودکار پیرامیٹر ٹیوننگ کے طریقوں کو متعارف کرانے سے اصلاح کے لئے کافی گنجائش موجود ہے ، جو حکمت عملی کی کارکردگی کو زیادہ مستحکم اور بقایا بنا سکتی ہے۔ یہ ان سرمایہ کاروں کے لئے موزوں ہے جن کے پاس مارکیٹ کی کچھ تفہیم ہے اور وہ کثرت سے تجارت کرنے کے لئے تیار ہیں۔
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © TradersPostInc //@version=5 strategy('TradersPost Example MOMO Strategy', overlay=true) startTime = input(defval = timestamp('01 Jan 2021 00:00 +0000'), title = 'Start Time', group = 'Date Range') endTime = input(defval = timestamp('31 Dec 2023 23:59 +0000'), title = 'End Time', group = 'Date Range') timeCondition = true timeConditionEnd = timeCondition[1] and not timeCondition fastEmaLength = input.int(defval = 8, title = 'Fast EMA Length') slowEmaLength = input.int(defval = 21, title = 'Slow EMA Length') sides = input.string(defval = 'Both', title = 'Sides', options = ['Long', 'Short', 'Both', 'None']) fastEma = ta.ema(close, fastEmaLength) slowEma = ta.ema(close, slowEmaLength) isUptrend = fastEma >= slowEma isDowntrend = fastEma <= slowEma trendChanging = ta.cross(fastEma, slowEma) ema105 = request.security(syminfo.tickerid, '30', ta.ema(close, 105)[1], barmerge.gaps_off, barmerge.lookahead_on) ema205 = request.security(syminfo.tickerid, '30', ta.ema(close, 20)[1], barmerge.gaps_off, barmerge.lookahead_on) plot(ema105, linewidth=4, color=color.new(color.purple, 0), editable=true) plot(ema205, linewidth=2, color=color.new(color.purple, 0), editable=true) aa = plot(fastEma, linewidth=3, color=color.new(color.green, 0), editable=true) bb = plot(slowEma, linewidth=3, color=color.new(color.red, 0), editable=true) fill(aa, bb, color=isUptrend ? color.green : color.red, transp=90) tradersPostBuy = trendChanging and isUptrend and timeCondition tradersPostSell = trendChanging and isDowntrend and timeCondition pips = syminfo.pointvalue / syminfo.mintick percentOrPipsInput = input.string('Percent', title='Percent or Pips', options=['Percent', 'Pips']) stopLossLongInput = input.float(defval=0, step=0.01, title='Stop Loss Long', minval=0) stopLossShortInput = input.float(defval=0, step=0.01, title='Stop Loss Short', minval=0) takeProfitLongInput = input.float(defval=0, step=0.01, title='Target Profit Long', minval=0) takeProfitShortInput = input.float(defval=0, step=0.01, title='Target Profit Short', minval=0) stopLossPriceLong = ta.valuewhen(tradersPostBuy, close, 0) * (stopLossLongInput / 100) * pips stopLossPriceShort = ta.valuewhen(tradersPostSell, close, 0) * (stopLossShortInput / 100) * pips takeProfitPriceLong = ta.valuewhen(tradersPostBuy, close, 0) * (takeProfitLongInput / 100) * pips takeProfitPriceShort = ta.valuewhen(tradersPostSell, close, 0) * (takeProfitShortInput / 100) * pips takeProfitALong = takeProfitLongInput > 0 ? takeProfitLongInput : na takeProfitBLong = takeProfitPriceLong > 0 ? takeProfitPriceLong : na takeProfitAShort = takeProfitShortInput > 0 ? takeProfitShortInput : na takeProfitBShort = takeProfitPriceShort > 0 ? takeProfitPriceShort : na stopLossALong = stopLossLongInput > 0 ? stopLossLongInput : na stopLossBLong = stopLossPriceLong > 0 ? stopLossPriceLong : na stopLossAShort = stopLossShortInput > 0 ? stopLossShortInput : na stopLossBShort = stopLossPriceShort > 0 ? stopLossPriceShort : na takeProfitLong = percentOrPipsInput == 'Pips' ? takeProfitALong : takeProfitBLong stopLossLong = percentOrPipsInput == 'Pips' ? stopLossALong : stopLossBLong takeProfitShort = percentOrPipsInput == 'Pips' ? takeProfitAShort : takeProfitBShort stopLossShort = percentOrPipsInput == 'Pips' ? stopLossAShort : stopLossBShort buyAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "buy", "price": ' + str.tostring(close) + '}' sellAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "sell", "price": ' + str.tostring(close) + '}' exitLongAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "exit", "price": ' + str.tostring(close) + '}' exitShortAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "exit", "price": ' + str.tostring(close) + '}' if (sides != "None") if tradersPostBuy strategy.entry('Long', strategy.long, when = sides != 'Short', alert_message = buyAlertMessage) strategy.close('Short', when = sides == "Short" and timeCondition, alert_message = exitShortAlertMessage) if tradersPostSell strategy.entry('Short', strategy.short, when = sides != 'Long', alert_message = sellAlertMessage) strategy.close('Long', when = sides == 'Long', alert_message = exitLongAlertMessage) exitAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "exit"}' strategy.exit('Exit Long', from_entry = "Long", profit = takeProfitLong, loss = stopLossLong, alert_message = exitAlertMessage) strategy.exit('Exit Short', from_entry = "Short", profit = takeProfitShort, loss = stopLossShort, alert_message = exitAlertMessage) strategy.close_all(when = timeConditionEnd)