حکمت عملی کے بعد عام رجحان


تخلیق کی تاریخ: 2024-01-12 14:59:18 آخر میں ترمیم کریں: 2024-01-12 14:59:18
کاپی: 0 کلکس کی تعداد: 352
1
پر توجہ دیں
1141
پیروکار

حکمت عملی کے بعد عام رجحان

جائزہ

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

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

اس حکمت عملی کا بنیادی اشارے دو EMA میڈین لائنز ہیں ، 30 اور 60 ادوار۔ کوڈ میں اپنی مرضی کے مطابق افعال کے ذریعہ دو EMA میڈین لائنز کا حساب لگایا گیا ہے:

emaLen1 = emaFuncOne(close, lenMA1)  
emaLen2 = emaFuncTwo(close, lenMA2)

حکمت عملی کے لئے ٹریڈنگ سگنل دو ای ایم اے کی اوسط لائنوں کے کراس سے آتے ہیں:

currentState = if emaLen2 > emaLen1  
    0
else
    1

previousState = if emaLastLen2 > emaLastLen1
    0  
else
    1

convergence = if currentState != previousState
    1
else 
    0

جب قلیل مدتی ای ایم اے پر طویل مدتی ای ایم اے پہنا جاتا ہے تو ، موجودہ ریاست پچھلی ریاست کے برابر نہیں ہوتی ہے ، ایک کراس سگنل ظاہر ہوتا ہے۔ اس وقت زیادہ کریں۔ جب قلیل مدتی ای ایم اے کے نیچے طویل مدتی ای ایم اے سے گزرتا ہے تو ، موجودہ ریاست پچھلی ریاست کے برابر نہیں ہے ، ایک کراس سگنل ظاہر ہوتا ہے۔ اس وقت خالی ہے۔

طاقت کا تجزیہ

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

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

خطرے کا تجزیہ

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

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

ای ایم اے کی مدت کو ایڈجسٹ کرکے یا فلٹرنگ کے حالات کو شامل کرکے بہتر بنایا جاسکتا ہے۔

اصلاح کی سمت

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

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

خلاصہ کریں۔

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

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

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

lenMA1=input(title="Length 1", defval=30)
lenMA2=input(title="Length 2",  defval=60)

x = 0

checkLines(current, last) =>

    if current > last
        x = 1
    else
        x = 0
    x
    

//plot ema based on len1
emaFuncOne(src, time_period) =>

    alpha = 2 / (time_period + 1)
    // we have defined the alpha function above
    ema = 0.0
    // this is the initial declaration of ema, since we dont know the first ema we will declare it to 0.0 [as a decimal]
    ema := alpha * src + (1 - alpha) * nz(ema[1])
    // this returns the computed ema at the current time
    // notice the use of : (colon) symbol before =, it symbolises, that we are changing the value of ema,
    // since the ema was previously declared to 0
    // this is called mutable variale declaration in pine script
    ema
    // return ema from the function

emaLen1 = emaFuncOne(close, lenMA1)

    
plot(emaLen1, color=green, transp=0, linewidth=2)
// now we plot the _10_period_ema

//plot ema based on len2
emaFuncTwo(src, time_period) =>

    alpha = 2 / (time_period + 1)
    // we have defined the alpha function above
    ema = 0.0
    // this is the initial declaration of ema, since we dont know the first ema we will declare it to 0.0 [as a decimal]
    ema := alpha * src + (1 - alpha) * nz(ema[1])
    // this returns the computed ema at the current time
    // notice the use of : (colon) symbol before =, it symbolises, that we are changing the value of ema,
    // since the ema was previously declared to 0
    // this is called mutable variale declaration in pine script
    ema
    // return ema from the function

//plot ema based on len2
emaFuncOneLast(src, time_period) =>

    alpha = 2 / (time_period + 1)
    // we have defined the alpha function above
    ema = 0.0
    // this is the initial declaration of ema, since we dont know the first ema we will declare it to 0.0 [as a decimal]
    ema := alpha * src + (1 - alpha) * nz(ema[0])
    // this returns the computed ema at the current time
    // notice the use of : (colon) symbol before =, it symbolises, that we are changing the value of ema,
    // since the ema was previously declared to 0
    // this is called mutable variale declaration in pine script
    ema
    // return ema from the function

//plot ema based on len2
emaFuncTwoLast(src, time_period) =>

    alpha = 2 / (time_period + 1)
    // we have defined the alpha function above
    ema = 0.0
    // this is the initial declaration of ema, since we dont know the first ema we will declare it to 0.0 [as a decimal]
    ema := alpha * src + (1 - alpha) * nz(ema[0])
    // this returns the computed ema at the current time
    // notice the use of : (colon) symbol before =, it symbolises, that we are changing the value of ema,
    // since the ema was previously declared to 0
    // this is called mutable variale declaration in pine script
    ema
    // return ema from the function



emaLastLen1 = emaFuncOneLast(close, lenMA1)
emaLastLen2 = emaFuncTwoLast(close, lenMA2)
emaLen2 = emaFuncTwo(close, lenMA2)

    
plot(emaLen2, color=red, transp=30, linewidth=2)
// now we plot the _10_period_ema

//now we compare the two and when green crosses red we buy/sell (line1 vs line2)

previousState = if emaLastLen2 > emaLastLen1
    0
else
    1

currentState = if emaLen2 > emaLen1
    0
else
    1

convergence = if currentState != previousState
    1
else
    0

    
lineCheck = if convergence == 1 
    checkLines(currentState, previousState)
    
if lineCheck == 1
    strategy.entry("Long", strategy.long)
else
    strategy.entry("Short", strategy.short)