এই কৌশলটি একটি তুলনামূলকভাবে সম্পূর্ণ পরিমাণগত ট্রেডিং কৌশল গঠনের জন্য আপেক্ষিক শক্তি সূচক (টিআরএসআই) এবং সুপার ট্রেন্ড সূচকগুলিকে একত্রিত করে। এটি মূলত মাঝারি থেকে দীর্ঘমেয়াদী প্রবণতা ক্যাপচার করতে ব্যবহৃত হয়, যখন গোলমাল ট্রেডিং সংকেতগুলি ফিল্টার করার জন্য স্বল্পমেয়াদী সূচকগুলি ব্যবহার করে।
বিশেষত, কৌশলটি প্রথমে TRSI সূচকটি গণনা করে যে বাজারটি ওভারকোপড বা ওভারসোল্ড জোনে প্রবেশ করেছে কিনা এবং তারপরে সুপার ট্রেন্ড সূচকটি গণনা করে মূল প্রবণতার দিক নির্ধারণ করে। ট্রেডিং সংকেতগুলি উভয়কে একত্রিত করে জারি করা হয়। স্টপ লস এবং লাভের পয়েন্টগুলি লাভের বিভিন্ন পর্যায়ে তহবিলের বিভিন্ন অনুপাত প্রত্যাহারের জন্য সেট করা হয়।
এই কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
এই ঝুঁকিগুলি মোকাবেলা করার জন্য, আমরা নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করতে পারিঃ
এই কৌশলটি তুলনামূলকভাবে সম্পূর্ণ পরিমাণগত ট্রেডিং কৌশল গঠনের জন্য TRSI এবং সুপার ট্রেন্ডের মতো একাধিক সূচককে একীভূত করে। এটি স্টপ লস সেট করে এবং ঝুঁকি নিয়ন্ত্রণের জন্য মুনাফা নেওয়ার সময় কার্যকরভাবে মাঝারি থেকে দীর্ঘমেয়াদী প্রবণতা সনাক্ত করতে পারে। অপ্টিমাইজেশনের জন্য এখনও অনেক জায়গা রয়েছে, পরবর্তী উন্নতিগুলি সংকেতের নির্ভুলতা উন্নত করা এবং আরও ট্রেডিং সুযোগ সনাক্ত করার মতো ক্ষেত্রে সম্ভব। সামগ্রিকভাবে, এটি একটি পরিমাণগত কৌশল জন্য একটি ভাল সূচনা পয়েন্ট।
/*backtest start: 2022-12-14 00:00:00 end: 2023-11-26 05:20:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title = "SuperTREX strategy", overlay = true) strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"]) strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all strategy.risk.allow_entry_in(strat_dir_value) length = input( 14 ) overSold = input( 35 ) overBought = input( 70 ) HTF = input("W", type=input.resolution) ti = change( time(HTF) ) != 0 p = fixnan( ti ? close : na ) vrsi = rsi(p, length) price = close var bool long = na var bool short = na long :=crossover(vrsi,overSold) short := crossunder(vrsi,overBought) var float last_open_long = na var float last_open_short = na last_open_long := long ? close : nz(last_open_long[1]) last_open_short := short ? close : nz(last_open_short[1]) entry_value =last_open_long entry_value1=last_open_short xy=(entry_value+entry_value)/2 // INPUTS // st_mult = input(4, title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01) st_period = input(10, title = 'SuperTrend Period', minval = 1) // CALCULATIONS // up_lev =xy - (st_mult * atr(st_period)) dn_lev =xy + (st_mult * atr(st_period)) up_trend = 0.0 up_trend := entry_value[1] > up_trend[1] ? max(up_lev, up_trend[1]) : up_lev down_trend = 0.0 down_trend := entry_value1[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev // Calculate trend var trend = 0 trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1) // Calculate SuperTrend Line st_line = trend ==1 ? up_trend : down_trend plot(xy,color = trend == 1 ? color.green : color.red) buy=crossover( close, st_line) sell1=crossunder(close, st_line) buy1=buy // sell=sell1 // STRATEGY plotshape(buy , title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0) //plot for buy icon plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0) //plot for sell icon // Take profit // l = buy s1=sell if l strategy.entry("buy", strategy.long) if s1 strategy.entry("sell", strategy.short) per(pcnt) => strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na) stoploss=input(title=" stop loss", defval=25, minval=0.01) los = per(stoploss) q1=input(title=" qty_percent1", defval=25, minval=1) q2=input(title=" qty_percent2", defval=25, minval=1) q3=input(title=" qty_percent3", defval=25, minval=1) tp1=input(title=" Take profit1", defval=2, minval=0.01) tp2=input(title=" Take profit2", defval=4, minval=0.01) tp3=input(title=" Take profit3", defval=6, minval=0.01) tp4=input(title=" Take profit4", defval=8, minval=0.01) strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los) strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los) strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los) strategy.exit("x4", profit = per(tp4), loss = los)