
यह रणनीति एक जटिल ट्रेडिंग प्रणाली है जिसमें द्वि-समानता क्रॉसिंग, आरएसआई ओवरबॉय ओवरसोल और एटीआर अस्थिरता फ़िल्टर शामिल हैं। यह प्रणाली अल्पकालिक और दीर्घकालिक चलती औसत का उपयोग करके ट्रेडिंग सिग्नल उत्पन्न करती है, आरएसआई सूचकांक द्वारा बाजार की स्थिति को फ़िल्टर करती है, एटीआर सूचकांक का उपयोग करके अस्थिरता का निर्णय करती है, और स्थिति प्रबंधन और जोखिम नियंत्रण के लिए प्रतिशत स्टॉप लॉस और जोखिम-लाभ अनुपात के साथ संयुक्त है। इस रणनीति में मजबूत अनुकूलन क्षमता है, जो बाजार की स्थिति के अनुसार पैरामीटर को लचीले ढंग से समायोजित कर सकती है।
रणनीति का मूल तर्क निम्नलिखित पहलुओं पर आधारित है:
रणनीति कई तकनीकी संकेतकों के संयोजन के माध्यम से एक अपेक्षाकृत पूर्ण व्यापार प्रणाली का निर्माण करती है। रणनीति ट्रेंडिंग बाजारों में उत्कृष्ट प्रदर्शन करती है और इसमें अच्छी जोखिम नियंत्रण क्षमता होती है। रणनीति को उचित रूप से पैरामीटर सेट करके और आवश्यक फ़िल्टरिंग शर्तों को जोड़कर विभिन्न बाजार स्थितियों के अनुकूल बनाया जा सकता है।
/*backtest
start: 2025-01-21 00:00:00
end: 2025-02-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Simplified MA Crossover Strategy with Disable Options", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Inputs
shortLength = input.int(9, title="Short MA Length", minval=1)
longLength = input.int(21, title="Long MA Length", minval=1)
// RSI Filter
enableRSI = input.bool(true, title="Enable RSI Filter")
rsiLength = input.int(14, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50)
// ATR Filter
enableATR = input.bool(true, title="Enable ATR Filter")
atrLength = input.int(14, title="ATR Length", minval=1)
minATR = input.float(0.005, title="Minimum ATR Threshold", minval=0)
// Risk Management
stopLossPerc = input.float(0.5, title="Stop Loss (%)", minval=0.1) / 100
riskRewardRatio = input.float(2, title="Risk-Reward Ratio", minval=1)
riskPercentage = input.float(2, title="Risk Percentage", minval=0.1) / 100
// Indicators
shortMA = ta.sma(close, shortLength)
longMA = ta.sma(close, longLength)
rsi = ta.rsi(close, rsiLength)
atr = ta.atr(atrLength)
// Conditions
longCondition = ta.crossover(shortMA, longMA)
shortCondition = ta.crossunder(shortMA, longMA)
// Apply RSI Filter (if enabled)
if (enableRSI)
longCondition := longCondition and rsi < rsiOverbought
shortCondition := shortCondition and rsi > rsiOversold
// Apply ATR Filter (if enabled)
if (enableATR)
longCondition := longCondition and atr > minATR
shortCondition := shortCondition and atr > minATR
// Risk Management
positionSize = strategy.equity * riskPercentage / (stopLossPerc * close)
takeProfitLevel = strategy.position_avg_price * (1 + stopLossPerc * riskRewardRatio)
stopLossLevel = strategy.position_avg_price * (1 - stopLossPerc)
// Execute Trades
if (longCondition)
strategy.entry("Long", strategy.long, qty=positionSize)
strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfitLevel, stop=stopLossLevel)
if (shortCondition)
strategy.entry("Short", strategy.short, qty=positionSize)
strategy.exit("Take Profit/Stop Loss", "Short", limit=strategy.position_avg_price * (1 - stopLossPerc * riskRewardRatio), stop=strategy.position_avg_price * (1 + stopLossPerc))
// Plotting
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(atr, color=color.orange, title="ATR")
plotshape(series=longCondition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")