
এই কৌশলটি বাজার প্রবণতা এবং ক্রয়-বিক্রয় পয়েন্টগুলি নির্ধারণের জন্য দ্রুত এবং ধীর চলমান গড়ের ক্রসগুলির উপর ভিত্তি করে। যখন দ্রুত ইএমএটি ধীর ইএমএটি অতিক্রম করে তখন বাজারটি একটি উত্থান প্রবণতা হিসাবে বিচার করা হয় এবং একটি কেনার সংকেত উত্পন্ন করে; যখন দ্রুত ইএমএটি ধীর ইএমএটি অতিক্রম করে তখন বাজারটি একটি পতন প্রবণতা হিসাবে বিচার করা হয় এবং একটি বিক্রয় সংকেত উত্পন্ন করে। কৌশলটি ঝুঁকি পরিচালনার জন্য স্টপ লস এবং স্টপ মূল্যও নির্ধারণ করে।
এই কৌশলটি দ্রুত EMA (৮ দিনের লাইন) এবং ধীর 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)