حرکت پذیر اوسط ربن کی حکمت عملی

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

img

جائزہ

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

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

اس حکمت عملی میں 5 تیز رفتار اوسط (5 ، 8 ، 13 ، 20 اور 30 دن کی لائنیں) اور 4 سست حرکت پذیر اوسط (45 ، 70 ، 105 اور 150 دن کی لائنیں) استعمال ہوتی ہیں۔ تیز رفتار لائنیں اندرونی حرکت پذیر اوسط ربن تشکیل دیتی ہیں اور سست لائنیں بیرونی حرکت پذیر اوسط ربن تشکیل دیتی ہیں۔ جب قیمتیں اندرونی ربن سے اوپر ہوتی ہیں تو خرید کا اشارہ پیدا ہوتا ہے ، اور جب قیمتیں اندرونی ربن سے نیچے ہوتی ہیں تو فروخت کا اشارہ پیدا ہوتا ہے۔ جھوٹے وقفوں کو فلٹر کرنے کے ل it ، قیمتوں کو مسلسل 3 موم بتیوں کے لئے اندرونی ربن کو توڑنے کی ضرورت ہوتی ہے ، اور زیادہ تر تیز رفتار اوسط بھی تجارتی سگنل پیدا کرنے سے پہلے ہم وقت ساز طور پر توڑ دیتے ہیں۔

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

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

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

  1. کثیر متحرک اوسط ڈیزائن ٹرینڈ کی سمت کو درست طریقے سے طے کرسکتا ہے۔ تیز اور سست لائنوں کے ساتھ اندرونی اور بیرونی متحرک اوسط ربن کا امتزاج درمیانی سے طویل مدتی رجحانات کی نشاندہی کرنے میں اچھی طرح کام کرتا ہے۔

  2. مسلسل وقفے کا طریقہ کار غلط وقفوں کو مؤثر طریقے سے فلٹر کرسکتا ہے۔ دریں اثنا ، زیادہ تر تیز رفتار اوسط کو توڑنے کی ضرورت ہوتی ہے تاکہ یہ یقینی بنایا جاسکے کہ رجحان بدل رہا ہے۔

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

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

خطرے کا تجزیہ

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

  1. ناکام بریک آؤٹ کا خطرہ۔ جب جھوٹے بریک آؤٹ ہوتے ہیں تو ، حکمت عملی نقصانات سے مکمل طور پر بچ نہیں سکتی ہے۔

  2. جب مارکیٹ طویل عرصے تک مختلف ہوتی ہے تو ، اسٹاپ نقصان کے مقامات کو کثرت سے مارا جاسکتا ہے ، جس سے بڑے نقصانات ہوتے ہیں۔

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

اس کے مطابق حل یہ ہیں:

  1. مناسب طریقے سے اسٹاپ نقصان کے نکات کو بڑھانا تاکہ قیمتوں کو منتقل ہونے کے لئے کافی جگہ مل سکے۔ یا اسٹاپ نقصان کی لائن کو قیمتوں کی پیروی کرنے کی اجازت دینے کے لئے ٹریلنگ اسٹاپ نقصان کا طریقہ اپنائیں۔

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

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

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

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

  1. بہترین سائیکل نمبروں کا انتخاب کرنے کے لئے اوسط پیرامیٹرز کو بہتر بنائیں۔ بہترین پیرامیٹر مجموعہ تلاش کرنے کے لئے مختلف سائیکل نمبروں کے ساتھ اوسط چلتے ہوئے بیک ٹیسٹ چلائیں۔

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

  3. موافقت پذیر چلتی اوسط کو اپنانا۔ چلتی اوسط پیرامیٹرز کو متحرک طور پر بدلتے ہوئے مارکیٹ کے حالات اور اتار چڑھاؤ کے مطابق بہتر بنائیں ، تاکہ وہ موجودہ مارکیٹ کی حالت میں بہتر طور پر فٹ ہوں۔

  4. رجحان کے امکانات کا فیصلہ کرنے کے لئے مشین لرننگ ماڈلز کو یکجا کریں۔ کامیاب بریک آؤٹ کے امکانات کا اندازہ کرنے کے لئے امکانات کے ماڈل قائم کریں ، فیصلہ سازی کے نظام کو مثالی انٹری ٹائمنگ کا فیصلہ کرنے میں مدد کریں۔

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

خلاصہ

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


//@version=4
strategy(title="Moving Average Ribbon", shorttitle="MA Ribbon", overlay=true)
src = input(close, type=input.source, title="Source")
matype = input(title="Input one in lowercase: sma, ema, wma, trima, zlema, dema, tema, or hma", type=input.string, defval="trima")
// possible values: sma, ema, wma, trima, zlema, dema, tema, hma (hull ma)



trima(_src, _len) =>
    sma(sma(_src, _len), _len)
hma(_src, _len) =>
    wma(2 * wma(_src, _len / 2) - wma(_src, _len), round(sqrt(_len)))
dema(_src, _len) =>
    2 * ema(_src, _len) - ema(ema(_src, _len), _len)
tema(_src, _len) =>
    3 * ema(_src, _len) - 3 * ema(ema(_src, _len), _len) + 
       ema(ema(ema(_src, _len), _len), _len)
zlema(_src, _len) =>
    ema(_src, _len) + ema(_src, _len) - ema(ema(_src, _len), _len)

ma(_src, _len) =>
    hma__1 = hma(_src, _len)
    ema_1 = ema(_src, _len)
    sma_1 = sma(_src, _len)
    wma_1 = wma(_src, _len)
    trima__1 = trima(_src, _len)
    zlema__1 = zlema(_src, _len)
    dema__1 = dema(_src, _len)
    tema__1 = tema(_src, _len)
    matype == "hma" ? hma__1 : matype == "ema" ? ema_1 : matype == "sma" ? sma_1 : 
       matype == "wma" ? wma_1 : matype == "trima" ? trima__1 : 
       matype == "zlema" ? zlema__1 : matype == "dema" ? dema__1 : tema__1

ma05 = ma(src, 5)
ma08 = ma(src, 8)
ma13 = ma(src, 13)
ma20 = ma(src, 20)
ma30 = ma(src, 30)
ma45 = ma(src, 45)
ma70 = ma(src, 70)
ma105 = ma(src, 105)
ma150 = ma(src, 150)
ma200 = ma(src, 200)




maColor(ma, maRef) =>
    if change(ma) <= 0 and ma05 < maRef
        color.new(color.red, 20)
    else
        if change(ma) >= 0 and ma05 > maRef
            color.new(color.navy, 20)
        else
            if change(ma) < 0 and ma05 > maRef
                color.new(color.red, 20)
            else
                if change(ma) >= 0 and ma05 < maRef
                    color.new(color.navy, 20)
                else
                    color.gray


aboveConfirmed(x,maRef)=>
    above=true
    for i=1 to x
        if close[i]<maRef[i] and not (close[i]>ma200[i]*1.01) and not (ma05[i]>ma105[i]*1.015)
            above:=false
    above


aboveMost(x,len)=>
    above=0
    boolean=false
    if close[len]>ma05[len]
        above:=above+1
    if close[len]>ma08[len]
        above:=above+1
    if close[len]>ma13[len]
        above:=above+1
    if close[len]>ma20[len]
        above:=above+1
    if close[len]>ma30[len]
        above:=above+1
    if close[len]>ma45[len]
        above:=above+1
    if close[len]>ma70[len]
        above:=above+1
    if close[len]>ma105[len]
        above:=above+1
    if close[len]>ma150[len]
        above:=above+1
    if close[len]>ma200[len]
        above:=above+1
    if(above>=x)
        boolean:=true
    boolean
    
belowMost(x,len)=>
    above=0
    boolean=false
    if close[len]<ma05[len]
        above:=above+1
    if close[len]<ma08[len]
        above:=above+1
    if close[len]<ma13[len]
        above:=above+1
    if close[len]<ma20[len]
        above:=above+1
    if close[len]<ma30[len]
        above:=above+1
    if close[len]<ma45[len]
        above:=above+1
    if close[len]<ma70[len]
        above:=above+1
    if close[len]<ma105[len]
        above:=above+1
    if close[len]<ma150[len]
        above:=above+1
    if close[len]<ma200[len]
        above:=above+1
    if(above>=x)
        boolean:=true
    boolean
        
        
belowConfirmed(x,maRef)=>
    below=true
    for i=1 to x
        if close[i]>maRef[i] and not (close[i]<maRef[i]*0.99) and not (ma05[i]<ma105[i]*0.985)
            below:=false
    below
            
            
//plotshape(aboveConfirmed(5,ma150),color=color.navy,location=location.abovebar,style=shape.triangleup,size=size.large,title="above",text="above")
            
plot(ma05, color=maColor(ma05, ma150), style=plot.style_line, title="MMA05", linewidth=2)
plot(ma08, color=maColor(ma08, ma150), style=plot.style_line, title="MMA08", linewidth=1)
plot(ma13, color=maColor(ma13, ma150), style=plot.style_line, title="MMA13", linewidth=1)
plot(ma20, color=maColor(ma20, ma150), style=plot.style_line, title="MMA20", linewidth=1)
plot(ma30, color=maColor(ma30, ma150), style=plot.style_line, title="MMA30", linewidth=1)
plot(ma45, color=maColor(ma45, ma200), style=plot.style_line, title="MMA45", linewidth=1)
plot(ma70, color=maColor(ma70, ma200), style=plot.style_line, title="MMA70", linewidth=2)
plot(ma105, color=maColor(ma105, ma200), style=plot.style_line, title="MMA105", linewidth=2)
plot(ma150, color=maColor(ma150, ma200), style=plot.style_line, title="MMA150", linewidth=3)
plot(ma200, color=maColor(ma200, ma200), style=plot.style_line, title="MM200", linewidth=3)


closeLong=belowMost(6,1) and belowMost(6,2) and belowMost(6,3)
closeShort=aboveMost(6,1) and aboveMost(6,2) and aboveMost(6,3)

isAbove=aboveConfirmed(5,ma200)
strategy.entry("short", false, when=belowConfirmed(3,ma200) and belowMost(8,1) and belowMost(8,2) and belowMost(8,3))
strategy.entry("long", true, when=aboveConfirmed(3,ma200) and aboveMost(8,1) and aboveMost(8,2) and aboveMost(8,3))




strategy.close("long",when=closeLong)
strategy.close("short",when=closeShort)



مزید