یہ حکمت عملی متحرک حرکت پذیر اوسط پر مبنی تجارتی سگنل تیار کرتی ہے تاکہ اسٹاک کی قیمتوں میں اضافے پر طویل عرصے تک جائیں اور قیمتوں میں کمی کے وقت پوزیشنیں بند کردیں۔ رفتار کے اشارے اور حرکت پذیر اوسط کے فوائد کو جوڑ کر ، اس کا مقصد مستحکم منافع کے لئے درمیانی مدتی قیمتوں کے رجحانات کو ٹریک کرنا ہے۔
یہ حکمت عملی بنیادی طور پر تین ہول موونگ ایوریج (ایچ ایم اے) کے متغیرات پر مبنی ہے
HMA کا فارمولا یہ ہے:
HMA = WMA ((2*WMA ((تقریباً، n/2)-WMA ((تقریباً، n) ، مربع))
جہاں ڈبلیو ایم اے وزن شدہ چلتی اوسط ہے اور این مدت کا پیرامیٹر ہے۔ ایس ایم اے کے مقابلے میں ، ایچ ایم اے قیمتوں میں تبدیلیوں کا تیزی سے جواب دیتا ہے۔
WHMA اور EHMA کے فارمولے ایک جیسے ہیں۔ HMA کو ڈیفالٹ آپشن کے طور پر منتخب کیا گیا ہے۔
ایچ ایم اے کا حساب کتاب کرنے کے بعد ، حکمت عملی ایچ ایم اے کی درمیانی لائن کی قیمت کو تجارتی سگنل کے طور پر استعمال کرتی ہے۔ جب قیمت ایچ ایم اے کی درمیانی لائن سے تجاوز کرتی ہے تو یہ طویل ہوجاتی ہے اور جب قیمت لائن سے نیچے آجاتی ہے تو پوزیشنیں بند ہوجاتی ہیں۔ اس طرح یہ منافع کے لئے ایچ ایم اے کی درمیانی لائن کا استعمال کرتے ہوئے درمیانی مدتی رجحانات کو ٹریک کرتی ہے۔
روایتی ایم اے حکمت عملیوں کے مقابلے میں، اس حکمت عملی میں مندرجہ ذیل برتری ہے:
کچھ خطرات بھی ہیں:
حل:
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں سے بھی بہتر بنایا جاسکتا ہے:
متحرک ایم اے ٹریڈنگ حکمت عملی میں ایچ ایم اے کا تیز رفتار ردعمل شامل ہے تاکہ درمیانی مدتی قیمت کے رجحانات کو مؤثر طریقے سے ٹریک کیا جاسکے۔ مناسب وقت اور بند ہونے والے اسٹاپ پر لمبی پوزیشنوں کو کھولنے سے ، اس نے بیک ٹسٹ کے اچھے نتائج دکھائے ہیں۔ پیرامیٹر ٹیوننگ اور اسٹاک فلٹرنگ میں مزید بہتری سے زیادہ مستحکم اضافی واپسی ہوگی۔ یہ لاگو کرنا آسان ، خطرہ پر قابو پانے والی مقداری حکمت عملی ہے۔
/*backtest start: 2022-12-14 00:00:00 end: 2023-12-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Position Investing by SirSeff', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0) strat_dir_input = input.string(title='Strategy Direction', defval='long', options=['long', 'short', 'all']) strat_dir_value = strat_dir_input == 'long' ? strategy.direction.long : strat_dir_input == 'short' ? strategy.direction.short : strategy.direction.all strategy.risk.allow_entry_in(strat_dir_value) ////////////////////////////////////////////////////////////////////// // Testing Start dates testStartYear = input(2000, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) //Stop date if you want to use a specific range of dates testStopYear = input(2030, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(30, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => true // Component Code Stop ////////////////////////////////////////////////////////////////////// //INPUT src = input(close, title='Source') modeSwitch = input.string('Hma', title='Hull Variation', options=['Hma', 'Thma', 'Ehma']) length = input(55, title='Length(180-200 for floating S/R , 55 for swing entry)') switchColor = input(true, 'Color Hull according to trend?') candleCol = input(false, title='Color candles based on Hull\'s Trend?') visualSwitch = input(true, title='Show as a Band?') thicknesSwitch = input(1, title='Line Thickness') transpSwitch = input.int(40, title='Band Transparency', step=5) //FUNCTIONS //HMA HMA(_src, _length) => ta.wma(2 * ta.wma(_src, _length / 2) - ta.wma(_src, _length), math.round(math.sqrt(_length))) //EHMA EHMA(_src, _length) => ta.ema(2 * ta.ema(_src, _length / 2) - ta.ema(_src, _length), math.round(math.sqrt(_length))) //THMA THMA(_src, _length) => ta.wma(ta.wma(_src, _length / 3) * 3 - ta.wma(_src, _length / 2) - ta.wma(_src, _length), _length) //SWITCH Mode(modeSwitch, src, len) => modeSwitch == 'Hma' ? HMA(src, len) : modeSwitch == 'Ehma' ? EHMA(src, len) : modeSwitch == 'Thma' ? THMA(src, len / 2) : na //OUT HULL = Mode(modeSwitch, src, length) MHULL = HULL[0] SHULL = HULL[2] //COLOR hullColor = switchColor ? HULL > HULL[2] ? #00ff00 : #ff0000 : #ff9800 //PLOT ///< Frame Fi1 = plot(MHULL, title='MHULL', color=hullColor, linewidth=thicknesSwitch, transp=50) Fi2 = plot(visualSwitch ? SHULL : na, title='SHULL', color=hullColor, linewidth=thicknesSwitch, transp=50) ///< Ending Filler fill(Fi1, Fi2, title='Band Filler', color=hullColor, transp=transpSwitch) ///BARCOLOR barcolor(color=candleCol ? switchColor ? hullColor : na : na) if HULL[0] > HULL[2] and testPeriod() strategy.entry('Invest', strategy.long) if HULL[0] < HULL[2] and testPeriod() strategy.entry('Pause', strategy.short)