Momentum Moving Average Crossover Strategy


تخلیق کی تاریخ: 2024-01-23 14:18:26 آخر میں ترمیم کریں: 2024-01-23 14:18:26
کاپی: 1 کلکس کی تعداد: 537
1
پر توجہ دیں
1617
پیروکار

Momentum Moving Average Crossover Strategy

جائزہ

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

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

اس حکمت عملی میں 2 ای ایم اے اوسط لائنیں استعمال کی گئیں ، جن میں 10 دن کی لائن اور 20 دن کی لائن شامل ہیں۔ ای ایم اے اوسط لائن قیمت کے رجحان کی سمت کی اچھی طرح سے عکاسی کرتی ہے۔ جب قلیل مدتی ای ایم اے لائن نیچے سے اوپر کی طرف سے طویل مدتی ای ایم اے لائن کو عبور کرتی ہے تو ، اس کا مطلب یہ ہے کہ قیمت کی حرکت اوپر سے نیچے کی طرف بڑھتی ہے اور یہ ایک کثیر سگنل ہے۔ جب قلیل مدتی ای ایم اے لائن اوپر سے نیچے کی طرف سے طویل مدتی ای ایم اے لائن کو عبور کرتی ہے تو ، اس کا مطلب یہ ہے کہ قیمت کی حرکت اوپر سے نیچے کی طرف بڑھتی ہے اور یہ ایک خالی سگنل ہے۔

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

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

حکمت عملی کا تجزیہ

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

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

حکمت عملی کے خطرے کا تجزیہ

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

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

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

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

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

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

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

خلاصہ کریں۔

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

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

//@version=2
strategy("PierceMAStrat", overlay=true)

lenMA0 = input(title="Length 0",defval=2)
lenMA1=input(title="Length 1",defval=10)
lenMA2=input(title="Length 2", defval=20)
lenMA3 = input(title = "Length3", defval =50)




emaLen0 = ema(close, lenMA0)
emaLen1 = ema(close, lenMA1)
emaLen2 = ema(close, lenMA2)
emaLen3 = ema(close, lenMA3)

    
ascent = if emaLen1[1] < emaLen1[0]
    true
else
    false
    
descent = if emaLen1[1] > emaLen1[0]
    true
else
    false
    
TimeSinceAscensionStart = if ascent == true
    barssince(descent == true)
else
    0
    

StartUp = if TimeSinceAscensionStart < 1
    true
else
    false

StartDown = if TimeSinceAscensionStart < 1
    false
else
    true


AscentBarCounter = barssince(StartUp == true)

DescentBarCounter = barssince(StartDown == true)

MaxAscent = if AscentBarCounter[1] > AscentBarCounter[0] and AscentBarCounter[1] > 10
    true
else
    false
    
MaxDescent = if DescentBarCounter[1] > DescentBarCounter[0] and DescentBarCounter[1] > 5
    true
else
    false
    
longCond = if crossover(emaLen1, emaLen2) and barssince(MaxDescent == true) > 3
    true
else
    false
shortCond = if crossunder(emaLen1, emaLen2) and barssince(MaxAscent == true) > 3
    true
else
    false


//longCond = (crossover(emaLen1, emaLen2) and (emaLen2 > emaLen3))
//shortCond = crossunder(emaLen1, emaLen2) and (emaLen2 < emaLen3)



if longCond == true
    strategy.entry("LONG", strategy.long)

if shortCond == true
    strategy.entry("SHORT", strategy.short)
    


plotshape(series=MaxAscent, title="MaximaReached", style=shape.triangledown, location=location.abovebar, color=green, text="MaximaReached", size=size.small)
plotshape(series=MaxDescent, title="MinimaReached", style=shape.triangleup, location=location.belowbar, color=red, text="MinimaReached", size=size.small)
//plotshape(series=StartUp, title="StartUp", style=shape.triangleup, location=location.belowbar, color=red, text="StartUp", size=size.tiny)
//plotshape(series=StartDown, title="StartDown", style=shape.triangleup, location=location.belowbar, color=green, text="StartDown", size=size.tiny)

//plotshape(series=(crossover(emaLen1, emaLen3)), title="GBXOVER", style=shape.triangleup, location=location.belowbar, color=green, text="GBXO", size=size.small)
//plotshape(series=(crossover(emaLen2, emaLen3)), title="RBXOVER", style=shape.triangledown, location=location.abovebar, color=orange, text="RBXO", size=size.small)
//plotshape(series=(crossover(emaLen1, emaLen2)), title="GRXOVER", style=shape.triangledown, location=location.abovebar, color=teal, text="GRXO", size=size.small)
//plotshape(series=(crossunder(emaLen1, emaLen2)), title="GRXUNDER", style=shape.triangledown, location=location.abovebar, color=purple, text="GRXU", size=size.small)
//plotshape(series=(crossunder(emaLen1, emaLen3)), title="GBXOVER", style=shape.triangleup, location=location.belowbar, color=yellow, text="GBXU", size=size.small)
//plotshape(series=(crossunder(emaLen2, emaLen3)), title="RBXOVER", style=shape.triangledown, location=location.abovebar, color=yellow, text="RBXU", size=size.small)
    
//plotshape(convergence, color=lime, style=shape.arrowup, text="CROSS")
plot(emaLen1, color=green, transp=0, linewidth=2)
plot(emaLen2, color=red, transp=30, linewidth=2)
plot(emaLen3, color=blue, transp=30, linewidth=2)