RSI সূচকের উপর ভিত্তি করে ট্রেন্ড-অনুসরণকারী স্টপ-লস কৌশল


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

RSI সূচকের উপর ভিত্তি করে ট্রেন্ড-অনুসরণকারী স্টপ-লস কৌশল

ওভারভিউ

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

কৌশল নীতি

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

মাল্টি-হেড এন্ট্রিঃ দ্রুত এমএ-তে ধীর এমএ-তে প্রবেশ করুন, এবং ধীর এমএ-র চেয়ে দাম বেশি, এবং আরএসআই ওভারসোল্ড অঞ্চলের নিচে (ডিফল্ট 10%) হলে বেশি করুন;
খালি মাথা প্রবেশঃ দ্রুত এমএ অধীনে ধীর এমএ, এবং দাম ধীর এমএর চেয়ে কম, এবং আরএসআই উচ্চ ওভারবয় অঞ্চল (ডিফল্ট 90%) এর উপরে খালি।

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

exit এ, কৌশলটি শতাংশ ট্র্যাকিং স্টপ ব্যবহার করে। ইনপুট স্টপ শতাংশের উপর ভিত্তি করে, প্রতি লাফ মূল্যের পার্থক্যের সাথে স্টপ মূল্য গণনা করা হয়, গতিশীলভাবে স্টপ সামঞ্জস্য করা যায়।

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

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

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

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

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

  1. আরএসআই এবং এমএ সূচকগুলি কিছুটা পিছিয়ে রয়েছে এবং কিছু বিপরীতমুখী সুযোগ মিস করতে পারে।
  2. শতকরা ক্ষতির হার কমানোর ক্ষেত্রে সহজেই ট্রিগার করা যায়।
  3. এই প্রজাতিগুলি রাতের প্লেট এবং প্লেট-পূর্ব উচ্চতর ওঠানামা কার্যকরভাবে পরিচালনা করতে পারে না।

উপরের ঝুঁকির জন্য, নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

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

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

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

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

সারসংক্ষেপ

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

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

// Scalping strategy
// © Lukescream and Ninorigo
// (original version by Lukescream - lastest versions by Ninorigo) - v1.3
//

//@version=4
strategy(title="Scalping using RSI 2 indicator", shorttitle="RSI 2 Strategy", overlay=true, pyramiding=0, process_orders_on_close=false)

var bool ConditionEntryL = false
var bool ConditionEntryS = false


//***********
// Costants
//***********
def_start_date = timestamp("01 Jan 2021 07:30 +0000")
def_end_date   = timestamp("01 Dec 2024 07:30 +0000")

def_rsi_length = 2
def_overbought_value = 90
def_oversold_value   = 10

def_slow_ma_length = 200
def_fast_ma_length = 50
def_ma_choice      = "EMA"

def_tick   = 0.5
def_filter = true

def_trailing_stop = 1


//***********
// Change the optional parameters
//***********
start_time  = input(title="Start date", defval=def_start_date, type=input.time)
end_time    = input(title="End date", defval=def_end_date, type=input.time)
// RSI
src         = input(title="Source", defval=close, type=input.source)
rsi_length  = input(title="RSI Length", defval=def_rsi_length, minval=1, type=input.integer)
overbought_threshold = input(title="Overbought threshold", defval=def_overbought_value, type=input.float)
oversold_threshold   = input(title="Oversold threshold", defval=def_oversold_value, type=input.float)
// Moving average
slow_ma_length = input(title="Slow MA length", defval=def_slow_ma_length, type=input.integer)
fast_ma_length = input(title="Fast MA length", defval=def_fast_ma_length, type=input.integer)
ma_choice = input(title="MA choice", defval="EMA", options=["SMA", "EMA"])
// Input ticker
tick   = input(title="Ticker size", defval=def_tick, type=input.float)
filter = input(title="Trend Filter", defval=def_filter, type=input.bool)
// Trailing stop (%)
ts_rate = input(title="Trailing Stop %", defval=def_trailing_stop, type=input.float)


//***********
// RSI
//***********
// Calculate RSI
up   = rma(max(change(src), 0), rsi_length)
down = rma(-min(change(src), 0), rsi_length)
rsi = (down == 0 ? 100 : (up == 0 ? 0 : 100-100/(1+up/down)))


//***********
// Moving averages
//***********
slow_ma = (ma_choice == "SMA" ? sma(close, slow_ma_length) : ema(close, slow_ma_length))
fast_ma = (ma_choice == "SMA" ? sma(close, fast_ma_length) : ema(close, fast_ma_length))
// Show the moving averages
plot(slow_ma, color=color.white,  title="Slow MA")
plot(fast_ma, color=color.yellow, title="Fast MA")


//***********
// Strategy
//***********
if true
    // Determine the entry conditions (only market entry and market exit conditions)
    // Long position
    ConditionEntryL := (filter == true ? (fast_ma > slow_ma and close > slow_ma and rsi < oversold_threshold) : (fast_ma > slow_ma and rsi < oversold_threshold))
    // Short position
    ConditionEntryS := (filter == true ? (fast_ma < slow_ma and close < slow_ma and rsi > overbought_threshold) : (fast_ma < slow_ma and rsi > overbought_threshold))
   
    // Calculate the trailing stop
    ts_calc = close * (1/tick) * ts_rate * 0.01

    // Submit the entry orders and the exit orders
    // Long position
    if ConditionEntryL
        strategy.entry("RSI Long", strategy.long)
    // Exit from a long position
    strategy.exit("Exit Long", "RSI Long", trail_points=0, trail_offset=ts_calc)

    // Short position 
    if ConditionEntryS
        strategy.entry("RSI Short", strategy.short)
    // Exit from a short position
    strategy.exit("Exit Short", "RSI Short", trail_points=0, trail_offset=ts_calc)

// Highlights long conditions
bgcolor (ConditionEntryL ? color.navy : na, transp=60, offset=1, editable=true, title="Long position band")
// Highlights short conditions
bgcolor (ConditionEntryS ? color.olive : na, transp=60, offset=1, editable=true, title="Short position band")