یہ حکمت عملی ایک ہائبرڈ ٹریڈنگ سسٹم ہے جو رفتار اور اوسط ریورس تھیوریز کو جوڑتا ہے۔ یہ شرح تبدیلی (آر او سی) اشارے اور بولنگر بینڈ کا استعمال کرتے ہوئے مارکیٹ میں زیادہ خریدنے اور زیادہ فروخت ہونے والے حالات کی نشاندہی کرتا ہے ، جب مخصوص حدیں عبور ہوجاتی ہیں تو تجارت کو متحرک کرتا ہے۔ بنیادی تصور رفتار کی تبدیلیوں کا پتہ لگانا اور ان کی اوسط تک قیمت کی تبدیلیوں سے فائدہ اٹھانا ہے۔
اس حکمت عملی میں قلیل مدتی قیمتوں میں ہونے والی تبدیلیوں کا حساب لگانے کے لئے دو دورانیے کے آر او سی اشارے کا استعمال کیا جاتا ہے ، جس میں بولنگر بینڈ کے دو سیٹ شامل ہیں: مختصر مدت (18 دورانیے ، 1.7 معیاری انحراف) زیادہ فروخت کی شرائط اور انٹری سگنلز کے لئے ، اور طویل مدتی (21 دورانیہ ، 2.1 معیاری انحراف) زیادہ خریدنے کی شرائط اور باہر نکلنے کے سگنلز کے لئے۔ جب آر او سی نچلے بولنگر بینڈ سے تجاوز کرتا ہے تو لانگ پوزیشنیں شروع ہوجاتی ہیں ، جو کمزور سے مضبوط رفتار میں شفٹ کی نشاندہی کرتی ہیں ، اور جب آر او سی اوپری بولنگر بینڈ سے نیچے عبور کرتی ہے تو پوزیشنیں بند ہوجاتی ہیں ، جو کمزور رفتار کی نشاندہی کرتی ہیں۔ حکمت عملی میں زیادہ خریدنے (سرخ) اور زیادہ فروخت (سبز) زونوں کو اجاگر کرنے کے لئے پس منظر کے رنگوں کا بھی استعمال کیا جاتا ہے۔
اڈاپٹیو مومنٹم میڈین ریورس کراس اوور حکمت عملی ایک تجارتی نظام تیار کرتی ہے جو ROC اشارے اور دوہری بولنگر بینڈ کو یکجا کرکے مختلف مارکیٹ کے ماحول میں ڈھلنے کے قابل ہے۔ لچک کو برقرار رکھتے ہوئے ، حکمت عملی خطرے پر قابو پانے پر زور دیتی ہے اور عملی قدر کا مظاہرہ کرتی ہے۔ مسلسل اصلاح اور بہتری کے ذریعے ، یہ حکمت عملی اصل تجارت میں بہتر کارکردگی کا وعدہ کرتی ہے۔
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-08 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Adaptive Momentum Reversion Strategy ", overlay=false, initial_capital=50000, pyramiding=0, commission_type=strategy.commission.cash_per_contract, commission_value=0.05, slippage=1) // Input: ROC Period rocPeriod = input.int(2, title="ROC Period", minval=1) // Input: Bollinger Bands Settings (Lower Band) bbLowerLength = input.int(18, title="Lower Bollinger Band Length", minval=1) bbLowerStdDev = input.float(1.7, title="Lower Bollinger Band StdDev", minval=0.1, step=0.1) // Input: Bollinger Bands Settings (Upper Band) bbUpperLength = input.int(21, title="Upper Bollinger Band Length", minval=1) bbUpperStdDev = input.float(2.1, title="Upper Bollinger Band StdDev", minval=0.1, step=0.1) // ROC Calculation rocValue = (close - close[rocPeriod]) / close[rocPeriod] * 100 // Bollinger Bands Calculation bbLowerBasis = ta.sma(rocValue, bbLowerLength) // Basis for Lower Band bbLower = bbLowerBasis - bbLowerStdDev * ta.stdev(rocValue, bbLowerLength) // Lower Band bbUpperBasis = ta.sma(rocValue, bbUpperLength) // Basis for Upper Band bbUpper = bbUpperBasis + bbUpperStdDev * ta.stdev(rocValue, bbUpperLength) // Upper Band // Plot ROC plot(rocValue, color=color.blue, linewidth=2, title="ROC Value") // Plot Bollinger Bands plot(bbLowerBasis, color=color.gray, linewidth=1, title="Lower BB Basis (SMA)") plot(bbLower, color=color.green, linewidth=1, title="Lower Bollinger Band") plot(bbUpperBasis, color=color.gray, linewidth=1, title="Upper BB Basis (SMA)") plot(bbUpper, color=color.red, linewidth=1, title="Upper Bollinger Band") // Add Zero Line for Reference hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dotted) // Entry Condition: Long when ROC crosses above the lower Bollinger Band longCondition = ta.crossover(rocValue, bbLower) if (longCondition) strategy.entry("Long", strategy.long) // Exit Condition: Exit on Upper Bollinger Band Cross or ROC drops below Lower Band again exitCondition = ta.crossunder(rocValue, bbUpper) if (exitCondition) strategy.close("Long") // Background Color for Extreme Conditions bgcolor(rocValue > bbUpper ? color.new(color.red, 80) : na, title="Overbought (ROC above Upper BB)") bgcolor(rocValue < bbLower ? color.new(color.green, 80) : na, title="Oversold (ROC below Lower BB)")