ہل موونگ ایوریج اور ڈبلیو ٹی انڈیکیٹر کے کراس اوور پر مبنی تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-09-26 20:00:32 آخر میں ترمیم کریں: 2023-09-26 20:00:32
کاپی: 1 کلکس کی تعداد: 1000
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

حکمت عملی کا اصول

یہ حکمت عملی بنیادی طور پر ہل منتقل اوسط اور ڈبلیو ٹی اشارے کراس سگنل پر مشتمل ہے۔

Hull Moving Average کا حصہ، مختصر اور طویل مدتی Hull MA کا حساب لگاکر، اور رنگ بھرنے کے ذریعے رجحان کی سمت کا فیصلہ کریں۔ حساب کتاب کا فارمولا یہ ہے:

مختصر مدت ہل MA = WMA ((2)*WMA(n/2) - WMA(n), sqrt(n))

طویل مدتی ہل ایم اے = ڈبلیو ایم اے ((ڈبلیو ایم اے ((n/3))*3 - WMA(n/2), n/2)

اس میں WMA ایک وزن والی حرکت پذیر اوسط ہے۔ جب قلیل مدتی لائن طویل مدتی لائن سے گزرتی ہے تو یہ ایک مثبت سگنل ہے ، ورنہ یہ ایک منفی سگنل ہے۔

ڈبلیو ٹی انڈیکس سیکشن ، ڈبلیو ٹی انڈیکس کی کثیر فضائی میڈین لائن کا حساب کتاب کرکے اور میڈین لائن کے کراسنگ کو دیکھ کر داخلے کا فیصلہ کریں۔ حساب کتاب کا فارمولا یہ ہے:

TCI = (Close - EMA(Close,n1)) / (k * STD(Close - EMA(Close,n1),n1))

WT1 = EMA(TCI,n2)

WT2 = SMA(WT1,m)

اس میں ٹی سی آئی ٹرینڈ کمپوزٹ انڈیکس ہے ، جو قیمتوں اور چینل کے وسط لائن ای ایم اے کے انحراف کی عکاسی کرتا ہے۔ ڈبلیو ٹی 1 ٹی سی آئی کا ای ایم اے ہموار ہے ، ڈبلیو ٹی 2 ڈبلیو ٹی 1 کا ایس ایم اے ہے ، اور عام طور پر 4 لیا جاتا ہے۔ جب ڈبلیو ٹی 1 ڈبلیو ٹی 2 کو عبور کرتا ہے تو کثیر سر سگنل ہوتا ہے ، اور جب ڈبلیو ٹی 1 ڈبلیو ٹی 2 کو عبور کرتا ہے تو خالی سر سگنل ہوتا ہے۔

مجموعی طور پر ہل ایم اے کے رجحان کا فیصلہ اور ڈبلیو ٹی اشارے کے کراس سگنل ، رجحان کی سمت درست ہونے کی شرط پر میدان میں داخل ہوسکتے ہیں۔

طاقت کا تجزیہ

اس حکمت عملی میں ہل ایم اے اور ڈبلیو ٹی اشارے کے فوائد کا مجموعی استعمال کیا گیا ہے ، جس میں درج ذیل فوائد ہیں:

  1. ہل ایم اے نے قیمتوں میں تبدیلی کے رجحانات کو تیزی سے پکڑنے کے لئے اور مارکیٹ کے شور کو مؤثر طریقے سے فلٹر کرنے کے لئے منتقل اوسط کے حساب کتاب کو تبدیل کرکے رجحانات کا درست اور قابل اعتماد اندازہ لگایا۔

  2. ڈبلیو ٹی اشارے چینل کے اندر قیمتوں میں اتار چڑھاؤ کی خصوصیات کا استعمال کرتے ہوئے ، تیزی سے موڑ کے مقامات کو پکڑنے اور زیادہ درست تجارتی سگنل بھیجنے کے قابل ہے۔

  3. دونوں کا استعمال کرتے ہوئے ، رجحانات کے فیصلے کو مدنظر رکھتے ہوئے اور کراس سگنل پر توجہ دیتے ہوئے ، رجحانات کی طاقت کے ساتھ ساتھ خطرے کو کنٹرول کیا جاسکتا ہے۔

  4. ہل ایم اے ہموار پیرامیٹرز اور ڈبلیو ٹی اشارے پیرامیٹرز دونوں اپنی مرضی کے مطابق ہیں ، جو مختلف قسم کی خصوصیات اور تجارت کی ترجیحات کے مطابق بہتر بنائے جاسکتے ہیں۔

  5. ہل ایم اے یا ڈبلیو ٹی اشارے کے کراس سگنل کا استعمال کرکے تجارت کی جاسکتی ہے ، یا اس کے ساتھ مل کر ، رجحانات کی پیروی اور کراس توثیق کو مدنظر رکھتے ہوئے۔

  6. اسٹاپ نقصان کی روک تھام کی حکمت عملی ترتیب دی جاسکتی ہے ، جس سے ایک ہی تجارت کے خطرے کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔

خطرے کا تجزیہ

اس حکمت عملی کے کچھ اہم خطرات یہ ہیں:

  1. ہل ایم اے اور ڈبلیو ٹی اشارے دونوں نے قیمتوں پر کچھ حد تک مبہم سلوک کیا ہے ، جس کی وجہ سے تھوڑا سا تاخیر ہوسکتی ہے ، جس کی وجہ سے داخلے کا وقت کافی حد تک درست نہیں ہے۔

  2. ڈبلیو ٹی انڈیکس میں فرضی سگنل پیدا کرنے کا خطرہ ہوتا ہے جس میں کثیر الاضلاع اور خالی الاضلاع ہوتا ہے ، جو رجحانات کے ساتھ مل کر نہیں ہوتا ہے ، جس سے تجارت کا خطرہ بڑھ جاتا ہے۔

  3. پیرامیٹرز کی غلط ترتیب بھی ٹرانزیکشن کے نتائج پر اثر انداز ہوسکتی ہے ، جس میں نسل کی خصوصیات کے مطابق مسلسل جانچ اور اصلاح کی ضرورت ہوتی ہے۔

  4. جب رجحان میں ہلچل ہوتی ہے تو ، اسٹاپ نقصانات اکثر متحرک ہوسکتے ہیں ، جس سے تجارت میں کچھ نقصان ہوتا ہے۔

خطرے کے ساتھ نمٹنے کے لئے، آپ کو مندرجہ ذیل طریقوں سے بہتر اور بہتر بنایا جا سکتا ہے:

  1. ہل ایم اے اور ڈبلیو ٹی پیرامیٹرز کو ایڈجسٹ کریں تاکہ بہترین توازن کا پتہ لگایا جاسکے۔ آپ ہل ایم اے کے ساتھ مل کر دوسرے اشارے کی جانچ بھی کرسکتے ہیں۔

  2. رجحانات کا تعین کرنے کا طریقہ کار شامل کریں تاکہ ڈبلیو ٹی اشارے میں واضح رجحانات نہ ہونے پر غلط سگنل سے بچا جاسکے۔

  3. ریٹرننگ اور سمولیٹڈ ٹریڈنگ کا استعمال کرتے ہوئے بہترین پیرامیٹرز کو تلاش کریں اور مناسب اسٹاپ نقصان کی حد مقرر کریں.

  4. جب رجحانات غیر واضح ہوں تو ، پوزیشن کا سائز کم کریں ، یا عارضی طور پر تجارت نہ کریں۔

اصلاح کی سمت

اس حکمت عملی کو مزید بہتر بنانے کے لیے مندرجہ ذیل نکات پر غور کیا جا سکتا ہے:

  1. WT اشارے کے ساتھ مختلف منتقل اوسط کے مجموعے کی جانچ پڑتال کریں تاکہ بہتر توازن پوائنٹس تلاش کریں۔ جیسے KAMA ، TEMA ، وغیرہ۔

  2. دوسرے اشارے جیسے کہ زلزلے کے اشارے، بولنگر بینڈ وغیرہ کو شامل کرنا، فیصلہ سازی کی درستگی کو بہتر بنانا۔

3 ۔ پیرامیٹرز کی ترتیب کو بہتر بنائیں ، بہترین پیرامیٹرز کا مجموعہ تلاش کرنے کے لئے ریٹرننگ اور ماڈلنگ کریں۔ پیرامیٹرز کی اصلاح کا پروگرام تشکیل دے سکتے ہیں ، بہترین پیرامیٹرز کو تیزی سے تلاش کریں۔

  1. نقصانات کو روکنے کی حکمت عملی کو بہتر بنائیں ، جیسے کہ متحرک نقصانات ، کمپن نقصانات ، قریبی اور دور دراز نقصانات وغیرہ کا استعمال کریں ، تاکہ نقصانات کو روکنے کے امکانات کو کم کیا جاسکے۔

  2. پوزیشن مینجمنٹ کی حکمت عملی کو بہتر بنائیں ، رجحانات کی غیر یقینی صورتحال میں تجارتی تعدد اور پوزیشن کے سائز کو کم کریں ، اور خطرات کو کم کریں۔

  3. اعلی درجے کی ٹکنالوجی جیسے مشین لرننگ کو شامل کرنا ، زیادہ ذہین تجارتی فیصلوں اور پیرامیٹرز کی موافقت کے لئے۔

خلاصہ کریں۔

اس حکمت عملی میں ہل ایم اے ہموار حرکت پذیر اوسط اور ڈبلیو ٹی اشارے کی کراس کی خصوصیات شامل ہیں ، اور اس میں رجحان کا فیصلہ اور کراس کی توثیق کا فائدہ ہے۔ صحیح سمت کو یقینی بنانے کی شرط پر تجارت کرتے ہوئے ، خطرے کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔ پیرامیٹرز کی ترتیب ، اسٹاپ نقصان کی حکمت عملی ، پوزیشن مینجمنٹ وغیرہ کو بہتر بنانے کے ذریعہ ، حکمت عملی کی استحکام اور تجارت کی تاثیر کو مزید بہتر بنایا جاسکتا ہے۔ دیگر اشارے کے فیصلے اور ذہین ٹریڈنگ ٹکنالوجی کو گول کرنا بھی مستقبل کی اصلاح کی سمت ہے۔ مجموعی طور پر ، اس حکمت عملی میں سادہ ، قابل اعتماد ، آسان اصلاح کی خصوصیات ہیں ، اور یہ ایک عملی رجحان کی پیروی کرنے والی حکمت عملی ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
basePeriod: 15m
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/
// WT CROSS @author [© LazyBear]
// © pigsq
// @version=5

strategy("Kahlman HullMA / WT Cross Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100)

_1 = input(false, '───────── SP/TP SETTINGS ─────────')

stoploss1 = input(title='Stop Loss On/Off?', defval=true)
stoploss = input.float(5, "Stop Loss", minval = 1, step = 1)/100
takeprofit1 = input(title='Take Profit On/Off?', defval=true)
takeprofit = input.float(10, "Take Profit", minval = 1, step = 1)/100

_2 = input(false, '──────── WT CROSS SETTINGS ────────')

wtcross = input(title='WT Cross On/Off?', defval=true)
wtcross2 = input(title='Change WT Cross Method ( If WT Cross ON )', defval=false)

/// WT CROSS ///

n1 = input(10, 'Channel Length')
n2 = input(21, 'Average Length')

ap = hlc3
esa = ta.ema(ap, n1)
r = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * r)
tci = ta.ema(ci, n2)

wt1 = tci
wt2 = ta.sma(wt1, 4)

/// WT CROSS ///

/// HULL TREND WITH KAHLMAN ///

_3 = input(false, '──────── HULLMA SETTINGS ────────')

srchull = input(hl2, 'Source')
lengthhull = input(24, 'Lookback')
gain = input(10000, 'Gain')
kh = input(true, 'Use Kahlman')

hma(_srchull, _lengthhull) =>
    ta.wma((2 * ta.wma(_srchull, _lengthhull / 2)) - ta.wma(_srchull, _lengthhull), math.round(math.sqrt(_lengthhull)))

hma3(_srchull, _lengthhull) =>
    p = lengthhull / 2
    ta.wma(ta.wma(close, p / 3) * 3 - ta.wma(close, p / 2) - ta.wma(close, p), p)

kahlman(x, g) =>
    kf = 0.0
    dk = x - nz(kf[1], x)
    smooth = nz(kf[1], x) + dk * math.sqrt(g / 10000 * 2)
    velo = 0.0
    velo := nz(velo[1], 0) + g / 10000 * dk
    kf := smooth + velo
    kf

a = kh ? kahlman(hma(srchull, lengthhull), gain) : hma(srchull, lengthhull)
b = kh ? kahlman(hma3(srchull, lengthhull), gain) : hma3(srchull, lengthhull)
c = b > a ? color.lime : color.red
crossdn = a > b and a[1] < b[1]
crossup = b > a and b[1] < a[1]

p1hma = plot(a, color=c, linewidth=1, title='Long Plot', transp=75)
p2hma = plot(b, color=c, linewidth=1, title='Short Plot', transp=75)
fill(p1hma, p2hma, color=c, title='Fill', transp=55)

/// HULL TREND WITH KAHLMAN ///

/// DATE ///

_4 = input(false, '───────── DATE SETTINGS ─────────')

FromMonth = input.int(defval=1, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=999, title='From Year', minval=999)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() =>
    time >= start and time <= finish ? true : false

/// DATE ///

/// LONG/SHORT CONDITION ///

longCondition = crossup and ta.crossover(wt1,wt2)
longCondition1 = crossup
longCondition2 = crossup and wt1 > wt2

if (wtcross == true ? longCondition : wtcross == false ? longCondition1:na)
    strategy.entry("LONG", strategy.long, when=window(), comment="Enter Long")
else if (wtcross2 == true ? longCondition2 : wtcross2 == false ? longCondition:na)
    strategy.entry("LONG", strategy.long, when=window(), comment="Enter Long")
    
shortCondition = crossdn and ta.crossunder(wt1,wt2)
shortCondition1 = crossdn
shortCondition2 = crossdn and wt1 < wt2

if (wtcross == true ? shortCondition : wtcross == false ? shortCondition1:na)
    strategy.entry("SHORT", strategy.short, when=window(), comment="Enter Short")
else if (wtcross2 == true ? shortCondition2 : wtcross2 == false ? shortCondition:na)
    strategy.entry("LONG", strategy.long, when=window(), comment="Enter Short")

/// LONG/SHORT CONDITION ///

/// CLOSE STRATEGY ///

strategy.close("LONG", when=wtcross == true ? shortCondition : wtcross == false ? shortCondition1:na, comment = "Close Long")
strategy.close("SHORT", when=wtcross == true ? longCondition : wtcross == false ? longCondition1:na, comment = "Close Short")

/// EXIT STRATEGY ///

strategy.exit("LONG", when=strategy.position_size > 0, stop=stoploss1 == true ? strategy.position_avg_price * (1 - stoploss):na, limit=takeprofit1 == true ? strategy.position_avg_price * (1 + takeprofit):na, comment="Exit Long")
strategy.exit("SHORT", when=strategy.position_size < 0, stop=stoploss1 == true ? strategy.position_avg_price * (1 + stoploss):na, limit=takeprofit1 == true ? strategy.position_avg_price * (1 - takeprofit):na, comment ="Exit Short")

/// LONG SL/TP LINE ///

plot(strategy.position_size > 0 ? strategy.position_avg_price * (1 - stoploss) : na, title='Long Stop Loss', color=stoploss1 == true ? color.new(color.red, 0):na, style=plot.style_linebr)
plot(strategy.position_size > 0 ? strategy.position_avg_price * (1 + takeprofit) : na, title='Long Take Profit', color=takeprofit1 == true ? color.new(color.green, 0):na, style=plot.style_linebr)

/// LONG SL/TP LINE ///

/// SHORT SL/TP LINE ///

plot(strategy.position_size < 0 ? strategy.position_avg_price * (1 + stoploss) : na, title='Short Stop Loss', color=stoploss1 == true ? color.new(color.red, 0):na, style=plot.style_linebr)
plot(strategy.position_size < 0 ? strategy.position_avg_price * (1 - takeprofit) : na, title='Short Take Profit', color=takeprofit1 == true ? color.new(color.green, 0):na, style=plot.style_linebr)

/// SHORT SL/TP LINE ///