সম্ভাব্যতা বৃদ্ধির উপর ভিত্তি করে RSI কৌশল


সৃষ্টির তারিখ: 2023-12-20 15:05:05 অবশেষে সংশোধন করুন: 2023-12-20 15:05:05
অনুলিপি: 0 ক্লিকের সংখ্যা: 666
1
ফোকাস
1621
অনুসারী

সম্ভাব্যতা বৃদ্ধির উপর ভিত্তি করে RSI কৌশল

ওভারভিউ

এই কৌশলটি একটি সহজ মাত্রাতিরিক্ত, RSI সূচক ব্যবহার করে ওভারবয় ওভারসেল করার কৌশল। আমরা এটিকে উন্নত করেছি, একটি স্টপ লস স্টপ যুক্ত করেছি, এবং একটি সম্ভাব্যতা মডিউলকে সম্ভাব্যতা বৃদ্ধির জন্য সংহত করেছি, কেবলমাত্র যখন সাম্প্রতিক সময়ের জন্য লাভজনক ব্যবসায়ের সম্ভাবনা 51% এর চেয়ে বেশি হয় তখনই পজিশনটি খুলবে। এটি কৌশলটির কার্যকারিতা ব্যাপকভাবে উন্নত করেছে।

কৌশল নীতি

এই কৌশলটি আরএসআই সূচক ব্যবহার করে বাজারকে ওভার-বই ওভার-সোড করার জন্য ব্যবহার করে। বিশেষত, যখন আরএসআই একটি সেট ওভার-সোড রেঞ্জের নীচের সীমা অতিক্রম করে তখন বেশি করা; যখন আরএসআই একটি সেট ওভার-সোড রেঞ্জের উপরের সীমা অতিক্রম করে তখন প্লেইন করা। এছাড়াও, আমরা একটি স্টপ-ড্রপ অনুপাত সেট করি।

মূলত, আমরা একটি সম্ভাব্যতা মূল্যায়ন মডিউল সংহত করেছি। এই মডিউলটি সাম্প্রতিক সময়ের মধ্যে (লুকব্যাক প্যারামিটার দ্বারা সেট করা) বেশি লেনদেন করা বা ক্ষতির অনুপাত গণনা করে। কেবলমাত্র যখন সাম্প্রতিক লাভজনক লেনদেনের সম্ভাবনা 51% এর চেয়ে বেশি হয় তখনই বেশি পজিশন খোলা হয়। এটি সম্ভাব্য ক্ষতিগ্রস্থ লেনদেনকে ব্যাপকভাবে হ্রাস করে।

সামর্থ্য বিশ্লেষণ

এটি একটি সম্ভাব্যতা-উন্নত RSI কৌশল যা সাধারণ RSI কৌশলগুলির তুলনায় নিম্নলিখিত সুবিধাগুলি রয়েছেঃ

  1. স্টপ লস সেটিং যুক্ত করুন, একক ক্ষতি সীমাবদ্ধ করুন এবং মুনাফা লক করুন
  2. সম্ভাব্যতা মডিউল একত্রিত করুন, কম সম্ভাব্যতা বাজারের ভিআরএফ এড়িয়ে চলুন
  3. সম্ভাব্যতা মডিউল প্যারামিটারগুলি সামঞ্জস্যযোগ্য এবং বিভিন্ন বাজার পরিবেশের জন্য অনুকূলিতকরণ করা যেতে পারে
  4. এই পদ্ধতিটি সহজ, সহজে বোঝা যায় এবং সহজেই প্রয়োগ করা যায়।

ঝুঁকি বিশ্লেষণ

এই কৌশলটি কিছু ঝুঁকি নিয়েও এসেছেঃ

  1. “অতিরিক্ত কাজ করা, বাজারের পতন থেকে লাভবান হওয়া সম্ভব নয়”
  2. একটি সম্ভাব্যতা মডিউল ভুল সিদ্ধান্তে একটি ভাল সুযোগ মিস করতে পারে
  3. সর্বোত্তম প্যারামিটার সংমিশ্রণ নির্ধারণ করা সম্ভব নয়, বিভিন্ন বাজারের পরিস্থিতিতে কর্মক্ষমতা ব্যাপকভাবে পরিবর্তিত হয়
  4. স্টপ লস সেটিং খুব হালকা, একক ক্ষতির সম্ভাবনা অনেক বেশি

সমাধানঃ

  1. ক্যারিয়ার ম্যানেজমেন্টে যোগদানের কথা ভাবতে পারেন
  2. সম্ভাব্যতা মডিউল প্যারামিটারগুলিকে অপ্টিমাইজ করুন, যাতে ভুল সিদ্ধান্তের সম্ভাবনা কম হয়
  3. মেশিন লার্নিং পদ্ধতি ব্যবহার করে গতিশীল অপ্টিমাইজেশান প্যারামিটার
  4. একক ক্ষতির জন্য আরও সংরক্ষণশীল স্টপ লেভেল সেট করুন

অপ্টিমাইজেশান দিক

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে আরও উন্নত করা যেতে পারেঃ

  1. দুই-মুখী লেনদেনের জন্য কোকিং মডিউল যুক্ত করা হয়েছে
  2. মেশিন লার্নিং পদ্ধতি ব্যবহার করে ডায়নামিক অপ্টিমাইজেশান প্যারামিটার সেটিং
  3. অন্যান্য সূচকগুলি ব্যবহার করে অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয়ের বিচার করুন
  4. অপ্টিমাইজ করা স্টপ লস স্টপ কৌশল, লাভ-ক্ষতি অনুপাত অপ্টিমাইজেশন
  5. অন্যান্য ফ্যাক্টরগুলির সাথে সংযুক্ত করে, ফিল্টারিং সংকেতগুলি সম্ভাব্যতা বাড়ায়

সারসংক্ষেপ

এই কৌশলটি একটি সহজ আরএসআই কৌশল, যা সাধারণ আরএসআই কৌশলগুলির তুলনায় ক্ষতিগ্রস্থ ব্যবসায়ের কিছু অংশ ফিল্টার করতে পারে। সামগ্রিক প্রত্যাহার এবং ক্ষতির অনুপাতটি কিছুটা অপ্টিমাইজ করা যায়। পরবর্তী সময়ে ফাঁকা, গতিশীল অপ্টিমাইজেশান ইত্যাদির ক্ষেত্রে উন্নতি করা যেতে পারে, যা কৌশলটিকে আরও শক্তিশালী করে তোলে।

কৌশল সোর্স কোড
/*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)