ڈبل EMA موونگ ایوریج ٹریکنگ اسٹریٹیجی


تخلیق کی تاریخ: 2024-02-02 17:11:29 آخر میں ترمیم کریں: 2024-02-02 17:11:29
کاپی: 0 کلکس کی تعداد: 575
1
پر توجہ دیں
1617
پیروکار

ڈبل EMA موونگ ایوریج ٹریکنگ اسٹریٹیجی

جائزہ

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

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

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

اسٹریٹجی کے ساتھ ، آپ کو تجارت کرنے کی ضرورت نہیں ہے۔ اسٹریٹجی کے ساتھ ، آپ کو تجارت کرنے کی ضرورت نہیں ہے۔ اسٹریٹجی کے ساتھ ، آپ کو تجارت کرنے کی ضرورت نہیں ہے۔ اسٹریٹجی کے ساتھ ، آپ کو تجارت کرنے کی ضرورت نہیں ہے۔ اسٹریٹجی کے ساتھ ، آپ کو تجارت کرنے کی ضرورت نہیں ہے۔ اسٹریٹجی کے ساتھ ، آپ کو تجارت کرنے کی ضرورت نہیں ہے۔

طاقت کا تجزیہ

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

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

خطرے کا تجزیہ

ڈبل ای ایم اے اوسط لائن ٹریکنگ حکمت عملی کا سب سے بڑا خطرہ یہ ہے کہ زلزلے کے حالات میں متعدد چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی چھوٹی

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

اصلاح کی سمت

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

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

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

  3. نقصان کو روکنے کی حکمت عملی کو بہتر بنانا ، جس میں اے ٹی آر جیسے اشارے شامل ہیں ، نقصان کو روکنے کے لئے متحرک ٹریکنگ کو ممکن بناتا ہے۔

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

خلاصہ کریں۔

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TradersPostInc

//@version=5
strategy('TradersPost Example MOMO Strategy', overlay=true, default_qty_value=100, initial_capital=100000, default_qty_type=strategy.percent_of_equity, pyramiding=0)

startTime = input(defval = timestamp('01 Jan 2021 00:00 +0000'), title = 'Start Time', group = 'Date Range')
endTime = input(defval = timestamp('31 Dec 2023 23:59 +0000'), title = 'End Time', group = 'Date Range')
timeCondition = true
timeConditionEnd = timeCondition[1] and not timeCondition

fastEmaLength = input.int(defval = 8, title = 'Fast EMA Length')
slowEmaLength = input.int(defval = 21, title = 'Slow EMA Length')
sides = input.string(defval = 'Both', title = 'Sides', options = ['Long', 'Short', 'Both', 'None'])

fastEma = ta.ema(close, fastEmaLength)
slowEma = ta.ema(close, slowEmaLength)

isUptrend = fastEma >= slowEma
isDowntrend = fastEma <= slowEma
trendChanging = ta.cross(fastEma, slowEma)

ema105 = request.security(syminfo.tickerid, '30', ta.ema(close, 105)[1], barmerge.gaps_off, barmerge.lookahead_on)
ema205 = request.security(syminfo.tickerid, '30', ta.ema(close, 20)[1], barmerge.gaps_off, barmerge.lookahead_on)
plot(ema105, linewidth=4, color=color.new(color.purple, 0), editable=true)
plot(ema205, linewidth=2, color=color.new(color.purple, 0), editable=true)

aa = plot(fastEma, linewidth=3, color=color.new(color.green, 0), editable=true)
bb = plot(slowEma, linewidth=3, color=color.new(color.red, 0), editable=true)
fill(aa, bb, color=isUptrend ? color.green : color.red, transp=90)

tradersPostBuy = trendChanging and isUptrend and timeCondition
tradersPostSell = trendChanging and isDowntrend and timeCondition

pips = syminfo.pointvalue / syminfo.mintick

percentOrPipsInput = input.string('Percent', title='Percent or Pips', options=['Percent', 'Pips'])

stopLossLongInput = input.float(defval=0, step=0.01, title='Stop Loss Long', minval=0)
stopLossShortInput = input.float(defval=0, step=0.01, title='Stop Loss Short', minval=0)

takeProfitLongInput = input.float(defval=0, step=0.01, title='Target Profit Long', minval=0)
takeProfitShortInput = input.float(defval=0, step=0.01, title='Target Profit Short', minval=0)

stopLossPriceLong = ta.valuewhen(tradersPostBuy, close, 0) * (stopLossLongInput / 100) * pips
stopLossPriceShort = ta.valuewhen(tradersPostSell, close, 0) * (stopLossShortInput / 100) * pips

takeProfitPriceLong = ta.valuewhen(tradersPostBuy, close, 0) * (takeProfitLongInput / 100) * pips
takeProfitPriceShort = ta.valuewhen(tradersPostSell, close, 0) * (takeProfitShortInput / 100) * pips

takeProfitALong = takeProfitLongInput > 0 ? takeProfitLongInput : na
takeProfitBLong = takeProfitPriceLong > 0 ? takeProfitPriceLong : na

takeProfitAShort = takeProfitShortInput > 0 ? takeProfitShortInput : na
takeProfitBShort = takeProfitPriceShort > 0 ? takeProfitPriceShort : na

stopLossALong = stopLossLongInput > 0 ? stopLossLongInput : na
stopLossBLong = stopLossPriceLong > 0 ? stopLossPriceLong : na

stopLossAShort = stopLossShortInput > 0 ? stopLossShortInput : na
stopLossBShort = stopLossPriceShort > 0 ? stopLossPriceShort : na

takeProfitLong = percentOrPipsInput == 'Pips' ? takeProfitALong : takeProfitBLong
stopLossLong = percentOrPipsInput == 'Pips' ? stopLossALong : stopLossBLong
takeProfitShort = percentOrPipsInput == 'Pips' ? takeProfitAShort : takeProfitBShort
stopLossShort = percentOrPipsInput == 'Pips' ? stopLossAShort : stopLossBShort

buyAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "buy", "price": ' + str.tostring(close) + '}'
sellAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "sell", "price": ' + str.tostring(close) + '}'

exitLongAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "exit", "price": ' + str.tostring(close) + '}'
exitShortAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "exit", "price": ' + str.tostring(close) + '}'

if (sides != "None")
    if tradersPostBuy
        strategy.entry('Long', strategy.long, when = sides != 'Short', alert_message = buyAlertMessage)
        strategy.close('Short', when = sides == "Short" and timeCondition, alert_message = exitShortAlertMessage)

    if tradersPostSell
        strategy.entry('Short', strategy.short, when = sides != 'Long', alert_message = sellAlertMessage)
        strategy.close('Long', when = sides == 'Long', alert_message = exitLongAlertMessage)

exitAlertMessage = '{"ticker": "' + syminfo.ticker + '", "action": "exit"}'

strategy.exit('Exit Long', from_entry = "Long", profit = takeProfitLong, loss = stopLossLong, alert_message = exitAlertMessage)
strategy.exit('Exit Short', from_entry = "Short", profit = takeProfitShort, loss = stopLossShort, alert_message = exitAlertMessage)

strategy.close_all(when = timeConditionEnd)