وسائل لوڈ ہو رہے ہیں... لوڈنگ...

کثیر ٹائم فریم چلتی اوسط سسٹم ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-12 16:07:18
ٹیگز:

img

جائزہ

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

اصول

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

خاص طور پر ، حکمت عملی میں رجحان ، رجحان2 اور رجحان3 متغیرات بالترتیب 15 منٹ ، 30 منٹ اور 60 منٹ کے ٹائم فریم کے قیمت کے رجحانات کی نمائندگی کرتے ہیں۔ اگر 15 منٹ کی قیمت میں الٹ پھیر ہے ، جبکہ 30 منٹ اور 60 منٹ ابھی تک الٹ نہیں ہوا ہے ، تو اسے مختصر اور طویل تر رجحانات کے مابین اختلاف کے طور پر سمجھا جاتا ہے ، اس طرح تجارتی سگنل تیار ہوتا ہے۔ اگر تمام ٹائم فریم کے رجحانات مستقل ہوں تو کوئی سگنل پیدا نہیں ہوں گے۔

متعدد ٹائم فریم کے مابین تعلقات کا موازنہ کرکے اور کچھ غلط سگنل کو فلٹر کرکے ، زیادہ قابل اعتماد تجارتی سگنل تیار کیے جاسکتے ہیں۔ یہ حکمت عملی کا بنیادی خیال ہے۔

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

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

  1. متعدد ٹائم فریم تجزیہ اور جھوٹے سگنلز کے فلٹرنگ کے ذریعے سگنل کی قابل اعتماد میں بہتری۔
  2. جامع فیصلوں کے لئے متعدد اشارے کو ملا کر ایک اشارے کے ساتھ مسائل سے بچنا۔
  3. دستی مداخلت کے بغیر طویل اور مختصر پوزیشنوں کے درمیان خودکار سوئچنگ، آپریشنل مشکل کو کم کرنا.

خطرے کا تجزیہ

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

  1. کثیر ٹائم فریم تجزیہ تجارت میں داخل ہونے کے وقت کے بارے میں غیر یقینی صورتحال پیدا کرتا ہے جس کی وجہ سے بہترین اندراج کی قیمتوں کا فقدان ہوسکتا ہے۔
  2. متعدد اشارے کو یکجا کرتے وقت پیرامیٹرز کی نامناسب ترتیبات ٹریڈنگ سگنل کے معیار میں خرابی کا باعث بن سکتی ہیں۔
  3. خود کار طریقے سے پوزیشن سوئچنگ زیادہ سے زیادہ اصلاح اور بیک ٹیسٹ کے مقابلے میں کمزور حقیقی ٹریڈنگ کی کارکردگی کا خطرہ ہے.

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

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

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

اس حکمت عملی کو مزید بہتر بنانے کی گنجائش ہے:

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

نتیجہ

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


/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Drexel Strategy", overlay=true )
Length1=7
Length2=9
Multiplier=input(1.5,"Multiplier")
jma(src,length) =>
    beta = 0.45*(length-1)/(0.45*(length-1)+2)
    alpha = beta
    tmp0 = (1-alpha)*src + alpha*nz(tmp0[1])
    tmp1 = (src - tmp0[0])*(1-beta) + beta*nz(tmp1[1])
    tmp2 = tmp0[0] + tmp1[0]
    tmp3 = (tmp2[0] - nz(tmp4[1]))*((1-alpha)*(1-alpha)) + (alpha*alpha)*nz(tmp3[1])
    tmp4 = nz(tmp4[1]) + tmp3[0]
    JMA = tmp4
    JMA
rsx(src,length) =>
    f90_ = (nz(f90_[1]) == 0.0) ? 1.0 : (nz(f88[1]) <= nz(f90_[1])) ? nz(f88[1])+1 : nz(f90_[1])+1
    f88 = (nz(f90_[1]) == 0.0) and (length-1 >= 5) ? length-1.0 : 5.0 
    f8 =  100.0*(src) 
    f18 = 3.0 / (length + 2.0) 
    f20 = 1.0 - f18 
    f10 = nz(f8[1])
    v8 = f8 - f10 
    f28 = f20 * nz(f28[1]) + f18 * v8 
    f30 = f18 * f28 + f20 * nz(f30[1])
    vC = f28 * 1.5 - f30 * 0.5 
    f38 = f20 * nz(f38[1]) + f18 * vC 
    f40 = f18 * f38 + f20 * nz(f40[1])
    v10 = f38 * 1.5 - f40 * 0.5 
    f48 = f20 * nz(f48[1]) + f18 * v10 
    f50 = f18 * f48 + f20 * nz(f50[1])
    v14 = f48 * 1.5 - f50 * 0.5 
    f58 = f20 * nz(f58[1]) + f18 * abs(v8) 
    f60 = f18 * f58 + f20 * nz(f60[1])
    v18 = f58 * 1.5 - f60 * 0.5
    f68 = f20 * nz(f68[1]) + f18 * v18 
    f70 = f18 * f68 + f20 * nz(f70[1])
    v1C = f68 * 1.5 - f70 * 0.5 
    f78 = f20 * nz(f78[1]) + f18 * v1C 
    f80 = f18 * f78 + f20 * nz(f80[1])
    v20 = f78 * 1.5 - f80 * 0.5
    f0 = ((f88 >= f90_) and (f8 != f10)) ? 1.0  : 0.0
    f90 = ((f88 == f90_) and (f0 == 0.0))  ? 0.0  : f90_
    v4_ = ((f88 < f90) and (v20 > 0.0000000001)) ? (v14 / v20 + 1.0) * 50.0 : 50.0
    rsx = ((v4_ > 100.0) ? 100.0 : (v4_ < 0.0) ? 0.0 : v4_)-50
    rsx
xPrice=open
emaA = ema(xPrice, Length2)  
Xprice = rsx(open,14)
XPrice = high, xprice = low
xe1 = jma(xPrice, Length1)
xe11 = jma(Xprice[1],Length1)
xe111 = jma(XPrice[1],Length1)
xe1111=jma(xprice[1],Length1)
xe2 = jma(xe1, Length1)
xe21 = jma(xe111, Length1)
xe3 = jma(xe2, Length1)
xe31 = jma(xe1111,Length2)
xe3a = jma(xe2,Length1)
xe4 = jma(xe3, Length1)
xe5 = jma(xe4, Length1)
xe6 = jma(xe5, Length1)
b = 0.7
c1 = -b*b*b
c2 = 3*b*b+3*b*b*b
c3 = -6*b*b-3*b-3*b*b*b
c3a = nz(c3a[1])
c4 = 1+3*b+b*b*b+3*b*b
TEMA = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
DEMA = 2 * emaA - ema(emaA, Length2)
Length(mod)=>(mod*c3a)+Length2
Trend1=TEMA/DEMA
a=rsx(open,Length(2))
b1=rsx(open,Length(3))
c=rsx(open,Length(5))
d=rsx(open,Length(8))
e=rsx(open,Length(13))
f=rsx(open,Length(21))
g=rsx(open,Length(34))
h=rsx(open,Length(55))
i=rsx(open,Length(89))
j=rsx(open,Length(144))
trend1 = (((a-b1)+(c-d)+(e-f)+(g-h)+(i-j))/10)
trend = trend1>0?avg(a,b,c4,c2):trend1==0?XPrice:avg(rsx(open,24),jma(open,24),rsx(jma(open,24),24))
trend2 = trend1>0?avg(d,e,c2,c1):trend1==0?XPrice:avg(rsx(open,48),jma(open,48),rsx(jma(open,48),48))
trend3 = trend1>0?avg(d,e,c2,c1):trend1==0?xprice:avg(rsx(open,96),jma(open,96),rsx(jma(open,96),96))
bc=request.security(syminfo.tickerid,'15',trend)
bc1=request.security(syminfo.tickerid,'15',trend2)
bc2=request.security(syminfo.tickerid,'15',trend3)
bd=request.security(syminfo.tickerid,'30',trend)
bd1=request.security(syminfo.tickerid,'30',trend2)
bd2=request.security(syminfo.tickerid,'30',trend3)
be=request.security(syminfo.tickerid,'60',trend)
be1=request.security(syminfo.tickerid,'60',trend2)
be2=request.security(syminfo.tickerid,'60',trend3)
bf=request.security(syminfo.tickerid,'120',trend)
bf1=request.security(syminfo.tickerid,'120',trend2)
bf2=request.security(syminfo.tickerid,'120',trend3)
bg=request.security(syminfo.tickerid,'240',trend)
bg1=request.security(syminfo.tickerid,'240',trend2)
bg2=request.security(syminfo.tickerid,'240',trend3)
bh=request.security(syminfo.tickerid,'D',trend)
bh1=request.security(syminfo.tickerid,'D',trend2)
bh2=request.security(syminfo.tickerid,'D',trend3)
Trend=((bc-bc1)+(bd-bd1)+(be-be1)+(bf-bf1)+(bg-bg1)+(bh))
Trend11=((bc-bc1)+(bd-bd1)+(be-be1)+(bf-bf1)+(bg-bg1)+(bh1))
Trend33 = max(min(min(min(bc2,bd2),min(be2,bf2)),bg2),bh2)
AverageTrend=sma(Trend1,1000)
StdDev=Multiplier*stdev(Trend1,1000)
TopBand=AverageTrend+StdDev
BotBand=AverageTrend-StdDev
ap=open
n1=10
n2=21
esa1 = jma(ap, n1)
d1 = jma(abs(ap - esa1), n1)
x1 = trend3==Trend33
y1 = trend2==Trend11 
ci = (ap - esa1) / (0.015 * d1)
tci = jma(ci, n2)
wt1=tci
wt2=sma(wt1,4)
fast=jma(open,5)
slow=jma(open,13)
macd=fast-slow
signal=sma(macd,4)
WaveTrend1=wt1-wt2
JMACD1=macd-signal
rsi = (((rsi(open,6))-50)*3)
g1=rsi>Trend1 and WaveTrend1>Trend1 and JMACD1>Trend1
h1=g1?tci*c3a:nz(h[1])
strategy.entry("Long",true,when=x1)
strategy.close("Long",y1)
strategy.entry("Short",false,when=y1)
strategy.close("Short",x1)

مزید