
यह रणनीति तेजी से और धीमी गति से चलती औसत के क्रॉसिंग के आधार पर बाजार के रुझान और खरीदने और बेचने के बिंदु का न्याय करती है। जब तेजी से ईएमए पर धीमी गति से ईएमए को पार करते हैं तो बाजार को एक उछाल के रूप में देखते हैं और एक खरीद संकेत उत्पन्न करते हैं; जब तेजी से ईएमए नीचे धीमी गति से ईएमए को पार करते हैं तो बाजार को एक गिरावट के रूप में देखते हैं और एक बिक्री संकेत उत्पन्न करते हैं। रणनीति जोखिम को प्रबंधित करने के लिए स्टॉप-लॉस और स्टॉप-ऑफ मूल्य भी निर्धारित करती है।
यह रणनीति तेजी से ईएमए ((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)