RSI সূচক দীর্ঘ এবং সংক্ষিপ্ত কৌশল


সৃষ্টির তারিখ: 2023-09-19 19:43:19 অবশেষে সংশোধন করুন: 2023-09-19 19:43:19
অনুলিপি: 0 ক্লিকের সংখ্যা: 746
1
ফোকাস
1617
অনুসারী

ওভারভিউ

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

কৌশল নীতি

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

  1. RSI এর মান গণনা করা
  2. আরএসআই এর উপরের এবং নীচের সীমা সেট করুন
  3. আরএসআই-তে সীমাবদ্ধতার পরে, খালি প্রবেশ করুন
  4. আরএসআই-এর অধীনে নিম্ন সীমা অতিক্রম করার সময় আরও দেখুন
  5. স্টপ-অফ এবং স্টপ-আউট সেট করুন
  6. আরএসআই যখন ব্যান্ডেজে ফিরে আসে বা স্টপ লস স্টপ কন্ডিশন ট্রিগার করে তখন পজিশন বন্ধ করে দেয়

আরএসআই সূচকটি বাজারটি ওভারবয় বা ওভারসেল অবস্থায় রয়েছে তা দেখায়। আরএসআই 70 এর উপরে থাকলে এটি ওভারবয় হিসাবে বিবেচিত হয় এবং আরএসআই 30 এর নীচে থাকলে এটি ওভারসেল হিসাবে বিবেচিত হয়। ট্রেডিং কৌশলটি হ’ল আরএসআইয়ের ওভারবয় ওভারসেল অবস্থার উপর ভিত্তি করে একটি খালি অবস্থান বা একটি মাল্টি-অর্ডার অবস্থান স্থাপন করা উচিত কিনা তা বিচার করা।

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

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

  • আরএসআই সূচক ব্যবহার করে আপনি বাজারে ওভারবয় ওভারসোল্ডের একটি কার্যকর মূল্যায়ন করতে পারেন।
  • RSI সূচক তত্ত্বের ভিত্তিতে ব্যাপকভাবে গৃহীত
  • বিভিন্ন জাত এবং বাজারের অবস্থার সাথে সামঞ্জস্য রেখে কৌশলগত প্যারামিটারগুলি সামঞ্জস্য করা যায়
  • ইন্টিগ্রেটেড স্টপ লস ম্যানেজমেন্ট যা ঝুঁকি নিয়ন্ত্রণ করে

কৌশলগত ঝুঁকি ও প্রতিক্রিয়া

  • RSI-এর সম্ভাব্য ভুল সংকেত, যার ফলে অপ্রয়োজনীয় ক্ষতি হতে পারে
  • RSI পরিমাপের ব্যাপ্তিটি ক্রমাগত অপ্টিমাইজ করা প্রয়োজন
  • ভয়াবহ ভূমিকম্পের ফলে ক্ষতিগ্রস্ত হতে পারে।

পাল্টা ব্যবস্থা:

  1. মাল্টি ফ্যাক্টর নিশ্চিতকরণ এবং অন্যান্য সূচকের সাথে মিথ্যে সংকেত এড়ানো
  2. বিভিন্ন জাতের বৈশিষ্ট্য অনুসারে RSI প্যারামিটার ব্যাপ্তি অপ্টিমাইজ করুন
  3. স্টপ পজিশনে পরিবর্তন করুন এবং ঝুঁকি হ্রাস করুন

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

এই কৌশলটি নিম্নলিখিত দিক থেকে প্রসারিত এবং অপ্টিমাইজ করা যায়ঃ

  1. মেশিন লার্নিং ব্যবহার করে RSI প্যারামিটার ব্যাপ্তি স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করুন

  2. ভুয়া ব্রেকডাউন এড়াতে লেনদেনের পরিমাণ বৃদ্ধি করা

  3. মাল্টি ফ্যাক্টর যাচাইকরণের জন্য চলমান গড়ের মতো সূচকগুলির সাথে মিলিত

  4. বাজারের অস্থিরতার সাথে সামঞ্জস্য রেখে একটি স্ব-অনুকূলিত স্টপ কৌশল সেট করুন

  5. ট্রেডিং ভলিউমের পরিবর্তনগুলি পর্যবেক্ষণ করুন এবং তহবিলের প্রবাহ এবং প্রবাহগুলি বিচার করুন

  6. সামগ্রিক প্রত্যাহার হ্রাস করার জন্য অন্যান্য অপ্রাসঙ্গিক কৌশলগুলির সমন্বয়

সারসংক্ষেপ

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

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

//@version=3
strategy("4All V3", shorttitle="Strategy", overlay=true)

/////////////// Component Code Start ///////////////
testStartYear = input(2011, "Backtest Start Year") 
testStartMonth = input(8, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(29, "Backtest Stop Day")
// testStopDay = testStartDay + 1
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
/////////////// Component Code Stop ///////////////

src = close
len = input(4, minval=1, title="Length")

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

rsin = input(5)
sn = 100 - rsin
ln = 0 + rsin

/////////////// STRATEGY ///////////////
ts = input(99999, "Trailing Stop") / 10000
tp = input(15, "Take Profit") / 10000
sl = input(23, "Stop Loss") / 10000

pyr = input(1, "Pyramiding")

short = crossover(rsi, sn)
long = crossunder(rsi, ln)

totalLongs = 0
totalLongs := nz(totalLongs[1])
totalShorts = 0
totalShorts := nz(totalShorts[1])

totalLongsPrice = 0
totalLongsPrice := nz(totalLongsPrice[1])
totalShortsPrice = 0
totalShortsPrice := nz(totalShortsPrice[1])

sectionLongs = 0
sectionLongs := nz(sectionLongs[1])
sectionShorts = 0
sectionShorts := nz(sectionShorts[1])

if long
    sectionLongs := sectionLongs + 1
    sectionShorts := 0

if short
    sectionLongs := 0
    sectionShorts := sectionShorts + 1

longCondition = long and sectionLongs >= pyr
shortCondition = short and sectionShorts >= pyr

last_long = na
last_short = na
last_long := longCondition ? time : nz(last_long[1])
last_short := shortCondition ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

last_open_long_signal = na
last_open_short_signal = na
last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1])

last_long_signal = na
last_short_signal = na
last_long_signal := long_signal ? time : nz(last_long_signal[1])
last_short_signal := short_signal ? time : nz(last_short_signal[1])

in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal

last_high = na
last_low = na
last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])

long_ts = not na(last_high) and high <= (last_high - ts) //and high >= last_open_long_signal
short_ts = not na(last_low) and low >= (last_low + ts) //and low <= last_open_short_signal

long_tp = high >= (last_open_long_signal + tp)
short_tp = low <= (last_open_short_signal - tp)

long_sl = low <= (last_open_long_signal - sl)
short_sl = high >= (last_open_short_signal + sl)

leverage = input(1, "Leverage")
long_call = last_open_long_signal - (0.8 + 0.2 * (1/leverage)) / leverage * last_open_long_signal
short_call = last_open_short_signal + (0.78 + 0.2 * (1/leverage)) / leverage * last_open_short_signal
long_call_signal = low <= long_call
short_call_signal = high >= short_call

if testPeriod()
    strategy.entry("Long", strategy.long, when=longCondition)
    strategy.entry("Short", strategy.short, when=shortCondition)
    
    strategy.close("Long", when=long_call_signal)
    strategy.close("Short", when=short_call_signal)
    strategy.close("Long", when=long_tp)
    strategy.close("Short", when=short_tp)
    strategy.close("Long", when=long_sl)
    strategy.close("Short", when=short_sl)
    strategy.close("Long", when=long_ts)
    strategy.close("Short", when=short_ts)