
এই কৌশলটি একটি সহজ মাত্রাতিরিক্ত, RSI সূচক ব্যবহার করে ওভারবয় ওভারসেল করার কৌশল। আমরা এটিকে উন্নত করেছি, একটি স্টপ লস স্টপ যুক্ত করেছি, এবং একটি সম্ভাব্যতা মডিউলকে সম্ভাব্যতা বৃদ্ধির জন্য সংহত করেছি, কেবলমাত্র যখন সাম্প্রতিক সময়ের জন্য লাভজনক ব্যবসায়ের সম্ভাবনা 51% এর চেয়ে বেশি হয় তখনই পজিশনটি খুলবে। এটি কৌশলটির কার্যকারিতা ব্যাপকভাবে উন্নত করেছে।
এই কৌশলটি আরএসআই সূচক ব্যবহার করে বাজারকে ওভার-বই ওভার-সোড করার জন্য ব্যবহার করে। বিশেষত, যখন আরএসআই একটি সেট ওভার-সোড রেঞ্জের নীচের সীমা অতিক্রম করে তখন বেশি করা; যখন আরএসআই একটি সেট ওভার-সোড রেঞ্জের উপরের সীমা অতিক্রম করে তখন প্লেইন করা। এছাড়াও, আমরা একটি স্টপ-ড্রপ অনুপাত সেট করি।
মূলত, আমরা একটি সম্ভাব্যতা মূল্যায়ন মডিউল সংহত করেছি। এই মডিউলটি সাম্প্রতিক সময়ের মধ্যে (লুকব্যাক প্যারামিটার দ্বারা সেট করা) বেশি লেনদেন করা বা ক্ষতির অনুপাত গণনা করে। কেবলমাত্র যখন সাম্প্রতিক লাভজনক লেনদেনের সম্ভাবনা 51% এর চেয়ে বেশি হয় তখনই বেশি পজিশন খোলা হয়। এটি সম্ভাব্য ক্ষতিগ্রস্থ লেনদেনকে ব্যাপকভাবে হ্রাস করে।
এটি একটি সম্ভাব্যতা-উন্নত RSI কৌশল যা সাধারণ RSI কৌশলগুলির তুলনায় নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
এই কৌশলটি কিছু ঝুঁকি নিয়েও এসেছেঃ
সমাধানঃ
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে আরও উন্নত করা যেতে পারেঃ
এই কৌশলটি একটি সহজ আরএসআই কৌশল, যা সাধারণ আরএসআই কৌশলগুলির তুলনায় ক্ষতিগ্রস্থ ব্যবসায়ের কিছু অংশ ফিল্টার করতে পারে। সামগ্রিক প্রত্যাহার এবং ক্ষতির অনুপাতটি কিছুটা অপ্টিমাইজ করা যায়। পরবর্তী সময়ে ফাঁকা, গতিশীল অপ্টিমাইজেশান ইত্যাদির ক্ষেত্রে উন্নতি করা যেতে পারে, যা কৌশলটিকে আরও শক্তিশালী করে তোলে।
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
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/
// © thequantscience
//@version=5
strategy("Reinforced RSI",
overlay = true,
default_qty_type = strategy.percent_of_equity,
default_qty_value = 100,
pyramiding = 1,
currency = currency.EUR,
initial_capital = 1000,
commission_type = strategy.commission.percent,
commission_value = 0.07)
lenght_rsi = input.int(defval = 14, minval = 1, title = "RSI lenght: ")
rsi = ta.rsi(close, length = lenght_rsi)
rsi_value_check_entry = input.int(defval = 35, minval = 1, title = "Oversold: ")
rsi_value_check_exit = input.int(defval = 75, minval = 1, title = "Overbought: ")
trigger = ta.crossunder(rsi, rsi_value_check_entry)
exit = ta.crossover(rsi, rsi_value_check_exit)
entry_condition = trigger
TPcondition_exit = exit
look = input.int(defval = 30, minval = 0, maxval = 500, title = "Lookback period: ")
Probabilities(lookback) =>
isActiveLong = false
isActiveLong := nz(isActiveLong[1], false)
isSellLong = false
isSellLong := nz(isSellLong[1], false)
int positive_results = 0
int negative_results = 0
float positive_percentage_probabilities = 0
float negative_percentage_probabilities = 0
LONG = not isActiveLong and entry_condition == true
CLOSE_LONG_TP = not isSellLong and TPcondition_exit == true
p = ta.valuewhen(LONG, close, 0)
p2 = ta.valuewhen(CLOSE_LONG_TP, close, 0)
for i = 1 to lookback
if (LONG[i])
isActiveLong := true
isSellLong := false
if (CLOSE_LONG_TP[i])
isActiveLong := false
isSellLong := true
if p[i] > p2[i]
positive_results += 1
else
negative_results -= 1
positive_relative_probabilities = positive_results / lookback
negative_relative_probabilities = negative_results / lookback
positive_percentage_probabilities := positive_relative_probabilities * 100
negative_percentage_probabilities := negative_relative_probabilities * 100
positive_percentage_probabilities
probabilities = Probabilities(look)
lots = strategy.equity/close
var float e = 0
var float c = 0
tp = input.float(defval = 1.00, minval = 0, title = "Take profit: ")
sl = input.float(defval = 1.00, minval = 0, title = "Stop loss: ")
if trigger==true and strategy.opentrades==0 and probabilities >= 51
e := close
strategy.entry(id = "e", direction = strategy.long, qty = lots, limit = e)
takeprofit = e + ((e * tp)/100)
stoploss = e - ((e * sl)/100)
if exit==true
c := close
strategy.exit(id = "c", from_entry = "e", limit = c)
if takeprofit and stoploss
strategy.exit(id = "c", from_entry = "e", stop = stoploss, limit = takeprofit)