
यह रणनीति एक बोलिंग बैंड-आधारित औसत-रिवर्स ट्रेडिंग सिस्टम है जो ट्रेंड फिल्टर और गतिशील स्टॉपलॉस के संयोजन के माध्यम से ट्रेडिंग प्रभावशीलता को अनुकूलित करती है। यह रणनीति सांख्यिकीय सिद्धांतों का उपयोग करती है, जब कीमत औसत से विचलित होती है, तो व्यापार करती है, जबकि तकनीकी संकेतकों के माध्यम से जीत की दर और जोखिम प्रबंधन में सुधार करती है।
इस रणनीति का मूल निम्नलिखित प्रमुख घटकों पर आधारित हैः
यह एक ऐसी रणनीति है जो क्लासिक तकनीकी विश्लेषण को आधुनिक मात्रात्मक तरीकों के साथ जोड़ती है। यह रणनीति कई संकेतकों की पुष्टि और सख्त जोखिम नियंत्रण के माध्यम से अच्छी व्यावहारिकता है। यह सिफारिश की जाती है कि वास्तविक व्यापार से पहले पर्याप्त ऐतिहासिक पुनरावृत्ति और अनुकरण व्यापार सत्यापन किया जाए।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Optimized Bollinger Mean Reversion", overlay=true)
// Bollinger Band Settings
length = input.int(20, title="BB Length")
src = input(close, title="Source")
mult = input.float(2.0, title="BB Multiplier")
// Bollinger Bands Calculation
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Plot the Bollinger Bands
plot(basis, color=color.blue)
p1 = plot(upper, color=color.red)
p2 = plot(lower, color=color.red)
fill(p1, p2, color=color.rgb(41, 98, 255, 90))
// Trend Filter - 50 EMA
ema_filter = ta.ema(close, 50)
// ATR for Dynamic Stop Loss/Take Profit
atr_value = ta.atr(14)
// Buy condition - price touches lower band and above 50 EMA
buy_condition = ta.crossover(close, lower) and close > ema_filter
// Sell condition - price touches upper band and below 50 EMA
sell_condition = ta.crossunder(close, upper) and close < ema_filter
// Strategy Execution
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)
// Exit with dynamic ATR-based stop loss and take profit
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=2*atr_value, stop=1*atr_value)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=2*atr_value, stop=1*atr_value)