اس حکمت عملی میں ڈائریکشنل موومنٹ انڈیکس (ڈی ایم آئی) اور ہول موونگ ایوریج (ایچ ایم اے) کو یکجا کیا گیا ہے تاکہ ڈی ایم آئی کے ساتھ مارکیٹ کی سمت کی نشاندہی کی جاسکے اور خطرے کے انتظام کے بغیر ایچ ایم اے کے ساتھ رجحان کی طاقت کی تصدیق کی جاسکے۔
حقیقی رینج، DIPlus، DIMinus اور ADX کا حساب لگائیں.
تیز رفتار اور سست ہول چلتی اوسط (HMA) کا حساب لگائیں.
لانگ انٹری کو ٹرگر کریں جب DIPlus DIMinus اور تیز HMA کو سست HMA پر عبور کرے۔
مختصر اندراج کو ٹرگر کریں جب DIMinus DIPlus سے نیچے اور تیز HMA سست HMA سے نیچے گزرتا ہے۔
انٹری سگنلز پر طویل / مختصر احکامات رکھیں.
رجحان کے اشارے ڈی ایم آئی اور ہل ایم اے کی دوہری تصدیق سے مارکیٹ کے رجحان کو پکڑنے میں درستگی کو یقینی بنایا جاتا ہے اور وپساؤ سے بچنے سے بچتا ہے۔ رسک مینجمنٹ کی عدم موجودگی سے تجارتی تعدد کم ہوجاتا ہے اور طویل مدتی میں مجموعی منافع میں اضافہ ہوتا ہے۔
اہم خطرہ اسٹاپ نقصان سے آتا ہے ، جب مارکیٹ میں بڑے پیمانے پر اتار چڑھاؤ ہوتے ہیں تو نقصانات پر قابو پانے میں ناکام ہوجاتا ہے۔ نیز محدود ٹیوننگ اسپیس اور کمزور موافقت کی کمی بھی کمی ہے۔
ممکنہ حل میں منتقل سٹاپ نقصان شامل ہیں، پیرامیٹر مکس کو بہتر بنانے وغیرہ.
حقیقی رینج کی بنیاد پر ATR پیچھے سٹاپ نقصان شامل کریں.
بہترین مرکب تلاش کرنے کے لئے Hull ادوار کو بہتر بنائیں.
طویل / مختصر سگنل کے لئے متحرک حد.
رجحان تسلسل کو یقینی بنانے کے لئے رفتار فلٹر شامل کریں.
ڈی ایم آئی اور ایچ ایم اے کا امتزاج سادگی اور کارکردگی کے ساتھ رجحانات کی نشاندہی کرنے میں نمایاں کارکردگی کا مظاہرہ کرتا ہے۔ مناسب اسٹاپ نقصان اور پیرامیٹر ٹوننگ کے ساتھ ، یہ ایک عمدہ رجحان کے بعد کا نظام بن سکتا ہے۔
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Tuned_Official //@version=4 strategy(title="DMI + HMA - No Risk Management", overlay = false, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.025) //Inputs hullLen1 = input(title="Hull 1 length", type=input.integer, defval=29) hullLen2 = input(title="Hull 2 length", type=input.integer, defval=2) len = input(title="Length for DI", type=input.integer, defval=76) //Calculations TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedTrueRange = 0.0 SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange SmoothedDirectionalMovementPlus = 0.0 SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus SmoothedDirectionalMovementMinus = 0.0 SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus //Indicators fasthull = hma(close, hullLen1) slowhull = hma(close, hullLen2) DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100 ADX = sma(DX, len) //Plots plot(DIPlus, color=color.green, title="DI+") plot(DIMinus, color=color.red, title="DI-") plot(ADX, color=color.black, title="ADX") //conditions go_long = crossover(DIPlus, DIMinus) and fasthull > slowhull //crossover(fasthull, slowhull) and DIPlus > DIMinus go_short = crossover(DIMinus, DIPlus) and fasthull < slowhull //crossunder(fasthull, slowhull) and DIMinus > DIPlus //Entry if strategy.position_size < 0 or strategy.position_size == 0 strategy.order("long", strategy.long, when=go_long) if strategy.position_size > 0 or strategy.position_size == 0 strategy.order("Short", strategy.short, when=go_short)