
यह रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो डी-ट्रेंडिंग मूल्य उतार-चढ़ाव सूचक (डीपीओ) और सूचकांक चलती औसत (ईएमए) के क्रॉसिंग पर आधारित है। रणनीति का मुख्य विचार बाजार की प्रवृत्ति में बदलाव को पकड़ना है, जो डीपीओ और उसके 4 चक्र ईएमए के बीच संबंधों की तुलना करके खरीद और बेचने के संकेत देता है। यह रणनीति विशेष रूप से 4 घंटे और उससे अधिक की बड़ी समय अवधि के लिए उपयुक्त है, और यह फ्लैट स्लाइडिंग चार्ट (हेइकिन आश) का उपयोग करते समय बेहतर काम करती है।
रणनीति के मूल तर्क में निम्नलिखित प्रमुख चरण शामिल हैं:
डीपीओ-ईएमए ट्रेंड क्रॉसिंग रणनीति एक संरचनात्मक रूप से सरल लेकिन प्रभावशाली मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति बाजार की प्रवृत्ति में बदलाव को प्रभावी ढंग से पकड़ने में सक्षम है। हालांकि कुछ अंतर्निहित जोखिम हैं, उचित अनुकूलन और जोखिम प्रबंधन उपायों के साथ, यह रणनीति अभी भी बेहतर वास्तविक युद्ध के आवेदन के लिए मूल्यवान है। मध्यम और दीर्घकालिक व्यापारियों के लिए, यह विचार करने योग्य रणनीति विकल्प है।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("DPO 4,24 Strategy", shorttitle="DPO Strategy", overlay=true)
// Define a fixed lookback period and EMA length
length = 24
ema_length = 4
// Calculate the Simple Moving Average (SMA) of the closing prices
sma = ta.sma(close, length)
// Calculate the shifted SMA value
shifted_sma = sma[length / 2 + 1]
// Calculate the Detrended Price Oscillator (DPO)
dpo = close - shifted_sma
// Calculate the 4-period Exponential Moving Average (EMA) of the DPO
dpo_ema = ta.ema(dpo, ema_length)
// Generate buy and sell signals based on crossovers
buy_signal = ta.crossover(dpo, dpo_ema)
sell_signal = ta.crossunder(dpo, dpo_ema)
// Overlay buy and sell signals on the candlestick chart
plotshape(series=buy_signal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_signal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy entry and exit conditions
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.close("Buy")