RSI কৌশলগুলির ব্যাকটেস্টিং এবং অপ্টিমাইজেশন


সৃষ্টির তারিখ: 2023-11-10 11:59:40 অবশেষে সংশোধন করুন: 2023-11-10 11:59:40
অনুলিপি: 1 ক্লিকের সংখ্যা: 858
1
ফোকাস
1617
অনুসারী

RSI কৌশলগুলির ব্যাকটেস্টিং এবং অপ্টিমাইজেশন

ওভারভিউ

এই কৌশলটি তুলনামূলকভাবে দুর্বল সূচক (আরএসআই) সূচকের উপর ভিত্তি করে ওভার-বিক্রয় ও ওভার-বিক্রয় সিদ্ধান্ত নেওয়ার জন্য, আরএসআই ওভার-বিক্রয় ওভার-বিক্রয় অঞ্চলে পৌঁছানোর সময় একটি বিপরীত অবস্থান স্থাপন করে, নিম্ন ওভার-বিক্রয় অর্জনের লক্ষ্যে। কৌশলটি সহজ এবং কার্যকর, বাজারের স্বল্পমেয়াদী ওভার-বিক্রয় ওভার-বিক্রয় ঘটনাটি ক্যাপচার করে মুনাফা অর্জনের জন্য।

কৌশল নীতি

এই কৌশলটি কেবলমাত্র RSI সূচককে পজিশনিং সিগন্যাল হিসাবে ব্যবহার করে। RSI এর নীচে সেট করা নিম্ন (ডিফল্ট 20) অতিক্রম করার সময় অতিরিক্ত করুন, আর RSI এর উপরে সেট করা উচ্চ (ডিফল্ট 80) অতিক্রম করার সময় শূন্য করুন। প্রতি লেনদেনের জন্য ফিক্সড তহবিল (ডিফল্ট $ 100), যে কোনও পরিস্থিতিতে কেবলমাত্র 1% লাভের পরে স্টপ করুন। যদি লোকসান 3% হয় তবে বন্ধ করুন। লেনদেনের ফ্রিকোয়েন্সি নিয়ন্ত্রণের জন্য কৌশলটি 24 কে লাইনটি স্থগিত করার জন্যও সেট করা হয়েছে।

এই কৌশলটির মূল যুক্তি হলঃ

  1. আরএসআই দ্বারা ওভারবয় ওভারসোল্ড
  2. আরএসআই-এর অধীনে ২০ ঘন্টা অতিরিক্ত কাজ করা
  3. আরএসআই ৮০ এর উপরে খালি
  4. প্রতিবার 100 ডলার
  5. স্টপ-অফ বা স্টপ-আউট পজিশন
  6. যদি ক্ষতি হয় তাহলে পরবর্তী কে লাইনে ২৪টি কে লাইনের লেনদেন স্থগিত করা হবে

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

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

এই কৌশলটির সবচেয়ে বড় সুবিধা হল এর সরলতা এবং কার্যকারিতা।

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

এছাড়াও, কৌশলটি লাভের জন্য লকিং এবং ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ-অফ-লস অনুপাত এবং ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করার জন্য একটি স্থগিত ব্যবসায়ের ব্যবস্থাও সেট করে। এটি কৌশলটিকে ন্যূনতম ঝুঁকির সাথে স্থিতিশীল লাভের জন্য সক্ষম করে।

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

এই কৌশলটির প্রধান ঝুঁকিগুলো হলোঃ

  1. প্রবণতা চলাকালীন মুনাফা অর্জন করা অসম্ভব। যখন প্রবণতা খুব শক্তিশালী হয়, আরএসআই দীর্ঘমেয়াদী ওভারবয় বা ওভারসোল্ড অঞ্চলে থাকতে পারে, যার বিপরীত হওয়ার সম্ভাবনা কম থাকে এবং এই কৌশলটি মুনাফা অর্জন করা কঠিন হবে।

  2. স্টপ লস সেটিং খুব বেশি হলে ক্ষতির পরিমাণ বাড়তে পারে। বর্তমানে স্টপ লস ৩% এবং ১-২% এর মধ্যে পরিবর্তন করা যেতে পারে।

  3. ট্রেডিং ফ্রিকোয়েন্সি খুব বেশি লাভজনক হওয়ার পরে পজিশন তৈরি করা সহজ। পজিশন খোলার ফ্রিকোয়েন্সি যথাযথভাবে নিয়ন্ত্রণ করা উচিত।

  4. ফিক্সড পজিশনে প্রতিবার ১০০ ডলার বিনিয়োগ করা ঝুঁকিপূর্ণ এবং অতিরিক্ত কেন্দ্রীভূত হতে পারে, যার জন্য অনুকূলিতকরণের প্রয়োজন।

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

উপরের বিশ্লেষণের ভিত্তিতে, এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. ট্রেডিংয়ে অস্পষ্টতা থাকলে ট্রেডিং বন্ধ করে দিন।

  2. অপ্টিমাইজড স্টপ লস স্টপ অনুপাত, 1-2% স্টপ লস অ্যাডজাস্টমেন্ট আরও যুক্তিসঙ্গত, স্টপ স্টপটি ভাসমান স্টপ হিসাবে সেট করা যেতে পারে।

  3. পজিশন খোলার ফ্রিকোয়েন্সি বাড়ানো, যেমন নির্দিষ্ট সময়ের মধ্যে মাত্র ১-২ বার পজিশন খোলার অনুমতি দেওয়া।

  4. একটি স্থির মূলধন 100 ডলারকে মূলধনের শতাংশে পরিবর্তন করুন, যেমন 1%।

  5. RSI চক্র, ওভারবই ওভারসোল্ড অঞ্চল ইত্যাদির মতো প্যারামিটারগুলির সমন্বয়কে অপ্টিমাইজ করুন।

  6. পজিশন কন্ট্রোল বাড়ানো, প্রাথমিক মূলধন বাড়ানোর সময় একক লেনদেনের মূলধন বাড়ানো হয় না।

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-11-02 00:00:00
end: 2023-11-09 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("rsi超买超卖_回测用", overlay=false, initial_capital=50000, currency=currency.USD, default_qty_type=strategy.cash)
open_pos = input.int(50000, title = "每次开单资金(usdt)")
rsi_period = input.int(14, title = "rsi周期")
rsi_line      = input.float(20.0,      title='RSI触发线',      step=0.05)
stop_rsi_top_line = input.float(70, title = "顶部rsi止损线")
stop_rsi_bottom_line = input.float(30, title = "底部rsi止损线")
stop_loss_perc = input.float(0.03, title = "止损线")
stop_profit = input.float(0.01, title = "止盈")
loss_stop_trade_k = input.int(24, title = "亏损后x根K线不做交易")


rsiParam = ta.rsi(close, rsi_period)

var int failedTimes = 0
var bool stopTrade = false

// plot(rsiParam)

if stopTrade
    failedTimes += 1
    if failedTimes == loss_stop_trade_k
        failedTimes := 0
        stopTrade := false



// 获取当前持仓方向
checkCurrentPosition() =>
    strategy.position_size > 0 ? 1 : strategy.position_size < 0 ? -1 : 0

curPosition = checkCurrentPosition()

// 当前持仓成本价
position_avg_price = strategy.position_avg_price


// 当前持单, 触达反向的rsi线,清仓
if curPosition > 0 and rsiParam >= stop_rsi_top_line
    strategy.close_all(comment = "closebuy")

if curPosition < 0 and rsiParam <= stop_rsi_bottom_line
    strategy.close_all(comment = "closesell")


// 止盈止损清仓
if curPosition > 0
    // if (position_avg_price - close) / close >= stop_loss_perc
    //     // 止损
    //     strategy.close_all(comment = "closebuy")
    //     stopTrade := true
    if (close - position_avg_price) / position_avg_price >= stop_profit
        // 止盈
        strategy.close_all(comment = "closebuy")



if curPosition < 0
    // if (close - position_avg_price) / position_avg_price >= stop_loss_perc
    //     // 止损
    //     strategy.close_all(comment = "closesell")
    //     stopTrade := true

    if (position_avg_price - close) / close >= stop_profit
        // 止盈
        strategy.close_all(comment = "closesell")


a = strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1)

if bar_index == a and strategy.closedtrades.profit(strategy.closedtrades - 1) < 0
    stopTrade := true

var float openPrice = 0.0



if rsiParam <= rsi_line and stopTrade == false
	strategy.entry("long", strategy.long, open_pos / close, comment = "long")
    if curPosition == 0
        openPrice := close
    strategy.exit("long_stop", "long", limit = openPrice * (1+stop_profit), stop=openPrice * (1-stop_loss_perc), comment = "closebuy")

if rsiParam >= 100 - rsi_line and stopTrade == false
    strategy.entry("short", strategy.short, open_pos / close, comment = "short")
    if curPosition == 0
        openPrice := close
    strategy.exit("short_stop", "short", limit = openPrice * (1-stop_profit), stop=openPrice * (1+stop_loss_perc), comment = "closesell")




plot(failedTimes)