यह रणनीति बाजार के रुझानों और प्रवेश बिंदुओं को निर्धारित करने के लिए तेजी से और धीमी गति से चलती औसत रेखाओं के बीच क्रॉसओवर के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती है। जब तेजी से ईएमए धीमी ईएमए के ऊपर पार करता है, तो यह माना जाता है कि बाजार एक ऊपर की प्रवृत्ति में है और एक खरीद संकेत उत्पन्न होता है। जब तेजी से ईएमए धीमी ईएमए के नीचे पार करता है, तो यह माना जाता है कि बाजार एक नीचे की प्रवृत्ति में है और एक बिक्री संकेत उत्पन्न होता है। रणनीति जोखिमों को प्रबंधित करने के लिए स्टॉप लॉस और लाभ मूल्य भी निर्धारित करती है।
रणनीति बाजार की प्रवृत्ति निर्धारित करने के लिए एक तेज (8-दिवसीय) और धीमी (21-दिवसीय) ईएमए के बीच क्रॉसओवर का उपयोग करती है। विशिष्ट तर्क हैः
यह रणनीति बाजार की दिशा और उलट बिंदुओं को प्रभावी ढंग से पकड़ने के लिए गति संकेतक और प्रवृत्ति विश्लेषण को जोड़ती है। चलती औसत के साथ तेजी से और धीमी ईएमए क्रॉसओवर कुछ शोर ट्रेडिंग संकेतों को फ़िल्टर कर सकती है।
इस रणनीति के मुख्य लाभ इस प्रकार हैंः
संक्षेप में, रणनीति प्रवृत्ति और गति संकेतक को जोड़ती है। पैरामीटर ट्यूनिंग के माध्यम से, यह विभिन्न बाजार वातावरणों के अनुकूल हो सकती है और अपेक्षाकृत लचीली अल्पकालिक ट्रेडिंग रणनीति है।
इस रणनीति के साथ कुछ जोखिम भी हैंः
इन जोखिमों से निपटने के लिए कुछ अनुकूलन किए जा सकते हैंः
इस रणनीति को अनुकूलित करने के लिए अभी भी काफी जगह हैः
ये उपाय रणनीति की स्थिरता, अनुकूलन क्षमता और लाभप्रदता में काफी सुधार कर सकते हैं।
निष्कर्ष में, यह एक विशिष्ट अल्पकालिक ट्रेडिंग रणनीति है जो प्रवृत्ति के बाद और गति संकेतक क्रॉसिंग पर आधारित है। यह ईएमए क्रॉसओवर तर्क और स्टॉप लॉस / ले लाभ को तेजी से दिशात्मक बाजार के अवसरों को पकड़ने के लिए जोड़ती है। अन्य सहायता संकेतकों और स्वचालित पैरामीटर ट्यूनिंग विधियों को पेश करके अनुकूलन के लिए पर्याप्त जगह है, जो रणनीति प्रदर्शन को अधिक स्थिर और उत्कृष्ट बना सकती है। यह उन निवेशकों के लिए उपयुक्त है जिनके पास कुछ बाजार समझ है और अक्सर व्यापार करने के लिए तैयार हैं।
/*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)