আপেক্ষিক শক্তি সূচক (RSI) সূচকের উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-12-22 14:06:45 অবশেষে সংশোধন করুন: 2023-12-22 14:06:45
অনুলিপি: 4 ক্লিকের সংখ্যা: 772
1
ফোকাস
1623
অনুসারী

আপেক্ষিক শক্তি সূচক (RSI) সূচকের উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল

ওভারভিউ

আরএসআই ব্রেকিং কৌশল হল একটি পরিমাণগত ট্রেডিং কৌশল যা তুলনামূলকভাবে দুর্বল সূচক (আরএসআই) সূচকগুলির উপর ভিত্তি করে তৈরি করা হয়। এই কৌশলটি আরএসআইকে ক্রয় অঞ্চল এবং ক্রয় অঞ্চল অতিক্রম করার জন্য একটি থ্রেশহোল্ড সেট করে, যখন আরএসআই সূচকটি এই থ্রেশহোল্ডগুলিকে অতিক্রম করে তখন একটি ট্রেডিং সংকেত তৈরি করে, অর্থাৎ যখন আরএসআই 30 এর নীচে থাকে এবং যখন আরএসআই 70 এর উপরে থাকে তখন শূন্য থাকে।

কৌশল নীতি

আরএসআই-এর মূল ধারণাটি হ’ল বাজারের ওভারসোল ওভারসোলের জন্য আরএসআই ব্যবহার করা। আরএসআই হ’ল শেয়ারের সাম্প্রতিক শক্তি এবং দুর্বলতা প্রতিফলিত করে, একটি নির্দিষ্ট সময়ের মধ্যে স্টকের গড় উত্থান এবং গড় পতনের অনুপাত গণনা করে। সাধারণভাবে, ৩০ এর নীচে আরএসআইকে ওভারসোল হিসাবে বিবেচনা করা হয় এবং ৭০ এর উপরে ওভারসোল হিসাবে বিবেচনা করা হয়।

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

এই পদ্ধতিতে, কৌশলটি স্টকগুলির ওঠানামা চলাকালীন তাদের মূল্যের টার্নপয়েন্টগুলিকে ধরার চেষ্টা করে এবং ওভার-বই ওভার-সেলের ঘটনাটি ঘটে যখন ওভার-বই ওভার-সেলের ঘটনাটি ঘটে তখন পজিশনটি যথাসময়ে সামঞ্জস্য করে।

কৌশলগত সুবিধা

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

  1. অপারেশন সংকেত সহজ এবং পরিষ্কার। RSI সূচকটি গণনা করা এবং বোঝা সহজ, কেবলমাত্র তার সূচক লাইনটি ভেঙে যাওয়ার জন্য সেট করা থ্রেশহোল্ডের উপরের এবং নীচের সীমাটি পর্যবেক্ষণ করুন। সূচকটি ভেঙে গেলে এটি পরিচালনা করা যায়, কোনও জটিল ব্যবসায়ের নিয়ম নেই।

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

  3. কাস্টমাইজযোগ্যতাঃ ব্যবসায়ীরা আরএসআই প্যারামিটারগুলিকে নমনীয়ভাবে সামঞ্জস্য করতে পারে, যেমন বিভিন্ন স্টক এবং বাজারের বৈশিষ্ট্যগুলির সাথে সামঞ্জস্য রেখে ওভারব্রেড ওভারসোল্ডের থ্রেশহোল্ডগুলিকে সামঞ্জস্য করতে পারে।

কৌশলগত ঝুঁকি

আরএসআই-এর বিপরীতমুখী কৌশলগুলি কিছু ঝুঁকি নিয়ে আসে, যার মধ্যে রয়েছেঃ

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

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

  3. RSI প্রায়শই একটি মাল্টি-হেড বিপর্যয়ের আচরণ করে, অর্থাৎ দাম বাড়তে থাকে এবং RSI সূচকটি নীচে চলে যায়। এই সময়ে কৌশলটি বড় প্রবণতা থেকে দূরে চলে যায় এবং বিপুল ক্ষতির মুখোমুখি হবে।

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

RSI বিভাজন কৌশল নিম্নলিখিত মাত্রা থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. একক আরএসআই সূচকের সীমাবদ্ধতাগুলি এড়াতে একাধিক সূচককে একত্রে বিবেচনা করুন। উদাহরণস্বরূপ, বাজারের প্রবণতা নির্ধারণের জন্য একটি চলমান গড় সূচকের সাথে মিলিত করুন, বা একটি শক্তিশালী সূচক, একটি ক্রয়-বিক্রয় সূচক ব্যবহার করে ট্রেডিং সংকেতগুলি ফিল্টার করার জন্য।

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

  3. ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস স্টপ শর্তগুলি সেট করুন, যেমন শতাংশ বা পয়েন্ট স্টপ সেট করুন। একক ক্ষতির সামগ্রিক লাভের উপর অত্যধিক প্রভাব এড়ানো। প্রবণতা এবং গুরুত্বপূর্ণ প্রযুক্তির অবস্থানের সাথে মিলিত অংশের লাভ।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-11-21 00:00:00
end: 2023-12-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bunghole 2021

strategy(title="My New Strategy", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true)

//// Stoploss and Take Profit Parameters
// Enable Long Strategy
enable_long_strategy = input(true, title="Enable Long Strategy", group="SL/TP For Long Strategy",inline="1")
long_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_stoploss_percentage = (close * (long_stoploss_value / 100)) / syminfo.mintick
long_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_takeprofit_percentage = (close * (long_takeprofit_value / 100)) / syminfo.mintick

// Enable Short Strategy
enable_short_strategy = input(true, title="Enable Short Strategy", group="SL/TP For Short Strategy",inline="3")
short_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group= "SL/TP For Short Strategy",inline="4")
short_stoploss_percentage = (close * (short_stoploss_value / 100)) / syminfo.mintick
short_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Short Strategy",inline="4")
short_takeprofit_percentage = (close * (short_takeprofit_value / 100)) / syminfo.mintick

// Plot Stoploss & Take Profit Levels
long_stoploss_price = strategy.position_avg_price * (1 - long_stoploss_value/100)
long_takeprofit_price = strategy.position_avg_price * (1 + long_takeprofit_value/100)
short_stoploss_price = strategy.position_avg_price * (1 + short_stoploss_value/100)
short_takeprofit_price = strategy.position_avg_price * (1 - short_takeprofit_value/100)
plot(enable_long_strategy and not enable_short_strategy ? long_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Long SL Level")
plot(enable_long_strategy and not enable_short_strategy ? long_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Long TP Level")
plot(enable_short_strategy and not enable_long_strategy ? short_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Short SL Level")
plot(enable_short_strategy and not enable_long_strategy ? short_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Short TP Level")

// Date Range
start_date = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31, group="Date Range")
start_month = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
start_year = input(title="Start Year", type=input.integer, defval=1804, minval=1800, maxval=3000, group="Date Range")
end_date = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=3, group="Date Range")
end_month = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
end_year = input(title="End Year", type=input.integer, defval=2077, minval=1800, maxval=3000, group="Date Range")
in_date_range = (time >= timestamp(syminfo.timezone, start_year, start_month, start_date, 0, 0)) and (time < timestamp(syminfo.timezone, end_year, end_month, end_date, 0, 0))

//// Inputs   **This is where you enter your indicators for your strategy. For example, I added the RSI indicator.**
//RSI
rsi = rsi(close, 14)
rsi_over_sold = rsi < 30
rsi_over_bought = rsi > 70


//// Strategy  **This is where you create your strategy. For example, We have or buy and sell signals.**
// Creating Long and Short Strategy
buy_signal = rsi_over_sold
sell_signal = rsi_over_bought

// Long Strategy
if buy_signal and in_date_range and enable_long_strategy == true
    strategy.entry("Long", true, when=buy_signal, alert_message="Open Long Position")
    strategy.exit("Long  SL/TP", from_entry="Long", loss=long_stoploss_percentage, profit=long_takeprofit_percentage, alert_message="Your Long SL/TP Limit As Been Triggered.")
    strategy.close("Long", when=sell_signal, alert_message="Close Long Position")
    
// Short Strategy
if sell_signal and in_date_range and enable_short_strategy == true
    strategy.entry("Short", false, when = sell_signal, alert_message="Open Short Position")
    strategy.exit("Short SL/TP", from_entry="Short", loss=short_stoploss_percentage, profit=short_takeprofit_percentage, alert_message="Your Short SL/TP Limit As Been Triggered.")
    strategy.close("Short", when=buy_signal, alert_message="Close Short Position")