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