এটি একটি সহজ লং-একমাত্র কৌশল যা অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় স্তরগুলি নির্ধারণের জন্য আরএসআই সূচক ব্যবহার করে। আমরা স্টপ লস এবং লাভ গ্রহণ যুক্ত করে এবং কেবলমাত্র যখন সাম্প্রতিক লাভজনক ব্যবসায়ের সম্ভাবনা 51% এর চেয়ে বেশি বা সমান হয় তখনই রিইনফোর্সমেন্ট ট্রেডিংয়ে একটি সম্ভাব্যতা মডিউল সংহত করে এটি উন্নত করেছি। এটি সম্ভাব্য হারানো ব্যবসায়গুলি এড়িয়ে কৌশল কর্মক্ষমতা ব্যাপকভাবে উন্নত করেছে।
এই কৌশলটি বাজারের ওভারকোপড এবং ওভারসোল্ড শর্তগুলি বিচার করতে আরএসআই সূচক ব্যবহার করে। বিশেষত, যখন আরএসআই ওভারসোল্ড জোনের নিম্ন সীমা অতিক্রম করে তখন এটি দীর্ঘ হয়; এবং যখন আরএসআই ওভারকোপড জোনের উপরের সীমা অতিক্রম করে তখন অবস্থান বন্ধ করে দেয়। এছাড়াও, আমরা স্টপ লস এবং লাভের অনুপাত সেট করি।
মূল বিষয় হল আমরা একটি সম্ভাব্যতা বিচার মডিউল সংহত করেছি। এই মডিউলটি সাম্প্রতিক সময়কালের দীর্ঘ ব্যবসায়ের লাভজনক শতাংশ গণনা করে (লুকব্যাক প্যারামিটার দ্বারা সংজ্ঞায়িত) । এটি কেবলমাত্র প্রবেশের অনুমতি দেয় যদি সাম্প্রতিক লাভজনক ব্যবসায়ের সম্ভাবনা 51% এর চেয়ে বেশি বা সমান হয়। এটি প্রচুর সম্ভাব্য হারানো ব্যবসায় এড়ায়।
একটি সম্ভাব্যতা বর্ধিত আরএসআই কৌশল হিসাবে, এটি সহজ আরএসআই কৌশলগুলির তুলনায় নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
এই কৌশলের মধ্যে এখনও কিছু ঝুঁকি রয়েছেঃ
সমাধান:
কৌশলটি নিম্নলিখিত দিকগুলিতে আরও অনুকূলিত করা যেতে পারেঃ
এটি একটি সহজ আরএসআই কৌশল যা ইন্টিগ্রেটেড সম্ভাব্যতা মডিউল দ্বারা উন্নত। ভ্যানিলা আরএসআই কৌশলগুলির তুলনায়, এটি কিছু ক্ষতিগ্রস্থ ট্রেডগুলি ফিল্টার করে এবং সামগ্রিক ড্রডাউন এবং মুনাফা অনুপাত উন্নত করে। পরবর্তী পদক্ষেপটি এটি আরও শক্তিশালী করার জন্য সংক্ষিপ্ত, গতিশীল অপ্টিমাইজেশন ইত্যাদি যুক্ত করে এটি উন্নত করা হতে পারে।
/*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)