ڈی ایم آئی اور ایچ ایم اے کے مجموعی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-04 17:23:06
ٹیگز:

img

جائزہ

اس حکمت عملی میں ڈائریکشنل موومنٹ انڈیکس (ڈی ایم آئی) اور ہول موونگ ایوریج (ایچ ایم اے) کو یکجا کیا گیا ہے تاکہ ڈی ایم آئی کے ساتھ مارکیٹ کی سمت کی نشاندہی کی جاسکے اور خطرے کے انتظام کے بغیر ایچ ایم اے کے ساتھ رجحان کی طاقت کی تصدیق کی جاسکے۔

حکمت عملی منطق

  1. حقیقی رینج، DIPlus، DIMinus اور ADX کا حساب لگائیں.

  2. تیز رفتار اور سست ہول چلتی اوسط (HMA) کا حساب لگائیں.

  3. لانگ انٹری کو ٹرگر کریں جب DIPlus DIMinus اور تیز HMA کو سست HMA پر عبور کرے۔

  4. مختصر اندراج کو ٹرگر کریں جب DIMinus DIPlus سے نیچے اور تیز HMA سست HMA سے نیچے گزرتا ہے۔

  5. انٹری سگنلز پر طویل / مختصر احکامات رکھیں.

فوائد کا تجزیہ

رجحان کے اشارے ڈی ایم آئی اور ہل ایم اے کی دوہری تصدیق سے مارکیٹ کے رجحان کو پکڑنے میں درستگی کو یقینی بنایا جاتا ہے اور وپساؤ سے بچنے سے بچتا ہے۔ رسک مینجمنٹ کی عدم موجودگی سے تجارتی تعدد کم ہوجاتا ہے اور طویل مدتی میں مجموعی منافع میں اضافہ ہوتا ہے۔

خطرے کا تجزیہ

اہم خطرہ اسٹاپ نقصان سے آتا ہے ، جب مارکیٹ میں بڑے پیمانے پر اتار چڑھاؤ ہوتے ہیں تو نقصانات پر قابو پانے میں ناکام ہوجاتا ہے۔ نیز محدود ٹیوننگ اسپیس اور کمزور موافقت کی کمی بھی کمی ہے۔

ممکنہ حل میں منتقل سٹاپ نقصان شامل ہیں، پیرامیٹر مکس کو بہتر بنانے وغیرہ.

اصلاح کی ہدایات

  1. حقیقی رینج کی بنیاد پر ATR پیچھے سٹاپ نقصان شامل کریں.

  2. بہترین مرکب تلاش کرنے کے لئے Hull ادوار کو بہتر بنائیں.

  3. طویل / مختصر سگنل کے لئے متحرک حد.

  4. رجحان تسلسل کو یقینی بنانے کے لئے رفتار فلٹر شامل کریں.

خلاصہ

ڈی ایم آئی اور ایچ ایم اے کا امتزاج سادگی اور کارکردگی کے ساتھ رجحانات کی نشاندہی کرنے میں نمایاں کارکردگی کا مظاہرہ کرتا ہے۔ مناسب اسٹاپ نقصان اور پیرامیٹر ٹوننگ کے ساتھ ، یہ ایک عمدہ رجحان کے بعد کا نظام بن سکتا ہے۔


/*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)

مزید