RSI দ্বিমুখী ব্রেকআউট কৌশল


সৃষ্টির তারিখ: 2023-11-08 12:11:03 অবশেষে সংশোধন করুন: 2023-11-08 12:11:03
অনুলিপি: 0 ক্লিকের সংখ্যা: 669
1
ফোকাস
1617
অনুসারী

RSI দ্বিমুখী ব্রেকআউট কৌশল

ওভারভিউ

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

কৌশল নীতি

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

  2. আরএসআই কার্ভের উপর ভিত্তি করে ওভারবই লাইন এবং ওভারসেল লাইনের অবস্থান সম্পর্কিত, ওভারবই জোন বা ওভারসেল জোন নির্ধারণ করা যায়।

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

  4. পজিশন খোলার পরে, স্টপ লস স্টপ লাইন সেট করুন। স্টপ লস স্টপ পরিস্থিতি ট্র্যাক করুন এবং শর্ত পূরণ হলে পজিশনটি পিক করুন।

  5. এই কৌশলটি ইএমএকে ফিল্টার হিসাবে ব্যবহার করার একটি বিকল্প বৈশিষ্ট্যও সরবরাহ করে। কেবলমাত্র আরএসআই সূচকটি আরও খালি সংকেত দেওয়ার সময়, দামটি ইএমএকে ভেঙে ফেলার জন্য পজিশন খোলার প্রয়োজন।

  6. কৌশলটি শুধুমাত্র নির্দিষ্ট ট্রেডিং সময়ের মধ্যে ট্রেড করার জন্য একটি বৈশিষ্ট্যও সরবরাহ করে। ব্যবহারকারীরা শুধুমাত্র একটি নির্দিষ্ট সময়ের মধ্যে ট্রেড করতে পারেন এবং সময়ের পরে পজিশনের বাইরে চলে যেতে পারেন।

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

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

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

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

ঝুঁকি মোকাবেলাঃ

  • RSI প্যারামিটারগুলিকে অপ্টিমাইজ করুন, বিভিন্ন জাতের জন্য উপযুক্ত প্যারামিটারগুলিকে সামঞ্জস্য করুন।
  • প্রবণতা সূচকগুলির সাথে সংযুক্ত করে, পরিস্থিতি থেকে বিচ্যুত হওয়া এবং ভুল সংকেত এড়ানো।
  • স্টপ-ড্যাম্প প্যারামিটার পরীক্ষা ও অপ্টিমাইজ করুন এবং সর্বোত্তম প্যারামিটার খুঁজুন।
  • EMA প্যারামিটার পরীক্ষা ও অপ্টিমাইজ করুন এবং সর্বোত্তম পরিস্রাবণ স্তর খুঁজে বের করুন।

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

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

  1. আরএসআই প্যারামিটারগুলিকে অপ্টিমাইজ করুন, বিভিন্ন জাতের সেরা প্যারামিটার সমন্বয় খুঁজুন। সেরা ওভার-বই ওভার-বিক্রয় থ্রেশহোল্ডগুলি খুঁজে বের করার জন্য পুনরাবৃত্তির মাধ্যমে অনুসন্ধান করুন।

  2. বিভিন্ন সূচককে RSI এর সাথে একত্রিত করার চেষ্টা করুন, যার ফলে আরও শক্তিশালী সিদ্ধান্তের সংকেত তৈরি হয়। যেমন MACD, KD, বুলিন ব্যান্ড ইত্যাদি।

  3. অপ্টিমাইজ করা স্টপ-অফ-লস কৌশল, কৌশল স্থিতিশীলতা উন্নত করুন। স্টপ-অফ-লস কৌশলগুলি বাজার ওঠানামা অনুসারে সেট করা যেতে পারে, বা স্টপ-অফ-লস ফাংশন ট্র্যাকিংয়ের সাথে।

  4. ইএমএ ফিল্টার প্যারামিটার অপ্টিমাইজ করুন বা অন্যান্য পরিমাপ ফিল্টারগুলি পরীক্ষা করুন যাতে আরও ফাঁকা না হয়।

  5. প্রবণতা নির্ণয় মডিউল যোগ করুন, এবং বিপরীতভাবে বহু-বিপরীত মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার মুদ্রার

  6. বিভিন্ন ট্রেডিং সময়ের পরামিতি পরীক্ষা করে দেখুন কোন সময়টি কৌশলটির জন্য উপযুক্ত এবং কোনটি এড়ানো উচিত।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-10-08 00:00:00
end: 2023-11-07 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/
// © REV0LUTI0N

//@version=4

strategy("RSI Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)

// Strategy Backtesting
startDate  = input(timestamp("2021-10-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("9999-12-31T00:00:00"), type = input.time, title='Backtesting End Date')

time_cond  = true
// Strategy

Length = input(12, minval=1)
src = input(close, title="Source")
overbought = input(70, minval=1)
oversold = input(30, minval=1)
xRSI = rsi(src, Length)
    
rsinormal = input(true, title="Overbought Go Long & Oversold Go Short")
rsiflipped = input(false, title="Overbought Go Short & Oversold Go Long")

// EMA Filter
noemafilter = input(true, title="No EMA Filter")
useemafilter = input(false, title="Use EMA Filter")
ema_length = input(defval=15, minval=1, title="EMA Length")
emasrc = input(close, title="Source")
ema = ema(emasrc, ema_length)
plot(ema, "EMA", style=plot.style_linebr, color=#cad850, linewidth=2)

//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = (time(timeframe.period, startendtime))
timetoclose = na(time(timeframe.period, startendtime))

// Stop Loss & Take Profit % Based
enablesl = input(false, title='Enable Stop Loss')
enabletp = input(false, title='Enable Take Profit')
stopTick = input(5.0, title='Stop Loss %', type=input.float, step=0.1) / 100
takeTick = input(10.0, title='Take Profit %', type=input.float, step=0.1) / 100

longStop = strategy.position_avg_price * (1 - stopTick)
shortStop = strategy.position_avg_price * (1 + stopTick)
shortTake = strategy.position_avg_price * (1 - takeTick)
longTake = strategy.position_avg_price * (1 + takeTick)

plot(strategy.position_size > 0 and enablesl ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesl ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enabletp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enabletp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

// Alert messages
message_enterlong  = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")

// Strategy Execution
if (xRSI > overbought and close > ema and time_cond and timetobuy and rsinormal and useemafilter)
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if (xRSI < oversold and close < ema and time_cond and timetobuy and rsinormal and useemafilter)
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if (xRSI < oversold and close > ema and time_cond and timetobuy and rsiflipped and useemafilter)
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if (xRSI > overbought and close < ema and time_cond and timetobuy and rsiflipped and useemafilter)
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if (xRSI > overbought and time_cond and timetobuy and rsinormal and noemafilter)
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if (xRSI < oversold and time_cond and timetobuy and rsinormal and noemafilter)
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if (xRSI < oversold and time_cond and timetobuy and rsiflipped and noemafilter)
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if (xRSI > overbought and time_cond and timetobuy and rsiflipped and noemafilter)
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if strategy.position_size > 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closelong)
if strategy.position_size < 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closeshort)
    
if strategy.position_size > 0 and enablesl and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enablesl and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)
    
if strategy.position_size > 0 and enabletp and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enabletp and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)