
یہ حکمت عملی ایک خود کار طریقے سے ٹریڈنگ سسٹم ہے جس میں اتار چڑھاؤ کی شرح اور حرکیات کے اشارے شامل ہیں تاکہ مارکیٹ کے رجحانات کو متعدد تکنیکی اشارے کے ہم آہنگی سے پکڑ سکے۔ حکمت عملی مارکیٹ میں اتار چڑھاؤ کی نگرانی کرنے کے لئے اے ٹی آر اشارے کا استعمال کرتی ہے ، ایم اے سی ڈی رجحان کی حرکیات کا اندازہ لگاتا ہے ، جبکہ قیمت کی حرکیات کے اشارے کے ساتھ مل کر ٹریڈنگ سگنل کی تصدیق کرتا ہے ، اور اس میں لچکدار اسٹاپ اسٹاپ نقصان کا طریقہ کار ترتیب دیا گیا ہے۔ یہ نظام بہت ہی لچکدار ہے ، جو مارکیٹ کی صورتحال کے مطابق خود بخود تجارتی تعدد اور پوزیشن کنٹرول کو ایڈجسٹ کرسکتا ہے۔
حکمت عملی بنیادی طور پر ٹریڈنگ کی منطق کے طور پر تینوں اشارے کے نظام پر انحصار کرتی ہے: پہلے ، اے ٹی آر کا استعمال مارکیٹ میں اتار چڑھاؤ کی حالت کا اندازہ کرنے کے لئے کیا جاتا ہے ، جس سے ٹریڈنگ کے فیصلوں کے لئے اتار چڑھاؤ کا حوالہ دیا جاتا ہے۔ دوسرا ، MACD اشارے کا استعمال کرتے ہوئے رجحان کے موڑ کو پکڑنے کے لئے ، MACD فوری لائن اور سست لائن کے کراس کو ٹریڈنگ کے اہم اشارے کے طور پر استعمال کیا جاتا ہے۔ تیسرا ، قیمت کی متحرک اشارے کا استعمال کرتے ہوئے ، قیمت کی نسبت سے پہلے کی تبدیلیوں کو دیکھ کر رجحان کی طاقت کی تصدیق کریں۔ نظام میں 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")