دوہری حرکت پذیر اوسط کراس اوور ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-29 15:11:58
ٹیگز:

img

جائزہ

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

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

اس حکمت عملی کا بنیادی منطق 3 ٹائم فریم (180 منٹ ، 60 منٹ ، 120 منٹ) میں 2 حرکت پذیر اوسط (10 دن اور 200 دن) کو ٹریک کرنا ہے۔ جب تیز رفتار حرکت پذیر اوسط سست رفتار حرکت پذیر اوسط سے اوپر عبور کرتا ہے تو ، ایک سنہری کراس اوور تیار ہوتا ہے ، جس سے اشارہ ہوتا ہے کہ آلہ ایک اپ ٹرینڈ میں ہے۔ جب تیز رفتار حرکت پذیر اوسط سست رفتار سے نیچے عبور کرتا ہے تو ، موت کا کراس اوور تیار ہوتا ہے ، جو نیچے کی طرف اشارہ کرتا ہے۔

سب سے پہلے ، 10 دن اور 200 دن کی حرکت پذیر اوسط 180 منٹ اور 60 منٹ کے ٹائم فریم کے لئے الگ الگ حساب لگایا جاتا ہے۔ جب 180 منٹ کے ٹائم فریم پر 10 دن کا ایم اے 200 دن کے ایم اے سے اوپر عبور کرتا ہے تو ، ایک سنہری کراس اوور سگنل تیار ہوتا ہے۔ جب یہ نیچے عبور کرتا ہے تو ، ایک موت کراس اوور سگنل تیار ہوتا ہے۔ اس سے فاسٹ سائیکل ٹریڈنگ سگنل ملتے ہیں۔

اس کے بعد ، حکمت عملی میں 120 منٹ کے ٹائم فریم پر 200 دن کی ایم اے کو کنٹرولنگ چلتی اوسط کے طور پر متعارف کرایا گیا ہے۔ صرف جب 180/60 منٹ کے سائیکلوں پر کراس اوورز ہوتے ہیں تو ، یہ چیک کرکے کہ آیا 60 منٹ کی 200 دن کی ایم اے 120 منٹ کی 200 دن کی ایم اے سے اوپر یا نیچے ہے ، فیصلہ کیا جائے گا کہ غلط سگنل کو فلٹر کرنے کے لئے تجارت کی جائے۔

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

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

فوائد

  • ملٹی ٹائم فریم کی توثیق کے ذریعے بہتر درستگی۔ سنگل ٹائم فریم سگنلز کے مقابلے میں ، 180/60/120 منٹ سے ایم اے کا استعمال کرتے ہوئے غلط سگنلز کو نمایاں طور پر کم کرتا ہے اور تجارتی سگنل کے معیار کو بہتر بناتا ہے۔

  • معقول آپریشن کی تعدد۔ اعلی تعدد کی حکمت عملیوں کے برعکس ، یہ حکمت عملی کم کثرت سے تجارت کرتی ہے ، جس سے مارکیٹ کی مسلسل نگرانی کی ضرورت سے گریز ہوتا ہے۔ دستی تجارت کے لئے زیادہ موزوں ہے۔

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

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

خطرات

  • تاخیر کی نشاندہی اور سست ردعمل۔ بنیادی چلتی اوسط ڈیزائن کی طرف سے تاخیر کا شکار ہیں اور اکثر تیزی سے رجحان کی تبدیلیوں کو پکڑنے میں ناکام رہتے ہیں۔

  • جب مارکیٹ کی حد ہوتی ہے تو ، ایم اے تعلقات بہت کثرت سے عبور کرسکتے ہیں ، جس سے زیادہ اندراجات اور اسٹاپ نقصان کا باعث بنتا ہے ، لاگت اور نقصان کے خطرات میں اضافہ ہوتا ہے۔

  • پیرامیٹر کی اصلاح سے زیادہ فٹ ہونے کا خطرہ۔ الفا بنیادی طور پر محدود ڈیٹا سیٹ پر مبنی پیرامیٹر ٹوننگ سے آتا ہے۔ اس سے زیادہ امکان ہے کہ زیادہ سے زیادہ اصلاح اور زیادہ فٹ ہونے کے مسائل پیدا ہوں۔

حل:

  • تیزی سے رد عمل کے لئے ایم اے کے اوقات کو کم کریں
  • مارکیٹ کے دوران زیادہ سے زیادہ اندراجات سے بچنے کے لئے فلٹرز شامل کریں
  • مختلف مصنوعات اور وقت کی حدوں میں ٹیسٹ استحکام

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

مزید اصلاحات کے لئے ابھی بھی گنجائش ہے:

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

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

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

  • فلٹرنگ منطق کو بہتر بنانے کے لئے انکولی چلتی اوسط متعارف کروانا۔ مارکیٹ کی غیر یقینی صورتحال کے دوران اندراجات کو کم کرنے کے لئے متحرک طور پر ایم اے کی مدت کو ایڈجسٹ کریں۔

نتیجہ

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "ALGO 3-1-2", title="ALGO 3h, 1h, 2h", overlay=true)

bool startLONGBOTandDEAL = false
bool stopLONGBOTandDEAL = false
bool openLONG = false
bool closeLONG = false
bool startSHORTBOTandDEAL = false
bool stopSHORTBOTandDEAL = false
bool openSHORT = false
bool closeSHORT = false

MA1Period = ema(close, 10)
MA2Period = ema(close, 200)
MA3Period = ema(close, 200)

MA1 = security(syminfo.tickerid, "180", MA1Period)
MA2 = security(syminfo.tickerid, "60", MA2Period)
MA3 = security(syminfo.tickerid, "120", MA3Period)

MA12Crossover = crossover(MA1, MA2)
MA12Crossunder = crossunder(MA1, MA2)
MA23Crossover = crossover(MA2, MA3)
MA23Crossunder = crossunder(MA2, MA3)

if MA23Crossover
    startLONGBOTandDEAL := true //stop shortBOT and DEAL code in the TV alert as well, probably stop first w/ a delay on startlong
    lblBull = label.new(bar_index, na, ' BULL Time Open LONG', color=color.blue, textcolor=color.black, style=label.style_label_up, size=size.small)
    label.set_y(lblBull, MA2)  
    strategy.close("go Short")
    strategy.entry("go Long", strategy.long, comment="go Long")
if MA23Crossunder
    //not sure if i should set alert for stop and start each bot, or just put start appropriate bot and stop its opposite in the same alert.
    startSHORTBOTandDEAL := true
    lblBull = label.new(bar_index, na, ' BEAR Time - Open SHORT', color=color.orange, textcolor=color.black, style=label.style_label_down, size=size.small)
    label.set_y(lblBull, MA2)
    strategy.close("go Long")
    strategy.entry("go Short", strategy.short, comment="go Short")
if MA12Crossover
    if MA2 >= MA3
        openLONG := true
        lup1 = label.new(bar_index, na, ' OPEN LONG ', color=color.green, textcolor=color.white, style=label.style_label_up, size=size.small, yloc=yloc.belowbar)
        strategy.entry("go Long", strategy.long, comment="go Long")
    if MA2 <= MA3
        closeSHORT := true
        lup1 = label.new(bar_index, na, ' CLOSE SHORT ', color=color.gray, textcolor=color.black, style=label.style_label_up, size=size.small, yloc=yloc.belowbar)
        strategy.close("go Short")
    
if MA12Crossunder
    if MA2 >= MA3
        closeLONG := true
        lun1 = label.new(bar_index, na, ' CLOSE LONG ', color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small, yloc=yloc.abovebar)
        strategy.close("go Long")
    if MA2 <= MA3
        openSHORT := true
        lun1 = label.new(bar_index, na, ' OPEN SHORT ', color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small, yloc=yloc.abovebar)
        strategy.entry("go Short", strategy.short, comment="go Short")


plot(MA1, color=color.green, linewidth=2, title="MA1")
plot(MA2, color=color.yellow, linewidth=3, title="MA2")
plot(MA3, color=color.red, linewidth=4, title="MA3")


alertcondition(startLONGBOTandDEAL, title="Start LONG BOT and DEAL", message="Start Long Bot and Deal")
alertcondition(stopLONGBOTandDEAL, title="Stop LONG BOT and DEAL", message="Stop Long Bot and Deal")
alertcondition(openLONG, title="Open LONG DEAL", message="Open Long Deal")
alertcondition(closeLONG, title="Close LONG DEAL", message="Close Long Deal")
alertcondition(stopSHORTBOTandDEAL, title="Stop SHORT BOT and DEAL", message="Stop Short Bot and Deal")
alertcondition(openSHORT, title="Open SHORT DEAL", message="Open Short Deal")
alertcondition(closeSHORT, title="Close SHORT DEAL", message="Close Short Deal")

مزید