
यह रणनीति दो सूचकांक चलती औसत (ईएमए) का उपयोग करती है ताकि कीमतों के रुझान में बदलाव को पकड़ लिया जा सके। यह एक खरीद संकेत उत्पन्न करता है जब अल्पकालिक ईएमए नीचे से लंबे समय तक ईएमए को पार करता है; यह एक बिक्री संकेत उत्पन्न करता है जब अल्पकालिक ईएमए ऊपर से नीचे से लंबे समय तक ईएमए को पार करता है। यह रणनीति एक ही समय में एक दैनिक स्टॉप-लॉस और स्टॉप-स्टॉप सीमा निर्धारित करती है ताकि एक दिन के नुकसान और लाभ को नियंत्रित किया जा सके।
ईएमए द्वि-समान रेखा क्रॉसिंग रणनीति एक सरल और समझने योग्य ट्रेडिंग रणनीति है जो ट्रेंडिंग बाजारों के लिए उपयुक्त है। तेज और धीमी औसत रेखा क्रॉसिंग के माध्यम से, मूल्य प्रवृत्ति में बदलाव को बेहतर ढंग से पकड़ना संभव है। साथ ही, दैनिक स्टॉप और स्टॉप की सेटिंग्स जोखिम को प्रभावी ढंग से नियंत्रित कर सकती हैं। लेकिन यह रणनीति बाजार में उतार-चढ़ाव या प्रवृत्ति में बदलाव के दौरान खराब प्रदर्शन कर सकती है, जिसे अन्य तकनीकी संकेतकों और विश्लेषणात्मक विधियों के साथ संयोजन में अनुकूलित और सुधार की आवश्यकता है।
/*backtest
start: 2023-06-01 00:00:00
end: 2024-06-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DD173838
//@version=5
strategy("Moving Average Strategy with Daily Limits", overlay=true)
// Moving Average settings
shortMaLength = input.int(9, title="Short MA Length")
longMaLength = input.int(21, title="Long MA Length")
// Calculate MAs
shortMa = ta.ema(close, shortMaLength)
longMa = ta.ema(close, longMaLength)
// Plot MAs
plot(shortMa, title="9 EMA", color=color.blue)
plot(longMa, title="21 EMA", color=color.red)
// Strategy conditions
crossUp = ta.crossover(shortMa, longMa)
crossDown = ta.crossunder(shortMa, longMa)
// Debug plots to check cross conditions
plotshape(series=crossUp, title="Cross Up", location=location.belowbar, color=color.green, style=shape.labelup, text="UP")
plotshape(series=crossDown, title="Cross Down", location=location.abovebar, color=color.red, style=shape.labeldown, text="DOWN")
// Entry at cross signals
if (crossUp)
strategy.entry("Long", strategy.long)
if (crossDown)
strategy.entry("Short", strategy.short)
// Daily drawdown and profit limits
var float startOfDayEquity = na
if (na(startOfDayEquity) or ta.change(time('D')) != 0)
startOfDayEquity := strategy.equity
maxDailyLoss = 50000 * 0.0025
maxDailyProfit = 50000 * 0.02
currentDailyPL = strategy.equity - startOfDayEquity
if (currentDailyPL <= -maxDailyLoss)
strategy.close_all(comment="Max Daily Loss Reached")
if (currentDailyPL >= maxDailyProfit)
strategy.close_all(comment="Max Daily Profit Reached")