
এই কৌশলটি তুলনামূলকভাবে দুর্বল সূচক ((TRSI) এবং সুপার ট্রেন্ড সূচক ((SUPER Trend) এর সাথে মিলিত হয়, যা একটি সম্পূর্ণ পরিমাণগত ট্রেডিং কৌশল তৈরি করে। কৌশলটি মূলত মাঝারি-দীর্ঘ লাইন প্রবণতা ক্যাপচার করার জন্য ব্যবহৃত হয়, যখন স্বল্পমেয়াদী সূচকটি শব্দ-ফিল্টারিং ট্রেডিং সংকেত ব্যবহার করে।
বিশেষত, কৌশলটি প্রথমে 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)