اڈاپٹیو زیرو لیگ ایکسپونیشل موونگ ایوریج کوانٹیٹیو ٹریڈنگ اسٹریٹجی


تخلیق کی تاریخ: 2024-02-19 15:38:02 آخر میں ترمیم کریں: 2024-02-19 15:38:02
کاپی: 0 کلکس کی تعداد: 841
1
پر توجہ دیں
1617
پیروکار

اڈاپٹیو زیرو لیگ ایکسپونیشل موونگ ایوریج کوانٹیٹیو ٹریڈنگ اسٹریٹجی

جائزہ

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

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

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

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

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

اسٹریٹجک فوائد

صفر تاخیر سے متعلق خود کار طریقے سے ای ایم اے کی حکمت عملی میں صفر تاخیر فلٹر اور خود کار طریقے سے سائیکل کی اصلاح کا ایک طریقہ شامل ہے جس میں مندرجہ ذیل فوائد ہیں:

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

اسٹریٹجک رسک

صفر تاخیر سے متعلق EMA کی حکمت عملی کے ساتھ بھی کچھ خطرات موجود ہیں ، بنیادی طور پر اس میں ظاہر ہوتا ہے:

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

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

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

صفر تاخیر سے متعلق ای ایم اے کی حکمت عملی کو اپنانے کے لئے وسیع پیمانے پر اصلاحات کی گنجائش موجود ہے ، جس میں اہم نکات شامل ہیں:

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

ان اصلاحات کے ذریعہ ، حکمت عملی کی جیت کی شرح ، منافع کی شرح ، خطرے سے متعلق ایڈجسٹمنٹ کے اشارے وغیرہ کو مزید بہتر بنانے کی امید ہے۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Adaptive Zero Lag EMA v2", shorttitle="AZLEMA", overlay = true)

src = input(title="Source",  defval=close)
Period = input(title="Period",  defval = 20)
adaptive = input(title="Adaptive Method", options=["Off", "Cos IFM", "I-Q IFM", "Average"], defval="Off")
GainLimit = input(title="Gain Limit",  defval = 10)
Threshold = input(title="Threshold", type = float, defval=0.05, step=0.01)
fixedSL = input(title="SL Points", defval=70)
fixedTP = input(title="TP Points", defval=5)
risk = input(title='Risk', defval=0.01, step=0.01)

//##############################################################################
//I-Q IFM
//#############################################################################
range = input(title="Max Period",  defval=60, minval=8, maxval=100)

PI = 3.14159265359
imult = 0.635
qmult = 0.338
inphase = 0.0
quadrature = 0.0
re = 0.0
im = 0.0
deltaIQ = 0.0
instIQ = 0.0
lenIQ = 0.0
V = 0.0

P = src - src[7]
inphase := 1.25*(P[4] - imult*P[2]) + imult*nz(inphase[3])
quadrature := P[2] - qmult*P + qmult*nz(quadrature[2])
re := 0.2*(inphase*inphase[1] + quadrature*quadrature[1]) + 0.8*nz(re[1])
im := 0.2*(inphase*quadrature[1] - inphase[1]*quadrature) + 0.8*nz(im[1])
if (re!= 0.0)
    deltaIQ := atan(im/re)
for i=0 to range
    V := V + deltaIQ[i]
    if (V > 2*PI and instIQ == 0.0)
        instIQ := i
if (instIQ == 0.0)
    instIQ := nz(instIQ[1])
lenIQ := 0.25*instIQ + 0.75*nz(lenIQ[1])

//##############################################################################
//COSINE IFM
//#############################################################################
s2 = 0.0
s3 = 0.0
deltaC = 0.0
instC = 0.0
lenC = 0.0
v1 = 0.0
v2 = 0.0
v4 = 0.0

v1 := src - src[7]
s2 := 0.2*(v1[1] + v1)*(v1[1] + v1) + 0.8*nz(s2[1])
s3 := 0.2*(v1[1] - v1)*(v1[1] - v1) + 0.8*nz(s3[1])
if (s2 != 0)
    v2 := sqrt(s3/s2)
if (s3 != 0)
    deltaC := 2*atan(v2)
for i = 0 to range
    v4 := v4 + deltaC[i]
    if (v4 > 2*PI and instC == 0.0)
        instC := i - 1
if (instC == 0.0)
    instC := instC[1]
lenC := 0.25*instC + 0.75*nz(lenC[1])

if (adaptive == "Cos IFM")
    Period := round(lenC)
if (adaptive == "I-Q IFM")
    Period := round(lenIQ)
if (adaptive == "Average")
    Period := round((lenC + lenIQ)/2)

//##############################################################################
//ZERO LAG EXPONENTIAL MOVING AVERAGE
//##############################################################################
LeastError = 1000000.0
EC = 0.0
Gain = 0.0
EMA = 0.0
Error = 0.0
BestGain = 0.0

alpha =2/(Period + 1)
EMA := alpha*src + (1-alpha)*nz(EMA[1])

for i = -GainLimit to GainLimit
    Gain := i/10
    EC := alpha*(EMA + Gain*(src - nz(EC[1]))) + (1 - alpha)*nz(EC[1])
    Error := src - EC
    if(abs(Error)<LeastError)
        LeastError := abs(Error)
        BestGain := Gain

EC := alpha*(EMA + BestGain*(src - nz(EC[1]))) + (1-alpha)*nz(EC[1])

plot(EC, title="EC", color=orange, linewidth=2)
plot(EMA, title="EMA", color=red, linewidth=2)

buy = crossover(EC,EMA) and 100*LeastError/src > Threshold
sell = crossunder(EC,EMA) and 100*LeastError/src > Threshold
strategy.initial_capital = 50000
if (time>timestamp(2016, 1, 1 , 0, 0))
    //LONG
    balance = strategy.initial_capital + strategy.netprofit
    lots = ((risk * balance)/fixedSL)*1
    strategy.entry("BUY", strategy.long, qty=lots, oca_name="BUY",  when=buy)
    strategy.exit("B.Exit", "BUY", qty_percent = 100, loss=fixedSL, trail_offset=15, trail_points=fixedTP)
    //SHORT
    strategy.entry("SELL", strategy.short, qty=lots, oca_name="SELL", when=sell)
    strategy.exit("S.Exit", "SELL", qty_percent = 100, loss=fixedSL, trail_offset=15, trail_points=fixedTP)