مومنٹم ٹرپل ٹرینڈ ٹریکنگ حکمت عملی ٹرپل ٹریڈنگ کے قوانین پر مبنی ایک رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ رجحانات کی نشاندہی کرنے کے لئے ٹرپل اشارے کا استعمال کرتی ہے اور کچھ شور کی تجارت کو فلٹر کرنے کے لئے مومنٹم میٹرکس کو جوڑتی ہے۔ اس حکمت عملی کا بنیادی فائدہ یہ ہے کہ قیمت کے مضبوط رجحانات کو پکڑنے اور اضافی منافع حاصل کرنے کی صلاحیت ہے۔
یہ حکمت عملی رجحان کی سمت کا تعین کرنے کے لئے ٹرتل اشارے میں بریک آؤٹ سسٹم کا استعمال کرتی ہے۔ خاص طور پر ، جب اختتامی قیمت پچھلے 20 دنوں میں سب سے زیادہ قیمت سے زیادہ ہوتی ہے تو ، یہ ایک تیزی کا اشارہ ہے اور طویل ہوتا ہے۔ جب اختتامی قیمت پچھلے 20 دنوں میں سب سے کم قیمت سے کم ہوتی ہے تو ، یہ ایک bearish اشارہ ہے اور حکمت عملی مختصر ہوجاتی ہے۔
کچھ شور کی تجارت کو فلٹر کرنے کے ل this ، اس حکمت عملی میں ایک رفتار کا عنصر بھی شامل ہے۔ اگر قیمت میں اتار چڑھاؤ 5 اے ٹی آر سے کم ہے تو ، حکمت عملی تجارت میں داخل نہیں ہوگی۔ اس سے ضمنی بازاروں میں وپساؤ سے ہونے والے نقصانات سے بچتا ہے۔
اسٹاپ نقصان کے لئے حکمت عملی میں اسٹاپ نقصان کے لئے N-بریک آؤٹ کا استعمال کیا جاتا ہے۔ یہ نظام پچھلے 20 دنوں میں سب سے زیادہ اور سب سے کم قیمتوں کی بنیاد پر اسٹاپ نقصان طے کرتا ہے۔ مثال کے طور پر ، لمبی پوزیشنوں کے لئے اسٹاپ نقصان پچھلے 20 دنوں میں سب سے کم سے 2N ATRs کم ہوگا۔ اس حکمت عملی کے لئے منافع حاصل کرنا آسان ہے - کل اکاؤنٹ کی قیمت کا 10٪ مقرر کریں۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ یہ رجحان کی پیروی اور رفتار کے انتظام دونوں کو جوڑتا ہے۔ کچھی کا نظام مارکیٹ کے شور سے پریشان ہونے کے بغیر قیمتوں میں درمیانی مدتی رجحانات کو درست طریقے سے پکڑ سکتا ہے۔ اضافی اے ٹی آر رفتار فلٹر غیر ضروری تجارت کی تعداد کو مزید کم کرتا ہے ، اس طرح منافع کی صلاحیت میں بہت اضافہ ہوتا ہے۔
خاص طور پر، اس حکمت عملی میں مندرجہ ذیل طاقتیں ہیں:
اگرچہ مزید اصلاحات کے لئے بڑی صلاحیت موجود ہے ، اس حکمت عملی میں کچھ خطرات بھی شامل ہیں جن سے بچنے کے لئے:
مندرجہ بالا خطرات کی بنیاد پر، اصلاح کے اہم مواقع میں شامل ہیں:
مجموعی طور پر مومنٹم ٹرٹل ٹرینڈ ٹریکنگ حکمت عملی درمیانی سے طویل مدتی رجحان کی پیروی کے لئے ایک مضبوط نظام ہے۔ یہ مضبوط رجحانات کو پکڑنے کے لئے رجحان کی نشاندہی کے لئے ٹرٹل اشارے اور اتار چڑھاؤ کے انتظام کے لئے اے ٹی آر فلٹرز کو یکجا کرتا ہے۔ اس کے علاوہ رسک کنٹرول اور پیرامیٹر ٹیوننگ ڈراؤونگ کو کم کرنے کے لئے ٹھوس ہیں۔ متحرک سائزنگ ، الٹ اور منافع لینے جیسی مزید بہتری کارکردگی کو بہتر بنا سکتی ہے۔
/*backtest start: 2023-10-23 00:00:00 end: 2023-11-22 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Heiken Ashi BF 🚀", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075) /////////////// Time Frame /////////////// testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0) testStopYear = input(2029, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0) testPeriod() => true ///////////// HA ///////////// haTicker = heikinashi(syminfo.tickerid) haOpen = security(haTicker, "D", open) haHigh = security(haTicker, "D", high) haLow = security(haTicker, "D", low) haClose = security(haTicker, "D", close) ///////////// Rate Of Change ///////////// source = close roclength = input(30, minval=1) pcntChange = input(7.0, minval=1) roc = 100 * (source - source[roclength]) / source[roclength] emaroc = ema(roc, roclength / 2) isMoving() => emaroc > (pcntChange / 2) or emaroc < (0 - (pcntChange / 2)) /////////////// Strategy /////////////// long = haOpen < haClose and isMoving() short = haOpen > haClose and isMoving() last_long = 0.0 last_short = 0.0 last_long := long ? time : nz(last_long[1]) last_short := short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) last_open_long_signal = 0.0 last_open_short_signal = 0.0 last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1]) last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1]) last_long_signal = 0.0 last_short_signal = 0.0 last_long_signal := long_signal ? time : nz(last_long_signal[1]) last_short_signal := short_signal ? time : nz(last_short_signal[1]) in_long_signal = last_long_signal > last_short_signal in_short_signal = last_short_signal > last_long_signal last_high = 0.0 last_low = 0.0 last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1]) last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1]) sl_inp = input(2.0, title='Stop Loss %') / 100 tp_inp = input(5000.0, title='Take Profit %') / 100 take_level_l = strategy.position_avg_price * (1 + tp_inp) take_level_s = strategy.position_avg_price * (1 - tp_inp) since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1]) since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1]) slLong = in_long_signal ? strategy.position_avg_price * (1 - sl_inp) : na slShort = strategy.position_avg_price * (1 + sl_inp) long_sl = in_long_signal ? slLong : na short_sl = in_short_signal ? slShort : na /////////////// Execution /////////////// if testPeriod() strategy.entry("L", strategy.long, when=long) strategy.entry("S", strategy.short, when=short) strategy.exit("L SL", "L", stop=long_sl, limit=take_level_l, when=since_longEntry > 0) strategy.exit("S SL", "S", stop=short_sl, limit=take_level_s, when=since_shortEntry > 0) /////////////// Plotting /////////////// plotcandle(haOpen, haHigh, haLow, haClose, title='HA Candles', color = haOpen < haClose ? color.lime : color.red) bgcolor(isMoving() ? long ? color.lime : short ? color.red : na : color.white, transp=70) bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=50)