এই কৌশলটি সংশোধিত আপেক্ষিক শক্তি সূচক (সংশোধিত আরএসআই) এর উপর ভিত্তি করে বাজারের প্রবণতা ক্যাপচার করে। কৌশলটির মূল ধারণাটি হ'ল পরিবর্তিত আরএসআই সূচকের ক্রসওভার সংকেত এবং হিস্টোগ্রাম সংকেতগুলি ব্যবহার করে বাজারের প্রবণতা নির্ধারণ করা এবং প্রবণতা দিক অনুসারে বাণিজ্য করা।
এই কৌশলটি প্রবণতা অনুসরণ করার দৃষ্টিকোণ থেকে একটি ট্রেডিং সিস্টেম তৈরির জন্য সংশোধিত আরএসআই সূচকের বৈশিষ্ট্যগুলি ব্যবহার করে। সংশোধিত আরএসআই সূচকটি traditionalতিহ্যবাহী আরএসআই সূচকের কিছু ত্রুটিগুলি কাটিয়ে উঠতে পারে এবং তুলনামূলকভাবে শক্তিশালী প্রবণতা ক্যাপচার করার ক্ষমতা রাখে। তবে, একক সূচকের উপর ভিত্তি করে কৌশলগুলির প্রায়শই সীমাবদ্ধতা থাকে এবং অন্যান্য প্রযুক্তিগত উপায়ে সংমিশ্রণে উন্নত করা প্রয়োজন। কৌশল পরামিতিগুলি অনুকূলিতকরণ, সংকেত উত্স সমৃদ্ধকরণ, ঝুঁকি নিয়ন্ত্রণ মডিউল যুক্ত করা এবং অন্যান্য পদ্ধতির মাধ্যমে এই কৌশলটির স্থায়িত্ব এবং লাভজনকতা আরও উন্নত করা যেতে পারে।
/*backtest start: 2023-03-23 00:00:00 end: 2024-03-28 00:00:00 period: 1d basePeriod: 1h 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/ // © YogirajDange //@version=5 // Verical lines // // Define the times // t1 = timestamp(year, month, dayofmonth, 09, 15) // 9:15 // t2 = timestamp(year, month, dayofmonth, 11, 15) // 11:15 // t3 = timestamp(year, month, dayofmonth, 13, 15) // 1:15 // t4 = timestamp(year, month, dayofmonth, 15, 25) // 3:25 // // Check if the current bar is on the current day // is_today = (year(time) == year(timenow)) and (month(time) == month(timenow)) and (dayofmonth(time) == dayofmonth(timenow)) // // Draw a vertical line at each time // if is_today and (time == t1 or time == t2 or time == t3 or time == t4) // line.new(x1 = bar_index, y1 = low, x2 = bar_index, y2 = high, extend = extend.both, color=color.red, width = 1) strategy('Modified RSI') col_grow_above = input(#02ac11, "Above Grow", group="Histogram", inline="Above") col_fall_above = input(#6ee47d, "Fall", group="Histogram", inline="Above") col_grow_below = input(#e5939b, "Below Grow", group="Histogram", inline="Below") col_fall_below = input(#dd0000, "Fall", group="Histogram", inline="Below") EMA_length = input.int(13, 'Price_EMA', minval=1) RSI_length = input.int(14, 'RSI_Period', minval=1) Avg_length = input.int(5, 'RSI_Avg_EMA', minval=1) fastMA = ta.ema(close, EMA_length) modrsi = ta.rsi(fastMA, RSI_length) RSIAVG = ta.ema(modrsi, Avg_length) plot(modrsi, color=color.rgb(38, 0, 255), linewidth=2) plot(RSIAVG, color=color.rgb(247, 0, 0)) rsiUpperBand = hline(60, 'RSI Upper Band', color=#099b0e) //hline(50, "RSI Middle Band", color=color.new(#787B86, 50)) rsiLowerBand = hline(40, 'RSI Lower Band', color=#e90101) RSI_hist = modrsi - RSIAVG //plot(RSI_hist,"RSI_Histogram", color = #c201e9, style = plot.style_columns,linewidth= 5) plot(RSI_hist, title="RSI_Histogram", style=plot.style_columns, color=(RSI_hist>=0 ? (RSI_hist[1] < RSI_hist ? col_grow_above : col_fall_above) : (RSI_hist[1] < RSI_hist ? col_grow_below : col_fall_below))) /////// Moving Averages 20 50 EMA fast_ma = input.int(20, minval=2, title="Fast_EMA") slow_ma = input.int(50, minval=2, title="Slow_EMA") src = input.source(close, title="Source") out = ta.ema(src, fast_ma) out1 = ta.ema(src, slow_ma) //plot(out, title="20 EMA", color=color.rgb(117, 71, 247), linewidth = 2) //plot(out1, title="50 EMA", color=color.rgb(0, 0, 0), linewidth = 2) longCondition = ((ta.crossover(modrsi, RSIAVG)) and (RSI_hist > 0)) if longCondition strategy.entry('B', strategy.long) shortCondition = ((ta.crossunder(modrsi, RSIAVG)) and (RSI_hist < 0)) if shortCondition strategy.entry('S', strategy.short)