RSI ট্রেন্ড রিভার্সাল কৌশল

RSI ATR
সৃষ্টির তারিখ: 2024-04-28 13:33:19 অবশেষে সংশোধন করুন: 2024-04-28 13:33:19
অনুলিপি: 1 ক্লিকের সংখ্যা: 546
1
ফোকাস
1617
অনুসারী

RSI ট্রেন্ড রিভার্সাল কৌশল

ওভারভিউ

আরএসআই ট্রেন্ড রিভার্স কৌশলটি একটি পরিমাণগত ট্রেডিং কৌশল যা তুলনামূলকভাবে দুর্বল সূচক (আরএসআই) এবং গড় বাস্তব তরঙ্গদৈর্ঘ্য (এটিআর) এর উপর ভিত্তি করে। এই কৌশলটি গতিশীলভাবে স্টপ লস (টিপি / এসএল) সামঞ্জস্য করে দ্রুত বাজার ওঠানামা করার জন্য, ট্রেন্ড রিভার্স সুযোগ ক্যাপচার করার জন্য। এই কৌশলটি আরএসআইকে কেন্দ্র করে, এটিআর পরিমাপ করে, নিম্নলিখিত দুটি স্বতঃস্ফূর্ত গতিশীল ব্যাপ্তিকে পজিশন খোলার ভিত্তিতে ব্যবহার করে। এই কৌশলটি স্বতন্ত্রভাবে ব্যবহার করা যেতে পারে বা অন্যান্য কৌশলগুলির স্টপ লস মডিউল হিসাবে কাজ করতে পারে। টেসলা (টিএসএলএ), অ্যাপল (এএপিএল), ভায়াদা (এনভিডিএ) ইত্যাদি শেয়ারের জন্য 15 মিনিটের স্তরের ডেটা পরিমাপ করা হয়েছে।

কৌশল নীতি

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

  1. নিম্নরেখা = সর্বোচ্চ মূল্য ×[1 - (এটিআর/মূল্য + 1/(আরএসআই ডাউনট্রেইল × গুণক))
  2. রেলওয়ে = সর্বনিম্ন মূল্য ×[1 + (এটিআর / মূল্য + 1/(আরএসআই ট্র্যাক × গুণক)) ]

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

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

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

কৌশলগত ঝুঁকি

  1. প্যারামিটার নির্বাচন করতে ভুল করলে অতিরিক্ত ঝুঁকি হতে পারে, যেমন length খুব ছোট হলে ট্রেডিং বেশি হয়, এবং multiplier খুব বড় হলে স্টপ লস বেশি হয়।
  2. নির্দিষ্ট বাজার পরিস্থিতিতে কার্যকারিতা খারাপ হতে পারে, যেমন ঘন ঘন পুনরুদ্ধার এবং ভুয়া ব্রেকিংয়ের ফলে বাজারে ক্ষতিগ্রস্ত লেনদেন হতে পারে।
  3. এই কৌশলটি নিজেই কোন প্রবণতা নির্ণয় করতে পারে না, এটি অন্যান্য সংকেতগুলির সাথে ব্যবহার করা প্রয়োজন।

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

  1. ট্রেডিংয়ের সময়, ট্রেডিংয়ের সময়, ট্রেডিংয়ের সময়, ট্রেডিংয়ের সময়, ট্রেডিংয়ের সময়, ট্রেডিংয়ের সময়, ট্রেডিংয়ের সময়, ট্রেডিংয়ের সময়, ট্রেডিংয়ের সময়।
  2. এই প্যারামিটারগুলোকে অপ্টিমাইজ করে length, multiplier ইত্যাদি প্যারামিটারগুলোর সর্বোত্তম সমন্বয় খুঁজে বের করা যায়।
  3. অন্যান্য প্রযুক্তিগত সূচক বা বাজার মনোভাবের সূচকগুলির সাথে একত্রিত হয়ে পজিশন খোলার স্থানের যথার্থতা বাড়ানো যায়।
  4. পজিশন ম্যানেজমেন্ট যোগ করে প্রতিটি লেনদেনের ঝুঁকি কন্ট্রোল করা যায়।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-04-22 00:00:00
end: 2024-04-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI Trend Reversal", overlay=true, max_bars_back = 4999, calc_on_every_tick = false)


//INPUTS 
rsi_length = input.int(title = "Lenght", defval = 8)
rsi_mult = input.float(title = "Multiplier", defval = 1.5, step = .05)
lookback = input.int(title = "Delay to prevent idealization", defval = 1)
sltp = input.float(title = "Minimum Difference", defval = 10)
src = input.source(title = "Source Input", defval = close)

//PARAMETERS INITILIZATION
hclose = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, src)
//FUNCTION INITILIZATION
highest_custom(src, length) =>
    x = src
    for i = 0 to length
        if src[i] > x
            x := src[i]
    x
lowest_custom(src, length) => 
    x = src
    for i = 0 to length
        if src[i] < x
            x := src[i]
    x
rsilev(src, length, mult, sltp) =>
    sl = (100 - sltp) / 100
    tp = (100 + sltp) / 100
    var bool crossup = na
    var bool crossdown = na
    var float dir = na
    dir_change = ta.change(dir)
    var float BearGuy = 0
    BullGuy = ta.barssince(crossup or crossdown)
    if na(BullGuy)
        BearGuy += 1
    else
        BearGuy := BullGuy
    var float upper = na
    var float lower = na
    rsilower = ta.rsi(src, length)
    rsiupper = math.abs(ta.rsi(src, length) - 100)
    atr = ta.atr(length) / src
    lower := highest_custom(math.max(highest_custom(highest_custom(src, BearGuy) * (1 - (atr + ((1 / (rsilower) * mult)))), BearGuy), src * sl), BearGuy)
    upper := lowest_custom(math.min(lowest_custom(lowest_custom(src, BearGuy) * (1 + (atr + ((1 / (rsiupper) * mult)))), BearGuy), src * tp), BearGuy)
    var float thresh = na
    if na(thresh)
        thresh := lower
    if na(dir)
        dir := 1
    if crossdown
        dir := -1
    if crossup
        dir := 1
    if dir == 1
        thresh := lower
    if dir == -1
        thresh := upper
    crossup := ta.crossover(src, thresh)
    crossdown := ta.crossunder(src, thresh)
    thresh

rsiclose = rsilev(hclose, rsi_length, rsi_mult, sltp)

//PLOTTING
var color col = color.lime
if hclose > rsiclose
    col := color.lime
if hclose < rsiclose
    col := color.red
plot(rsiclose, linewidth = 2, color = col)

//STRATEGY
buy = ta.crossover(hclose, rsiclose)
sell = ta.crossunder(hclose, rsiclose)

if buy[lookback]
    strategy.entry("long", strategy.long)
if sell[lookback]
    strategy.entry("Short", strategy.short)