
यह रणनीति एक एकीकृत ट्रेडिंग प्रणाली है जिसमें ट्रेंड ट्रैकिंग और जोखिम नियंत्रण शामिल है। यह 200-चक्र सूचकांक चलती औसत (ईएमए) का उपयोग ट्रेंड फिल्टर के रूप में करता है, एक प्रवेश संकेत के रूप में एक अपेक्षाकृत मजबूत सूचक (आरएसआई) का उपयोग करता है, और स्टॉप, स्टॉप और अधिकतम वापसी नियंत्रण तंत्र को एकीकृत करता है। रणनीति की मुख्य विशेषता ट्रेंड ट्रैकिंग लाभ को बनाए रखने के साथ-साथ गतिशील वापसी ट्रैकिंग के माध्यम से जोखिम को सख्ती से नियंत्रित करना है।
इस रणनीति के मूल तर्क में निम्नलिखित प्रमुख घटक शामिल हैंः
इस रणनीति ने एक पूर्ण ट्रेडिंग प्रणाली का निर्माण किया है, जिसमें प्रवृत्ति का पालन और सख्त जोखिम नियंत्रण शामिल है। इसकी मुख्य विशेषता जोखिम प्रबंधन की पूर्णता और रणनीति तर्क की स्पष्टता है। बहुस्तरीय जोखिम नियंत्रण तंत्र के माध्यम से, रणनीति को रिटर्न की तलाश के साथ-साथ प्रभावी रूप से वापसी को नियंत्रित करने में सक्षम बनाता है। हालांकि कुछ अंतर्निहित जोखिम हैं, लेकिन अनुशंसित अनुकूलन दिशाओं के माध्यम से रणनीति में अभी भी काफी सुधार की जगह है।
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-19 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Disruptor Trend-Following (Drawdown < 30%)", shorttitle="DisruptorStrategyDD", overlay=true)
//-----------------------------------------------------
// User Inputs
//-----------------------------------------------------
emaLen = input.int(200, "Long EMA Length", minval=1)
rsiLen = input.int(14, "RSI Length", minval=1)
rsiThreshold = input.float(50, "RSI Buy Threshold", minval=1, maxval=100)
stopLossPerc = input.float(20, "Stop-Loss %", minval=0.1, step=0.1)
takeProfitPerc = input.float(40, "Take-Profit %", minval=0.1, step=0.1)
ddLimit = input.float(30, "Max Drawdown %", minval=0.1, step=0.1)
//-----------------------------------------------------
// Indicators
//-----------------------------------------------------
emaValue = ta.ema(close, emaLen)
rsiValue = ta.rsi(close, rsiLen)
//-----------------------------------------------------
// Conditions
//-----------------------------------------------------
longCondition = close > emaValue and rsiValue > rsiThreshold
exitCondition = close < emaValue or rsiValue < rsiThreshold
//-----------------------------------------------------
// Position Tracking
//-----------------------------------------------------
var bool inTrade = false
if longCondition and not inTrade
strategy.entry("Long", strategy.long)
if inTrade and exitCondition
strategy.close("Long")
inTrade := strategy.position_size > 0
//-----------------------------------------------------
// Stop-Loss & Take-Profit
//-----------------------------------------------------
if inTrade
stopPrice = strategy.position_avg_price * (1 - stopLossPerc / 100)
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc / 100)
strategy.exit("Exit", from_entry="Long", stop=stopPrice, limit=takeProfitPrice)
//-----------------------------------------------------
// Dynamic Drawdown Handling
//-----------------------------------------------------
var float peakEquity = strategy.equity
peakEquity := math.max(peakEquity, strategy.equity)
currentDrawdownPerc = (peakEquity - strategy.equity) / peakEquity * 100
if currentDrawdownPerc > ddLimit
strategy.close_all("Max Drawdown Exceeded")
//-----------------------------------------------------
// Plotting
//-----------------------------------------------------
plot(emaValue, title="EMA 200", color=color.yellow, linewidth=2)
plotchar(rsiValue, title="RSI", char='•', location=location.bottom, color=color.new(color.teal, 60))