
द्वि-रेखा पार गतिशील स्थिति रखने की रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो दो अलग-अलग चक्र सरल चलती औसत (एसएमए) क्रॉसिंग सिग्नल के आधार पर व्यापार करती है। यह रणनीति बाजार के रुझानों का आकलन करने के लिए अल्पकालिक और दीर्घकालिक चलती औसत के क्रॉसिंग का उपयोग करती है, और क्रॉसिंग सिग्नल और मूल्य और दीर्घकालिक रेशियों के बीच संबंधों की गतिशीलता के आधार पर स्थिति रखने की दिशा को समायोजित करती है। रणनीति एक दिन के चार्ट पर चलती है, और विभिन्न चलती औसत मापदंडों को सेट करके रणनीति की संवेदनशीलता और प्रतिक्रिया की गति को लचीले ढंग से समायोजित कर सकती है।
द्वि-रेखा पार गतिशील स्थिति रखने की रणनीति एक क्लासिक और व्यावहारिक मात्रात्मक व्यापारिक विधि है, जो बाजार के रुझान को पकड़ने के लिए समानांतर रेखा पार सिग्नल और गतिशील समायोजन की दिशा को पकड़ती है। यह रणनीति सरल, समझने में आसान, पूरी तरह से स्वचालित है, जिसमें बेहतर प्रवृत्ति ट्रैकिंग क्षमता और लचीलापन है। हालांकि, रणनीति में अस्थिर बाजार प्रदर्शन, सिग्नल विलंबता और अन्य संभावित जोखिम भी हैं। अन्य तकनीकी संकेतकों को पेश करने, पैरामीटर का अनुकूलन करने, स्टॉप-लॉस तंत्र में शामिल होने और अन्य तरीकों से रणनीति की स्थिरता और लाभप्रदता को और बढ़ाया जा सकता है।
/*backtest
start: 2024-06-29 00:00:00
end: 2024-07-29 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="MA Cross Backtest", overlay=true, default_qty_type=strategy.cash, default_qty_value=10)
// Parâmetros das Médias Móveis
shortlen = input.int(9, "Short MA Length", minval=1)
longlen = input.int(21, "Long MA Length", minval=1)
// Cálculo das Médias Móveis
short = ta.sma(close, shortlen)
long = ta.sma(close, longlen)
// Plotagem das Médias Móveis
plot(short, color=color.orange, title="Short MA")
plot(long, color=color.green, title="Long MA")
// Sinal de Compra baseado no cruzamento das médias móveis
buySignal = ta.crossover(short, long)
// Sinal de Venda (Short) baseado no cruzamento das médias móveis
sellSignal = ta.crossunder(short, long)
// Plotagem dos Sinais de Compra e Venda
plotshape(series=buySignal, location=location.belowbar, color=color.blue, style=shape.labelup, text="Buy", title="Buy Signal")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", title="Sell Signal")
// Condições para alertas
alertcondition(buySignal, title="Buy Signal", message="MA Cross Buy Signal")
alertcondition(sellSignal, title="Sell Signal", message="MA Cross Sell Signal")
// Lógica da Estratégia de Backtest
if (buySignal)
// Se não há posição aberta ou se a posição atual é curta, feche a posição curta antes de abrir uma nova posição longa
if (strategy.position_size < 0)
strategy.close("Short", comment="Closing Short Position before Long Entry")
strategy.entry("Long", strategy.long)
// Alerta de compra
alert("MA Cross Buy Signal", alert.freq_once_per_bar_close)
if (strategy.position_size > 0)
// Se o preço abrir abaixo da média longa
if (open < long)
strategy.close("Long", comment="Price Opened Below Long MA")
strategy.entry("Short", strategy.short, comment="Switched to Short")
// Alerta de venda
alert("Price Opened Below Long MA - Switched to Short", alert.freq_once_per_bar_close)
// Se a média móvel curta cruzar abaixo da média móvel longa
else if (sellSignal)
strategy.close("Long", comment="Short MA Crossed Below Long MA")
strategy.entry("Short", strategy.short, comment="Switched to Short")
// Alerta de venda
alert("Short MA Crossed Below Long MA - Switched to Short", alert.freq_once_per_bar_close)
if (strategy.position_size < 0)
// Se o preço abrir acima da média longa
if (open > long)
strategy.close("Short", comment="Price Opened Above Long MA")
strategy.entry("Long", strategy.long, comment="Switched to Long")
// Alerta de compra
alert("Price Opened Above Long MA - Switched to Long", alert.freq_once_per_bar_close)