رفتار منتقل اوسط کراس اوور ٹریڈنگ کی حکمت عملی

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

img

جائزہ

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

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

یہ حکمت عملی مارکیٹ کے رجحان کا تعین کرنے کے لئے تیز EMA (8 دن) اور سست EMA (21 دن) کے درمیان کراس اوور کا استعمال کرتی ہے۔ مخصوص منطق یہ ہے:

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

یہ حکمت عملی مارکیٹ کی سمت اور الٹ پوائنٹس کو مؤثر طریقے سے پکڑنے کے لئے رفتار کے اشارے اور رجحان تجزیہ کو جوڑتی ہے۔ چلتی اوسط کے ساتھ ساتھ تیز اور سست ای ایم اے کراس اوور کچھ شور مچانے والے تجارتی سگنل کو فلٹر کرسکتا ہے۔

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

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

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

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

خطرے کا تجزیہ

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

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

ان خطرات سے نمٹنے کے لیے کچھ اصلاحات کی جا سکتی ہیں:

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

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

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

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

یہ اقدامات حکمت عملی کے استحکام ، موافقت اور منافع میں بہتری لاسکتے ہیں۔

نتیجہ

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
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)

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)

مزید