یہ حکمت عملی بنیادی طور پر ہل منتقل اوسط اور ڈبلیو ٹی اشارے کے کراس سگنل کو جوڑتی ہے تاکہ رجحانات کے فیصلے اور داخلے کے وقت کے انتخاب پر زیادہ درست فیصلے کرنے کے لئے اپنے اپنے اشارے کی طاقت کو استعمال کیا جاسکے۔
یہ حکمت عملی بنیادی طور پر ہل منتقل اوسط اور ڈبلیو ٹی اشارے کراس سگنل پر مشتمل ہے۔
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 کو عبور کرتا ہے تو خالی سر سگنل ہوتا ہے۔
مجموعی طور پر ہل ایم اے کے رجحان کا فیصلہ اور ڈبلیو ٹی اشارے کے کراس سگنل ، رجحان کی سمت درست ہونے کی شرط پر میدان میں داخل ہوسکتے ہیں۔
اس حکمت عملی میں ہل ایم اے اور ڈبلیو ٹی اشارے کے فوائد کا مجموعی استعمال کیا گیا ہے ، جس میں درج ذیل فوائد ہیں:
ہل ایم اے نے قیمتوں میں تبدیلی کے رجحانات کو تیزی سے پکڑنے کے لئے اور مارکیٹ کے شور کو مؤثر طریقے سے فلٹر کرنے کے لئے منتقل اوسط کے حساب کتاب کو تبدیل کرکے رجحانات کا درست اور قابل اعتماد اندازہ لگایا۔
ڈبلیو ٹی اشارے چینل کے اندر قیمتوں میں اتار چڑھاؤ کی خصوصیات کا استعمال کرتے ہوئے ، تیزی سے موڑ کے مقامات کو پکڑنے اور زیادہ درست تجارتی سگنل بھیجنے کے قابل ہے۔
دونوں کا استعمال کرتے ہوئے ، رجحانات کے فیصلے کو مدنظر رکھتے ہوئے اور کراس سگنل پر توجہ دیتے ہوئے ، رجحانات کی طاقت کے ساتھ ساتھ خطرے کو کنٹرول کیا جاسکتا ہے۔
ہل ایم اے ہموار پیرامیٹرز اور ڈبلیو ٹی اشارے پیرامیٹرز دونوں اپنی مرضی کے مطابق ہیں ، جو مختلف قسم کی خصوصیات اور تجارت کی ترجیحات کے مطابق بہتر بنائے جاسکتے ہیں۔
ہل ایم اے یا ڈبلیو ٹی اشارے کے کراس سگنل کا استعمال کرکے تجارت کی جاسکتی ہے ، یا اس کے ساتھ مل کر ، رجحانات کی پیروی اور کراس توثیق کو مدنظر رکھتے ہوئے۔
اسٹاپ نقصان کی روک تھام کی حکمت عملی ترتیب دی جاسکتی ہے ، جس سے ایک ہی تجارت کے خطرے کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔
اس حکمت عملی کے کچھ اہم خطرات یہ ہیں:
ہل ایم اے اور ڈبلیو ٹی اشارے دونوں نے قیمتوں پر کچھ حد تک مبہم سلوک کیا ہے ، جس کی وجہ سے تھوڑا سا تاخیر ہوسکتی ہے ، جس کی وجہ سے داخلے کا وقت کافی حد تک درست نہیں ہے۔
ڈبلیو ٹی انڈیکس میں فرضی سگنل پیدا کرنے کا خطرہ ہوتا ہے جس میں کثیر الاضلاع اور خالی الاضلاع ہوتا ہے ، جو رجحانات کے ساتھ مل کر نہیں ہوتا ہے ، جس سے تجارت کا خطرہ بڑھ جاتا ہے۔
پیرامیٹرز کی غلط ترتیب بھی ٹرانزیکشن کے نتائج پر اثر انداز ہوسکتی ہے ، جس میں نسل کی خصوصیات کے مطابق مسلسل جانچ اور اصلاح کی ضرورت ہوتی ہے۔
جب رجحان میں ہلچل ہوتی ہے تو ، اسٹاپ نقصانات اکثر متحرک ہوسکتے ہیں ، جس سے تجارت میں کچھ نقصان ہوتا ہے۔
خطرے کے ساتھ نمٹنے کے لئے، آپ کو مندرجہ ذیل طریقوں سے بہتر اور بہتر بنایا جا سکتا ہے:
ہل ایم اے اور ڈبلیو ٹی پیرامیٹرز کو ایڈجسٹ کریں تاکہ بہترین توازن کا پتہ لگایا جاسکے۔ آپ ہل ایم اے کے ساتھ مل کر دوسرے اشارے کی جانچ بھی کرسکتے ہیں۔
رجحانات کا تعین کرنے کا طریقہ کار شامل کریں تاکہ ڈبلیو ٹی اشارے میں واضح رجحانات نہ ہونے پر غلط سگنل سے بچا جاسکے۔
ریٹرننگ اور سمولیٹڈ ٹریڈنگ کا استعمال کرتے ہوئے بہترین پیرامیٹرز کو تلاش کریں اور مناسب اسٹاپ نقصان کی حد مقرر کریں.
جب رجحانات غیر واضح ہوں تو ، پوزیشن کا سائز کم کریں ، یا عارضی طور پر تجارت نہ کریں۔
اس حکمت عملی کو مزید بہتر بنانے کے لیے مندرجہ ذیل نکات پر غور کیا جا سکتا ہے:
WT اشارے کے ساتھ مختلف منتقل اوسط کے مجموعے کی جانچ پڑتال کریں تاکہ بہتر توازن پوائنٹس تلاش کریں۔ جیسے KAMA ، TEMA ، وغیرہ۔
دوسرے اشارے جیسے کہ زلزلے کے اشارے، بولنگر بینڈ وغیرہ کو شامل کرنا، فیصلہ سازی کی درستگی کو بہتر بنانا۔
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 ///