یہ حکمت عملی ایک موافقت پذیر تجارتی نظام ہے جو متعدد تکنیکی اشارے کے ہم آہنگی کے ذریعے مارکیٹ کے رجحانات کو حاصل کرنے کے لئے اتار چڑھاؤ اور رفتار کے اشارے کو جوڑتا ہے۔ یہ حکمت عملی مارکیٹ کی اتار چڑھاؤ کی نگرانی کے لئے اے ٹی آر اشارے ، رجحان کی رفتار کا فیصلہ کرنے کے لئے ایم اے سی ڈی کا استعمال کرتی ہے ، اور تجارتی سگنلز کی تصدیق کے لئے قیمت کی رفتار کے اشارے کو جوڑتی ہے ، جس میں لچکدار اسٹاپ نقصان اور منافع لینے کا طریقہ کار ہے۔ اس نظام میں مضبوط موافقت ہے اور وہ مارکیٹ کے حالات کے مطابق تجارتی تعدد اور پوزیشن کنٹرول کو خود بخود ایڈجسٹ کرسکتا ہے۔
یہ حکمت عملی اپنے بنیادی تجارتی منطق کے طور پر ایک ٹرپل اشارے کے نظام پر انحصار کرتی ہے۔ سب سے پہلے ، اے ٹی آر کا استعمال مارکیٹ میں اتار چڑھاؤ کے حالات کی پیمائش کرنے کے لئے کیا جاتا ہے تاکہ تجارتی فیصلوں کے لئے اتار چڑھاؤ کا حوالہ فراہم کیا جاسکے۔ دوسرا ، ایم اے سی ڈی اشارے کے سنہری اور موت کے صلیبوں کا استعمال رجحان کی موڑ کے مقامات پر قبضہ کرنے کے لئے کیا جاتا ہے ، ایم اے سی ڈی کی تیز رفتار اور سست لائن کراس اوورز کو تجارتی ٹرگر سگنل کے طور پر استعمال کیا جاتا ہے۔ تیسرا ، قیمت کی رفتار کے اشارے کی تصدیق کے لئے استعمال کیا جاتا ہے ، رجحان کی طاقت کی تصدیق کے لئے پچھلے ادوار کے مقابلے میں قیمتوں میں ہونے والی تبدیلیوں کا مشاہدہ کیا جاتا ہے۔ یہ نظام 50 دن کی حرکت پذیر اوسط کو بھی رجحان فلٹر کے طور پر شامل کرتا ہے ، جب قیمت حرکت پذیر اوسط سے اوپر ہوتی ہے تو صرف لمبی پوزیشنوں اور نیچے کی پوزیشنوں کی اجازت دیتا ہے۔ اوور ٹریڈنگ سے بچنے کے لئے ، سگنل کی حکمت عملی کم سے کم تجارتی وقفوں کو نافذ
یہ حکمت عملی ایک اچھی طرح سے ڈیزائن کیا گیا ، منطقی طور پر سخت مقداری تجارتی نظام ہے جو متعدد تکنیکی اشارے کے استعمال کے ذریعے مارکیٹ کے رجحانات کو موثر انداز میں حاصل کرتا ہے۔ اس نظام نے خطرے کے کنٹرول اور تجارت کے نفاذ میں تفصیلی غور و فکر کیا ہے ، جس سے اچھی عملیت ظاہر ہوتی ہے۔ اگرچہ کچھ ممکنہ خطرات ہیں ، تجویز کردہ اصلاح کی سمتوں کے ذریعے ، حکمت عملی کے استحکام اور منافع دونوں کو مزید بہتر بنانے کی توقع کی جاسکتی ہے۔
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("[ETH] Volatility & Momentum Adaptive Strategy", shorttitle="Definitive 1 day Ethereum Signal", overlay=true, initial_capital=10000, currency=currency.USD) // === Input Parameters === // trade_size = input.float(5, title="Trade Size (ETH)") atr_length = input.int(8, minval=1, title="ATR Length") macd_fast = input.int(8, minval=1, title="MACD Fast Length") macd_slow = input.int(7, minval=1, title="MACD Slow Length") macd_signal = input.int(9, minval=1, title="MACD Signal Length") momentum_length = input.int(37, title="Momentum Length") stop_loss_percent = input.float(9.9, title="Stop Loss Percentage (%)") take_profit_percent = input.float(9.0, title="Take Profit Percentage (%)") alternate_signal = input.bool(true, title="Alternate Buy/Sell Signals") // === Indicators === // // ATR to measure volatility atr = ta.atr(atr_length) // MACD for trend momentum [macd_line, signal_line, _] = ta.macd(close, macd_fast, macd_slow, macd_signal) macd_cross_up = ta.crossover(macd_line, signal_line) macd_cross_down = ta.crossunder(macd_line, signal_line) // Momentum momentum = ta.mom(close, momentum_length) // === Signal Control Variables === // var bool last_signal_long = na var int last_trade_bar = na min_bars_between_trades = 5 // Adjust for minimal trade frequency control time_elapsed = na(last_trade_bar) or (bar_index - last_trade_bar) >= min_bars_between_trades // === Buy and Sell Conditions === // // Buy when: buy_signal = (macd_cross_up and momentum > 0 and close > ta.sma(close, 50) and time_elapsed) // Sell when: sell_signal = (macd_cross_down and momentum < 0 and close < ta.sma(close, 50) and time_elapsed) // Enforce alternate signals if selected if alternate_signal buy_signal := buy_signal and (na(last_signal_long) or not last_signal_long) sell_signal := sell_signal and (not na(last_signal_long) and last_signal_long) // === Trade Execution === // // Buy Position if (buy_signal) if strategy.position_size < 0 strategy.close("Short") strategy.entry("Long", strategy.long, qty=trade_size) last_signal_long := true last_trade_bar := bar_index // Sell Position if (sell_signal) if strategy.position_size > 0 strategy.close("Long") strategy.entry("Short", strategy.short, qty=trade_size) last_signal_long := false last_trade_bar := bar_index // === Stop Loss and Take Profit === // if strategy.position_size > 0 long_take_profit = strategy.position_avg_price * (1 + take_profit_percent / 100) long_stop_loss = strategy.position_avg_price * (1 - stop_loss_percent / 100) strategy.exit("TP/SL Long", from_entry="Long", limit=long_take_profit, stop=long_stop_loss) if strategy.position_size < 0 short_take_profit = strategy.position_avg_price * (1 - take_profit_percent / 100) short_stop_loss = strategy.position_avg_price * (1 + stop_loss_percent / 100) strategy.exit("TP/SL Short", from_entry="Short", limit=short_take_profit, stop=short_stop_loss) // === Visual Signals === // plotshape(series=buy_signal and time_elapsed, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sell_signal and time_elapsed, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")