
یہ حکمت عملی ایک ٹرینڈ ریورس ٹریڈنگ سسٹم ہے جو MACD کالم گراف پر مبنی ہے۔ یہ مارکیٹ کی تبدیلی کے سگنل کو K لائن کی شکل میں تبدیلی اور MACD کالم گراف میں تبدیلی کے مابین تعلقات کا تجزیہ کرکے پکڑتا ہے۔ حکمت عملی کا بنیادی خیال مارکیٹ میں حرکت پذیری میں کمی کے اشارے پر واپسی کی تجارت کرنا ہے ، تاکہ جب رجحان الٹ ہونے والا ہو تو اس کی پیشگی ترتیب ہو۔
اس حکمت عملی کے تحت ٹریڈنگ کی منطق کو دو حصوں میں تقسیم کیا گیا ہے: خالی کرنے کی شرائط: جب ایک بڑی سورج کی لکیر ((بند قیمت کھلنے کی قیمت سے زیادہ ہے) ظاہر ہوتی ہے ، اور اس کی ہستی پچھلی K لائن سے بڑی ہوتی ہے ، اور MACD کالم ڈرائنگ میں مسلسل 3 ادوار میں کمی کا رجحان ظاہر ہوتا ہے ، تو یہ ظاہر ہوتا ہے کہ اوپر کی حرکت میں کمی آرہی ہے ، نظام خالی کرنے کا اشارہ کرتا ہے۔ متعدد شرائط بنائیں: جب ایک بڑی سائیڈ ((قریب کی قیمت کھلنے والی قیمت سے کم ہے) ، اور اس کی ہستی پچھلی K لائن سے بڑی ہے ، اور MACD کالم چارٹ میں مسلسل 3 ادوار میں اوپر کی طرف رجحان ہے ، تو یہ ظاہر ہوتا ہے کہ نیچے کی حرکت کمزور ہو رہی ہے ، نظام نے ایک سے زیادہ سگنل جاری کیا پوزیشن مینجمنٹ میں مخالف سگنل کی صفائی کا طریقہ کار استعمال کیا جاتا ہے ، یعنی جب مخالف سمت میں تجارت کا اشارہ ہوتا ہے تو ، موجودہ پوزیشن کو ختم کردیا جاتا ہے۔ اس حکمت عملی میں کوئی اسٹاپ نقصان اور اسٹاپ اسٹاپ نہیں ہوتا ہے ، اور پوزیشنوں کا انتظام کرنے کے لئے سگنل پر مکمل طور پر انحصار ہوتا ہے۔
اس حکمت عملی میں مارکیٹ میں الٹ جانے کے مواقع کو پکڑنے کے لئے K لائن شکل اور MACD کالم کی حرکیات کی تبدیلیوں کو جوڑ کر ، آپریشن کی سادگی ، سگنل کی واضح خصوصیات ہیں۔ اگرچہ کچھ خطرہ موجود ہے ، لیکن معقول اصلاح اور خطرے کے انتظام کے اقدامات کے ذریعہ ، حکمت عملی کی استحکام اور منافع بخش صلاحیت کو نمایاں طور پر بڑھا دیا جاسکتا ہے۔ حکمت عملی خاص طور پر رجحانات کے واضح مارکیٹ کے ماحول کے لئے موزوں ہے ، جو تجارتی نظام کا ایک اہم جزو ہوسکتی ہے۔
/*backtest
start: 2024-11-10 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("MACD Momentum Reversal Strategy", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === MACD Calculation ===
fastLength = input.int(12, "MACD Fast Length")
slowLength = input.int(26, "MACD Slow Length")
signalLength = input.int(9, "MACD Signal Length")
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength)
// === Candle Properties ===
bodySize = math.abs(close - open)
prevBodySize = math.abs(close[1] - open[1])
candleBigger = bodySize > prevBodySize
bullishCandle = close > open
bearishCandle = close < open
// === MACD Momentum Conditions ===
// For bullish candles: if the MACD histogram (normally positive) is decreasing over the last 3 bars,
// then the bullish momentum is fading – a potential short signal.
macdLossBullish = (histLine[2] > histLine[1]) and (histLine[1] > histLine[0])
// For bearish candles: if the MACD histogram (normally negative) is increasing (moving closer to zero)
// over the last 3 bars, then the bearish momentum is fading – a potential long signal.
macdLossBearish = (histLine[2] < histLine[1]) and (histLine[1] < histLine[0])
// === Entry Conditions ===
// Short entry: Occurs when the current candle is bullish and larger than the previous candle,
// while the MACD histogram shows fading bullish momentum.
enterShort = bullishCandle and candleBigger and macdLossBullish
// Long entry: Occurs when the current candle is bearish and larger than the previous candle,
// while the MACD histogram shows fading bearish momentum.
enterLong = bearishCandle and candleBigger and macdLossBearish
// === Plot the MACD Histogram for Reference ===
plot(histLine, title="MACD Histogram", color=color.blue, style=plot.style_histogram)
// === Strategy Execution ===
// Enter positions based on conditions. There is no stop loss or take profit defined;
// positions remain open until an opposite signal occurs.
if (enterShort)
strategy.entry("Short", strategy.short)
if (enterLong)
strategy.entry("Long", strategy.long)
// Exit conditions: close an existing position when the opposite signal appears.
if (strategy.position_size > 0 and enterShort)
strategy.close("Long")
if (strategy.position_size < 0 and enterLong)
strategy.close("Short")