یہ حکمت عملی ایک انکولی تجارتی نظام ہے جو متعدد تکنیکی تجزیہ اشارے کو یکجا کرتا ہے اور متحرک طور پر مارکیٹ کے حالات کی نشاندہی کرکے مختلف تجارتی حکمت عملیوں کے مابین سوئچ کرتا ہے۔ یہ نظام بنیادی طور پر موونگ ایوریج (ایم اے) ، بولنگر بینڈ (بی بی) ، اور رشتہ دار طاقت انڈیکس (آر ایس آئی) پر مبنی ہے ، جو مارکیٹ کے رجحانات اور رینج نوسان کی خصوصیات کے مطابق خود بخود سب سے موزوں تجارتی طریقہ کا انتخاب کرتا ہے۔ یہ حکمت عملی مختلف منافع اور اسٹاپ نقصان کے پیرامیٹرز طے کرکے رجحان سازی اور رینج مارکیٹوں کے لئے متنوع رسک مینجمنٹ حل نافذ کرتی ہے۔
اس حکمت عملی میں مارکیٹ کے رجحانات کا تعین کرنے کے لئے 50 پیریڈ اور 20 پیریڈ کے چلنے والے اوسط استعمال کیے جاتے ہیں ، جس میں بولنگر بینڈ اور آر ایس آئی کے ساتھ مل کر اوور بک اور اوور سیلڈ علاقوں کی نشاندہی کی جاتی ہے۔ رجحان سازی مارکیٹوں میں ، نظام بنیادی طور پر سستے چلنے والے اوسط اور تیز اور سست لائنوں کے مابین کراس اوور کے ساتھ قیمت کے تعلقات کی بنیاد پر تجارت کرتا ہے۔ رینجنگ مارکیٹوں میں ، یہ بنیادی طور پر بولنگر بینڈ بریک آؤٹ اور آر ایس آئی اوور بک / اوور سیلڈ سگنلز پر تجارت کرتا ہے۔ نظام مارکیٹ کے حالات کے مطابق منافع لینے کی سطح کو خود بخود ایڈجسٹ کرتا ہے ، رجحان سازی مارکیٹوں کے لئے 6٪ اور رینجنگ مارکیٹوں کے لئے 4٪ کا استعمال کرتے ہوئے ، رسک کنٹرول کے لئے یکساں 2٪ اسٹاپ نقصان کے ساتھ۔
یہ حکمت عملی ایک انکولی تجارتی نظام تیار کرتی ہے جو متعدد کلاسیکی تکنیکی اشارے کو یکجا کرکے مختلف مارکیٹ کے ماحول میں ڈھلنے کے قابل ہے۔ آپریشنل سادگی کو برقرار رکھتے ہوئے ، یہ نظام متحرک مارکیٹ کی حالت کی نشاندہی اور خودکار تجارتی حکمت عملی سوئچنگ حاصل کرتا ہے ، جس سے مضبوط عملیت کا مظاہرہ ہوتا ہے۔ مختلف فائدہ اٹھانے اور اسٹاپ نقصان کی ترتیبات کے ذریعہ ، حکمت عملی خطرات پر قابو پاتے ہوئے اچھی منافع کو برقرار رکھتی ہے۔ زیادہ تکنیکی اشارے متعارف کرانے اور پیرامیٹر ایڈجسٹمنٹ میکانزم کو بہتر بنانے سے حکمت عملی کے استحکام اور وشوسنییتا کو مزید بڑھا جاسکتا ہے۔
/*backtest start: 2024-01-17 00:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Supply & Demand Test 1 - Enhanced", overlay=true) // Inputs ma_length = input.int(50, title="50-period Moving Average Length", minval=1) ma_length_fast = input.int(20, title="20-period Moving Average Length", minval=1) bb_length = input.int(20, title="Bollinger Bands Length", minval=1) bb_std_dev = input.float(2.0, title="Bollinger Bands Std Dev", step=0.1) rsi_length = input.int(14, title="RSI Length", minval=1) stop_loss_percent = input.float(0.02, title="Stop Loss Percent", step=0.001, minval=0.001) take_profit_trend = input.float(0.06, title="Take Profit Percent (Trend)", step=0.001, minval=0.001) take_profit_range = input.float(0.04, title="Take Profit Percent (Range)", step=0.001, minval=0.001) // Moving Averages ma_slow = ta.sma(close, ma_length) ma_fast = ta.sma(close, ma_length_fast) // Bollinger Bands bb_basis = ta.sma(close, bb_length) bb_dev = ta.stdev(close, bb_length) bb_upper = bb_basis + bb_std_dev * bb_dev bb_lower = bb_basis - bb_std_dev * bb_dev // RSI rsi = ta.rsi(close, rsi_length) // Market Conditions is_trending_up = close > ma_slow is_trending_down = close < ma_slow is_range_bound = not (is_trending_up or is_trending_down) // Entry Conditions long_trend_entry = is_trending_up and close >= ma_slow * 1.02 short_trend_entry = is_trending_down and close <= ma_slow * 0.98 long_ma_crossover = ta.crossover(ma_fast, ma_slow) short_ma_crossover = ta.crossunder(ma_fast, ma_slow) long_range_entry = is_range_bound and close <= bb_lower * 0.97 short_range_entry = is_range_bound and close >= bb_upper * 1.03 long_rsi_entry = is_range_bound and rsi < 30 short_rsi_entry = is_range_bound and rsi > 70 // Entry and Exit Logic if long_trend_entry strategy.entry("Long Trend", strategy.long) strategy.exit("Exit Long Trend", from_entry="Long Trend", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_trend)) alert("Entered Long Trend", alert.freq_once_per_bar) if short_trend_entry strategy.entry("Short Trend", strategy.short) strategy.exit("Exit Short Trend", from_entry="Short Trend", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_trend)) alert("Entered Short Trend", alert.freq_once_per_bar) if long_ma_crossover strategy.entry("Long MA Crossover", strategy.long) strategy.exit("Exit Long MA Crossover", from_entry="Long MA Crossover", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_trend)) alert("Entered Long MA Crossover", alert.freq_once_per_bar) if short_ma_crossover strategy.entry("Short MA Crossover", strategy.short) strategy.exit("Exit Short MA Crossover", from_entry="Short MA Crossover", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_trend)) alert("Entered Short MA Crossover", alert.freq_once_per_bar) if long_range_entry strategy.entry("Long Range", strategy.long) strategy.exit("Exit Long Range", from_entry="Long Range", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_range)) alert("Entered Long Range", alert.freq_once_per_bar) if short_range_entry strategy.entry("Short Range", strategy.short) strategy.exit("Exit Short Range", from_entry="Short Range", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_range)) alert("Entered Short Range", alert.freq_once_per_bar) if long_rsi_entry strategy.entry("Long RSI", strategy.long) strategy.exit("Exit Long RSI", from_entry="Long RSI", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_range)) alert("Entered Long RSI", alert.freq_once_per_bar) if short_rsi_entry strategy.entry("Short RSI", strategy.short) strategy.exit("Exit Short RSI", from_entry="Short RSI", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_range)) alert("Entered Short RSI", alert.freq_once_per_bar) // Plotting plot(ma_slow, color=color.blue, title="50-period MA") plot(ma_fast, color=color.orange, title="20-period MA") plot(bb_upper, color=color.red, title="Bollinger Upper") plot(bb_lower, color=color.green, title="Bollinger Lower") plot(bb_basis, color=color.gray, title="Bollinger Basis") hline(70, "Overbought (RSI)", color=color.red, linestyle=hline.style_dotted) hline(30, "Oversold (RSI)", color=color.green, linestyle=hline.style_dotted)