ہل چلتی اوسط اور WT کراس پر مبنی تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-26 20:00:32
ٹیگز:

جائزہ

اس حکمت عملی میں بنیادی طور پر ہل چلتی اوسط اور WT کراس سگنل کو یکجا کیا گیا ہے تاکہ ہر اشارے کے فوائد کو زیادہ درست رجحان کی تشخیص اور داخلہ کے وقت کے لئے فائدہ اٹھایا جاسکے.

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

حکمت عملی ہول چلتی اوسط اور WT کراس سگنل پر مشتمل ہے.

ہیل چلتی اوسط حصہ مختصر مدت اور طویل مدتی ہیل ایم اے کا حساب لگاتا ہے اور رجحان کی سمت کا تعین کرنے کے لئے رنگ بھرتا ہے۔ فارمولے یہ ہیں:

شارٹ ہول ایم اے = ڈبلیو ایم اے ((2*ڈبلیو ایم اے ((n/2) - ڈبلیو ایم اے ((n) ، مربع))

لانگ ہول MA = WMA(WMA(n/3) *3 - WMA ((n/2), n/2)

جہاں ڈبلیو ایم اے وزن شدہ چلتی اوسط ہے۔ جب مختصر ایم اے لمبی ایم اے کو عبور کرتا ہے تو ، یہ ایک تیزی کا اشارہ ہے ، بصورت دیگر یہ ایک bearish اشارہ ہے۔

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

TCI = (بند - EMA(بند،n1)) / (k * STD(بند - EMA(بند،n1))

WT1 = EMA ((TCI،n2)

WT2 = SMA(WT1,m)

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

ہل ایم اے رجحان فیصلے اور WT کراسنگ سگنلز کو یکجا کرکے، ہم صحیح سمت میں مارکیٹ میں داخل ہوسکتے ہیں.

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

اس حکمت عملی کے فوائد یہ ہیں:

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

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

  3. یہ مجموعہ رجحان کی سیدھ میں آنے پر خطرے کے بہتر کنٹرول کے لئے رجحان اور کراسنگ دونوں پر غور کرتا ہے۔

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

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

  6. سٹاپ نقصان اور منافع لے سکتے ہیں مؤثر طریقے سے واحد تجارتی خطرات کو کنٹرول کرنے کے لئے مقرر کیا جا سکتا ہے.

خطرے کا تجزیہ

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

  1. ہل ایم اے اور ڈبلیو ٹی دونوں قیمتوں کو کسی حد تک ہموار کرتے ہیں ، جو تاخیر سے انٹری سگنلز کا سبب بن سکتے ہیں۔

  2. WT ایک واضح رجحان کے بغیر جھوٹے بولش/بیئرش تغیراتی سگنل پیدا کر سکتا ہے۔

  3. غیر مناسب پیرامیٹر کی ترتیبات ٹریڈنگ کی کارکردگی کو متاثر کرسکتی ہیں اور مسلسل اصلاح کی ضرورت ہوتی ہے۔

  4. سٹاپ نقصان اکثر رجحان کی توسیع کے دوران شروع کیا جا سکتا ہے، کچھ نقصان کا سبب بنتا ہے.

خطرات کو مندرجہ ذیل طریقے سے حل اور بہتر بنایا جاسکتا ہے:

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

  2. تصدیق شدہ رجحان کے بغیر جھوٹے WT سگنل سے بچنے کے لئے رجحان کی توثیق کے طریقہ کار کو شامل کریں.

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

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

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

اسٹریٹیجی کو مندرجہ ذیل پہلوؤں سے مزید بہتر بنایا جاسکتا ہے:

  1. WT کے ساتھ مل کر مختلف حرکت پذیر اوسطوں کا تجربہ کریں ، تاکہ بہتر توازن مل سکے ، جیسے KAMA ، TEMA وغیرہ۔

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

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

  4. سٹاپ نقصان کی حکمت عملی کو بہتر بنائیں، جیسے ٹرائلنگ سٹاپ، اتار چڑھاؤ پر مبنی سٹاپ، قریب سے دور تک منتقل وغیرہ، ناپسندیدہ ٹرگرنگ کو کم کرنے کے لئے.

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

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

خلاصہ

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


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


مزید