এই কৌশলটি সিসিআই সূচক, আরএসআই সূচক এবং দুটি চলমান গড়কে একটি যৌগিক ট্রেডিং সিস্টেমে একত্রিত করে। এটি কিছু গোলমাল ফিল্টার করার জন্য এন্ট্রিগুলির জন্য নিশ্চিতকরণ যুক্ত করতে আরএসআই ক্রসওভার ব্যবহার করার সময় প্রচলিত প্রবণতা ক্যাপচার করতে পারে।
কৌশলটি মূলত প্রবণতা দিক নির্ধারণের জন্য সিসিআই সূচক ব্যবহার করে। সিসিআই 100 এর উপরে পাঠ্যগুলি একটি উত্থান বাজারকে নির্দেশ করে, যখন -100 এর নীচে একটি হ্রাস বাজারকে নির্দেশ করে। প্রবণতা দিক নির্ধারণে সহায়তা করার জন্য সিস্টেমটি দুটি চলমান গড় ক্রসওভার ব্যবহার করে। যখন দ্রুত চলমান গড় ধীর চলমান গড়ের উপরে অতিক্রম করে, এটি একটি ক্রয় সংকেত, এবং বিক্রয় সংকেতগুলির জন্য বিপরীত।
এই সিস্টেমটি হ্রাস বা উত্থান প্রবণতা নির্ধারণ করার পরে, প্রবেশের যাচাইকরণ হিসাবে বিভিন্ন প্যারামিটার দৈর্ঘ্যের সাথে দুটি আরএসআইয়ের ক্রসওভার ব্যবহার করে। উদাহরণস্বরূপ, একটি ষাঁড়ের বাজারে, যদি স্বল্পমেয়াদী আরএসআই দীর্ঘমেয়াদী আরএসআইয়ের উপরে অতিক্রম করে তবে এটি চূড়ান্ত ক্রয় সংকেত। এই নকশাটি মূলত প্রবণতার সময় স্বল্পমেয়াদী সংশোধন দ্বারা সৃষ্ট ভুল ব্যবসায়গুলি এড়ানোর জন্য গোলমাল ফিল্টার করে।
কৌশলটি শুধুমাত্র নির্দিষ্ট ট্রেডিং সেশনের সময় অবস্থানগুলি খোলে, রাতারাতি ঝুঁকি এড়ানোর জন্য বন্ধ হওয়ার 15 মিনিট আগে সমস্ত অবস্থানগুলি সক্রিয়ভাবে বন্ধ করে দেয়। অবস্থানগুলি খোলার পরে, টেলিং স্টপগুলি মুনাফা লক করতে ব্যবহৃত হয়।
এই কৌশলটি ঝুঁকি নিয়ন্ত্রণের সময় সংকেত বৈধতা নিশ্চিত করার জন্য প্রবণতা নির্ধারণ এবং সূচক ক্রসওভার বৈধতা ব্যাপকভাবে বিবেচনা করে। প্যারামিটার অপ্টিমাইজেশন এবং যৌক্তিক সামঞ্জস্যের মাধ্যমে কৌশলটির লাভের সুযোগগুলি প্রসারিত করার এবং মিস করা সুযোগগুলি হ্রাস করার আরও সম্ভাবনা রয়েছে। এটি একটি খুব আশাব্যঞ্জক ট্রেডিং ধারণা।
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-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/ // © rwestbrookjr //@version=5 strategy("EMA with RSI Cross Strategy", overlay=true) //EMA fastLen = input(title='Fast EMA Length', defval=9) slowLen = input(title='Slow EMA Length', defval=20) fastEMA = ta.ema(close, fastLen) slowEMA = ta.ema(close, slowLen) fema = plot(fastEMA, title='FastEMA', color=color.new(color.green, 0), linewidth=1, style=plot.style_line) sema = plot(slowEMA, title='SlowEMA', color=color.new(color.red, 0), linewidth=1, style=plot.style_line) fill(fema, sema, color=fastEMA > slowEMA ? color.new(#417505, 50) : color.new(#890101, 50), title='Cloud') // Bull and Bear Alerts //Bull = ta.crossover(fastEMA, slowEMA) Bull = fastEMA > slowEMA //Bear = ta.crossunder(fastEMA, slowEMA) Bear = fastEMA < slowEMA //RSIs rsiLength1Input = input.int(9, minval=1, title="RSI Length", group="RSI Settings") rsiSource1Input = input.source(close, "Source", group="RSI Settings") rsiLength2Input = input.int(20, minval=1, title="RSI Length", group="RSI Settings") rsiSource2Input = input.source(close, "Source", group="RSI Settings") up1 = ta.rma(math.max(ta.change(rsiSource1Input), 0), rsiLength1Input) down1 = ta.rma(-math.min(ta.change(rsiSource1Input), 0), rsiLength1Input) rsi = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1)) up2 = ta.rma(math.max(ta.change(rsiSource2Input), 0), rsiLength2Input) down2 = ta.rma(-math.min(ta.change(rsiSource2Input), 0), rsiLength2Input) rsi2 = down2 == 0 ? 100 : up2 == 0 ? 0 : 100 - (100 / (1 + up2 / down2)) //CCI cciLength = input.int(20, minval=1) src = input(hlc3, title="Source") ma = ta.sma(src, cciLength) cci = (src - ma) / (0.015 * ta.dev(src, cciLength)) //Trail Stop Setup trstp = input.float(title="Trail Loss($)", minval = 0.0, step = 0.01, defval = 0.5) longStop = 0.0, shortStop = 0.0 longStop := if Bull stopValue = close - trstp math.max(stopValue, longStop[1]) else 0.0 shortStop := if Bear stopValue = close + trstp math.min(stopValue, shortStop[1]) else 999999 //Session Setup open_session=input(defval="0930-1545") session = time("1", open_session) validSession=(na(session) ? 0 : 1) //Trade Signals longCondition = Bull and cci > 100 and ta.crossover(rsi,rsi2) and validSession if (longCondition) strategy.entry("Long", strategy.long, 1) //longExit = close > strategy.opentrades.entry_price(0) + 1.5 or close < strategy.opentrades.entry_price(0) - 0.75 longExit = close < longStop or not validSession if (longExit) strategy.close("Long") shortCondition = Bear and cci < 100 and ta.crossunder(rsi,rsi2) and validSession if (shortCondition) strategy.entry("Short", strategy.short, 1) //shortExit = close < strategy.opentrades.entry_price(0) - 1.5 or close > strategy.opentrades.entry_price(0) + 0.75 shortExit = close > shortStop or not validSession if (shortExit) strategy.close("Short")