এই কৌশলটি বার্ষিক সমন্বয়গুলির উপর ভিত্তি করে একটি আরএসআই দোলন ট্র্যাকিং কৌশল। সেট উপরের এবং নীচের ব্যান্ডগুলির মধ্যে আরএসআই সূচকের দোলনের বৈশিষ্ট্যগুলি ট্র্যাক করে, যখন আরএসআই সূচক উপরের এবং নীচের ব্যান্ডগুলি স্পর্শ করে তখন ট্রেডিং সংকেতগুলি জারি করা হয়।
আরএসআই প্যারামিটার, ট্রেডিং চক্রের পরিসীমা, স্টপ লস/লাভ অনুপাতগুলি সামঞ্জস্য করার মতো পদ্ধতিগুলি অপ্টিমাইজ করার জন্য ব্যবহার করা যেতে পারে।
এই কৌশলটি RSI এর বার্ষিক চক্রের দোলন বৈশিষ্ট্য দ্বারা প্রবণতা ট্র্যাক করে, কার্যকরভাবে ট্রেডিং ঝুঁকি নিয়ন্ত্রণ করে। পরামিতি টিউনিং এবং লজিক অপ্টিমাইজেশান দ্বারা আরও পারফরম্যান্স উন্নতি অর্জন করা যেতে পারে।
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Bitlinc MARSI Study AST",shorttitle="Bitlinc MARSI Study AST",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1000,currency="USD",pyramiding=0, calc_on_order_fills=false) // === General Inputs === lengthofma = input(62, minval=1, title="Length of MA") len = input(31, minval=1, title="Length") upperband = input(89, minval=1, title='Upper Band for RSI') lowerband = input(10, minval=1, title="Lower Band for RSI") takeprofit =input(1.25, title="Take Profit Percent") stoploss =input(.04, title ="Stop Loss Percent") monthfrom =input(8, title = "Month Start") monthuntil =input(12, title = "Month End") dayfrom=input(1, title= "Day Start") dayuntil=input(31, title= "Day End") // === Innput Backtest Range === //FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) //FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) //FromYear = input(defval = 2018, title = "From Year", minval = 2017) //ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) //ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) //ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === Create RSI === src=sma(close,lengthofma) up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) plot(rsi,linewidth = 2, color=purple) // === Plot Bands === band1 = hline(upperband) band0 = hline(lowerband) fill(band1, band0, color=blue, transp=95) // === Entry and Exit Methods === longCond = crossover(rsi,lowerband) shortCond = crossunder(rsi,upperband) // === Long Entry Logic === if ( longCond ) strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG") else strategy.cancel(id="LONG") // === Short Entry Logic === if ( shortCond ) strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT") else strategy.cancel(id="SHORT") // === Take Profit and Stop Loss Logic === //strategy.exit("Take Profit LONG", "LONG", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick) //strategy.exit("Take Profit SHORT", "SHORT", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick) strategy.exit("LONG TAKE PROFIT", "LONG", profit = close * takeprofit / syminfo.mintick) strategy.exit("SHORT STOP LOSS", "SHORT", profit = close * takeprofit / syminfo.mintick) strategy.exit("LONG STOP LOSS", "LONG", loss = close * stoploss / syminfo.mintick) strategy.exit("SHORT STOP LOSS", "SHORT", loss = close * stoploss / syminfo.mintick)