
এই কৌশলটি RSI এবং Exponential Moving Average ((EMA) এবং Simple Moving Average ((SMA) এর উপর ভিত্তি করে একটি ট্রেডিং সিগন্যাল তৈরি করে। এটি একটি প্রবণতা অনুসরণকারী ধরণের কৌশল।
ট্রেডিং সিগন্যাল তৈরি করতে এই কৌশলটি তিনটি শর্ত ব্যবহার করেঃ
উপরের তিনটি শর্তের মধ্যে যেকোন দুটি পূরণ করলে, একটি ক্রয় সংকেত উৎপন্ন হয়; যদি সবগুলোই পূরণ না হয়, তবে একটি বিক্রয় সংকেত উৎপন্ন হয়।
এই কৌশলটি একই সাথে একটি সর্বদা-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-ক্রয়-
সামগ্রিকভাবে, এই কৌশলটি মাঝারি-ফ্রিকোয়েন্সি ট্রেডিং কৌশলগুলির মধ্যে রয়েছে, যার লক্ষ্য হ’ল মধ্যমেয়াদী মূল্যের প্রবণতা ক্যাপচার করা এবং স্বল্পমেয়াদী বাজার অস্থিরতা এড়ানো। এর সুবিধা এবং ঝুঁকি উভয়ই স্পষ্ট। প্যারামিটার অপ্টিমাইজেশন এবং নিয়ম সমৃদ্ধতার মাধ্যমে কৌশলটির স্থিতিশীলতা আরও বাড়ানো যেতে পারে। এটি গভীর গবেষণা এবং অপ্টিমাইজেশনের জন্য উপযুক্ত একটি উচ্চ দক্ষতাযুক্ত পরিমাণযুক্ত ট্রেডিং কৌশল।
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("I11L Unitrend",overlay=false, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00)
tradingMode = input.string("Unitrend", "Trading Mode", ["Unitrend", "Always Buy"], tooltip="Choose the Trading Mode by trying Both in your Backtesting. I use it if one is far better then the other one.")
compoundingMode = input.bool(false)
leverage = input.float(1.0,step=0.1)
SL_Factor = 1 - input.float(1,"Risk Capital per Trade unleveraged (%)", minval=0.1, maxval=100, step=0.1) / 100
TPFactor = input.float(2, step=0.1)
var disableAdditionalBuysThisDay = false
var lastTrade = time
if(time > lastTrade + 1000 * 60 * 60 * 8 or tradingMode == "Always Buy")
disableAdditionalBuysThisDay := false
if(strategy.position_size != strategy.position_size[1])
lastTrade := time
disableAdditionalBuysThisDay := true
//Trade Logic
SCORE = 0
//rsi momentum
RSIFast = ta.ema(ta.rsi(close,50),24)
RSISlow = ta.sma(ta.rsi(close,50),24)
RSIMomentum = RSIFast / RSISlow
goodRSIMomentum = RSIMomentum > 1
SCORE := goodRSIMomentum ? SCORE + 1 : SCORE
//rsi trend
RSITrend = RSISlow / 45
goodRSI = RSITrend > 1
SCORE := goodRSI ? SCORE + 1 : SCORE
//price trend
normalTrend = ta.ema(close,50) / ta.sma(close,50)
goodTrend = normalTrend > 1
SCORE := goodTrend ? SCORE + 1 : SCORE
isBuy = SCORE > 1 or tradingMode == "Always Buy"
isSell = false //SCORE == 0
//plot(SCORE, color=isBuy ? color.green : #ffffff88)
//reduced some of the values just for illustrative purposes, you can buy after the signal if the trendlines seem to grow
plot(1, color=isBuy ? #77ff7733 : SCORE == 2 ? #ffff0033 : SCORE == 1 ? #ff888833 : #ff000033,linewidth=10)
plot(1 - (1 - RSIMomentum) * 6,color=#00F569)
plot(1 - (1 - RSITrend) * 0.25,color=#00DB9B)
plot(1 - (1 - normalTrend) * 20,color=#00F5EE)
strategy.initial_capital = 50000
if(isBuy and not(disableAdditionalBuysThisDay))
if(compoundingMode)
strategy.entry("Long", strategy.long, (strategy.equity / close) * leverage)
else
strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage)
if(strategy.position_size != 0)
strategy.exit("TP/SL Long", "Long", stop=strategy.position_avg_price * (1 - (1 - SL_Factor)), limit=strategy.position_avg_price * (1 + (1 - SL_Factor) * TPFactor))