RSI বিপরীত ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-০৯-২৮ ১৬ঃ০৯ঃ৩৯
ট্যাগঃ

সারসংক্ষেপ

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

কৌশলগত যুক্তি

  1. ১৪ পেরিওড আরএসআই গণনা করুন এবং ওভারকুপ লাইন ৬৭ এবং ওভারসোল্ড লাইন ৪৪ এ সেট করুন।

  2. যখন আরএসআই ওভারবোর্ড লাইনের উপরে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উৎপন্ন হয়। যখন আরএসআই ওভারবোর্ড লাইনের নীচে অতিক্রম করে, তখন একটি ক্রয় সংকেত উৎপন্ন হয়।

  3. চলমান গড় ফিল্টার যুক্ত করুন। বিক্রয় সংকেত শুধুমাত্র যখন বন্ধ হয় তখন ঘটে পূর্ববর্তী দিনের MA এর নীচে; ক্রয় সংকেত শুধুমাত্র যখন বন্ধ হয় তখন ঘটে পূর্ববর্তী দিনের MA এর উপরে।

  4. মুনাফা গ্রহণ এবং স্টপ-লস লজিক অন্তর্ভুক্ত করুন। স্থির পয়েন্ট বা আরএসআই ভিত্তিক প্রস্থান ব্যবহার করা যেতে পারে।

সুবিধা বিশ্লেষণ

  1. আরএসআই ওভারকুপ/ওভারসোল্ড লেভেল ব্যবহার করে স্বল্পমেয়াদী বিপরীতমুখী সুযোগগুলি ক্যাপচার করে।

  2. মুভিং মিডিয়ার ফিল্টার ট্রেডিংয়ের প্রবণতার বিরুদ্ধে ট্রেডিং এড়ায়।

  3. মুনাফা গ্রহণ এবং স্টপ লস একক ট্রেড ক্ষতি নিয়ন্ত্রণ করে।

  4. প্রবণতা পাল্টানোর সুযোগগুলোকে তাড়াতাড়ি ধরতে পারে।

ঝুঁকি এবং সমাধান

  1. RSI বিলম্ব মিথ্যা সংকেত সৃষ্টি করতে পারে। পরামিতি সমন্বয় বা অন্যান্য সূচক সঙ্গে একত্রিত।

  2. স্থির স্টপ লস খুব প্রশস্ত বা খুব সংকীর্ণ হতে পারে।

  3. ফিক্সড মুনাফা গ্রহণ খুব তাড়াতাড়ি বা খুব ছোট লক্ষ্যমাত্রা থেকে বেরিয়ে আসতে পারে। আরএসআই বা এটিআর ভিত্তিক প্রস্থান বিবেচনা করুন।

  4. বিভিন্ন বাজারে ফিল্টার করতে ব্যর্থ হয়, যার ফলে অতিরিক্ত ট্রেডিং এবং ক্ষতি হয়। আরএসআই পরামিতিগুলি সামঞ্জস্য করুন বা ফিল্টার যুক্ত করুন।

অপ্টিমাইজেশান নির্দেশাবলী

  1. বিভিন্ন সময়সীমার উপর RSI পরামিতি পরীক্ষা করুন।

  2. অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয় RSI স্তরগুলি সামঞ্জস্য করুন।

  3. বিভিন্ন চলমান গড় বা অন্যান্য ফিল্টার চেষ্টা করুন।

  4. স্থির এবং গতিশীল মুনাফা লক্ষ্যমাত্রা/স্টপ পরীক্ষা করুন।

  5. বাজারের অস্থিরতার সাথে মানিয়ে নিতে মুনাফা / স্টপ মানগুলি অপ্টিমাইজ করুন।

  6. বিভিন্ন বাজারে ঝাঁকুনি এড়াতে ফিল্টার যুক্ত করুন।

  7. সিগন্যালের গুণমান উন্নত করার জন্য একাধিক টাইমফ্রেম কনফ্লুয়েন্স বিবেচনা করুন।

সংক্ষিপ্তসার

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


/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//© профешинил хомячело
//@version = 4

strategy("RSI Strategy Professional Хомячело", overlay=false)
length = input( 14 )
overSold = input( 44 )
overBought = input( 67 )
price = open
rsi = rsi(price, length)
band1 = hline(overSold, "overSold12", color=#C0C0C0)
band0 = hline(overBought, "overBought12", color=#C0C0C0)
plot(rsi, "RSI", color=color.red)
fill(band1, band0, color=color.black, transp=90, title="Background")
src = close
a = sma(src, 1)
aaa = strategy.opentrades + 1

n = input(defval = 0.0576923077, title = "AvgPrice - n")
//n = 0.0576923077

buysignal = crossover(rsi, overSold) and (a < (strategy.position_avg_price - n) or strategy.opentrades == 0)
sellsignal = crossunder(rsi, overBought) and (a > (strategy.position_avg_price + n) or strategy.opentrades == 0)


// crossover(rsi, overSold)
// crossunder(rsi, overBought)
if (not na(rsi))
    if(buysignal)
        strategy.entry("LONG", strategy.long, comment = tostring(a) + "\n(" + tostring(aaa) + ")")
        n += 1000
    if(sellsignal)
        strategy.entry("SHORT", strategy.short, comment = tostring(a) + "\n(" + tostring(aaa) + ")")
        n += 1000

//лонги орні       
    if(rsi < 15 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
        strategy.entry("LONG", strategy.long, comment = "ЙОБАНИЙ НАСРАВ ТА БЕРИ ЛОНГ НА ВСЬО ШО Є НАХУЙ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
    if(rsi < 20 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
        strategy.entry("LONG", strategy.long, comment = "ЛОНГ НА ВСЮ КОТЛЄТУ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
//шорти орні
    if(rsi > 85 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
        strategy.entry("SHORT", strategy.short, comment = "ЙОБАНИЙ НАСРАВ ТА БЕРИ ШОРТ НА ВСЬО ШО Є НАХУЙ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
    if(rsi > 80 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
        strategy.entry("SHORT", strategy.short, comment = "ШОРТ НА ВСЮ КОТЛЄТУ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")


//стоп-лосс і ціль

//rsi
rsion = input(defval = false, title = "Тейк-профіт по RSI")
rcl = input(defval = 73.0, title = "RSI тейк по лонгу")
rcs = input(defval = 44.0, title = "RSI тейк по шорту")
possize = input(defval = 250.0, title = "Маржа")
posp = input(defval = 3.0, title = "Плече")

//tick
ut = input(defval = false, title = "Тейк-профіт")
tar = input(defval = 4500.0, title = "Тейк-профіт у тіках")
us = input(defval = false, title = "Стоп-лосс")
stop = input(defval = 0.0, title = "Стоп-лосс у тіках")
tar:=tar/syminfo.mintick
stop:=stop/syminfo.mintick

if(ut==true and us==false)
    strategy.exit(id="LX", from_entry = "LONG", profit = tar, comment = "ТейкL")
    strategy.exit(id="SX", from_entry = "SHORT", profit = tar, comment = "ТейкS")
if(us==true and ut==false)
    strategy.exit(id="LX", from_entry = "LONG", loss = stop, comment = "СтопL")
    strategy.exit(id="SX", from_entry = "SHORT", loss = stop, comment = "СтопS")
    
if(ut==true and us==true)
    strategy.exit(id="LX", from_entry = "LONG", profit = tar, loss = stop, comment ="Тейк/СтопL")
    strategy.exit(id="SX", from_entry = "SHORT", profit = tar, loss = stop, comment ="Тейк/СтопS")
    
//закриття по rsi
if(rsion == 1 )
    pr = round(((a / strategy.position_avg_price - 1) * possize * posp), 2)
    ppr = round(((a / strategy.position_avg_price - 1) * 100 * posp), 2)
    spr = round((1 - (a / strategy.position_avg_price)) * possize * posp, 2)
    sppr = round((100 - (a / strategy.position_avg_price * 100)) * posp, 2)
    
    if(rsi > rcl)
        strategy.close(id="LONG", comment = "LT\n" + tostring(ppr) + "%\n" + tostring(pr) + "$\n" + tostring(a))
    if(rsi < rcs)
        strategy.close(id="SHORT", comment = "ST\n" + tostring(sppr) + "%\n" + tostring(spr) + "$\n" + tostring(a))

আরো