RSI এবং MA ক্রসওভারের জন্য ট্রেন্ড-অনুসরণকারী কৌশল


সৃষ্টির তারিখ: 2024-02-20 15:31:15 অবশেষে সংশোধন করুন: 2024-02-20 15:31:15
অনুলিপি: 1 ক্লিকের সংখ্যা: 850
1
ফোকাস
1617
অনুসারী

RSI এবং MA ক্রসওভারের জন্য ট্রেন্ড-অনুসরণকারী কৌশল

ওভারভিউ

এই কৌশলটি বাজারের প্রবণতা এবং প্রবেশের সময় নির্ধারণের জন্য আরএসআই সূচককে দুটি পৃথক পিরিয়ডের এমএ গড়ের সাথে ক্রস করে। এই কৌশলটি কেবলমাত্র আরএসআই তার নিজস্ব 26-পিরিয়ড গড়ের চেয়ে বেশি হলেই অতিরিক্ত কাজ করে এবং ঝুঁকি নিয়ন্ত্রণের জন্য যখন আরএসআই তার নিজস্ব 26-পিরিয়ড গড়ের চেয়ে কম থাকে তখন খালি থাকে।

কৌশল নীতি

এই কৌশলটি 12 পিরিয়ড এবং 26 পিরিয়ডের দুটি এমএ গড় লাইন ব্যবহার করে। যখন 12 পিরিয়ডের দ্রুত লাইনটি 26 পিরিয়ডের ধীর লাইনটি অতিক্রম করে, তখন ট্রেডটি একটি উচ্চতর প্রবণতায় প্রবেশ করে বলে মনে করা হয়; যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে, তখন ট্রেডটি একটি নিম্ন প্রবণতায় প্রবেশ করে বলে মনে করা হয়।

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

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

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

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

স্টপ লস সেট না করার কারণে, যদি ভুল বিচার করা হয় তবে ক্ষতি বাড়তে পারে। যদি বাজারটি ব্যাপকভাবে উঁচু হয়ে যায় তবে এটি আরও বড় ক্ষতির কারণ হতে পারে। এছাড়াও, আরএসআই ফিল্টারিংয়ের শর্তগুলি যদি ভুলভাবে সেট করা হয় তবে এটি প্রবেশের ভাল সময়ও হারাতে পারে।

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

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

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

  1. বিভিন্ন পিরিয়ডের এমএ গড়রেখার সমন্বয় পরীক্ষা করুন এবং গড়রেখার প্যারামিটারগুলি সন্ধান করুন যা বর্তমান বাজারের বৈশিষ্ট্যগুলির সাথে আরও মিলিত হয়।

  2. আরএসআই এর বিভিন্ন পিরিয়ড প্যারামিটার, বিভিন্ন ফিল্টারিং শর্ত, প্রবেশের সময়কে অনুকূলিতকরণ পরীক্ষা করুন।

  3. অন্যান্য সূচক বা ফিল্টারিং শর্ত যুক্ত করুন, সিস্টেমের স্থিতিশীলতা উন্নত করুন। যেমন যোগ করা পরিমাণের সূচক, লেনদেনের পরিমাণ সূচক ইত্যাদি যা প্রবণতা বিচার সম্পর্কিত সূচক।

  4. স্টপ স্ট্র্যাটেজি অপ্টিমাইজ করুন, ট্রেন্ড অনুসরণ করার সময় ঝুঁকি নিয়ন্ত্রণ করুন। স্টপ স্ট্র্যাটেজি যেমন ট্র্যাকিং স্টপ, শতাংশ স্টপ, গতিশীল স্টপ পরীক্ষা করা যেতে পারে।

সারসংক্ষেপ

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

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

//@version=2

strategy(title = "EMA Cross Strategy", shorttitle = "EMA Cross",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(false,"UseStopLoss")
//rsiLong = true
rsi1 = rsi(close, 14)

window() => true

stopLoss = input(20, title = "Stop loss percentage(0.1%)")
//stopLoss = input(200, title = "Stop loss percentage(0.1%)")

maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 12, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open, title = "Slow MA Source")
maSlowLength   = input(defval = 26, title = "Slow MA Period", minval = 1)

maFast = ema(maFastSource, maFastLength)
maSlow = ema(maSlowSource, maSlowLength)

//12 and 26=9%; 3 and8=2%; 26 and 55=2%; when selling on a cross under
//maFastRSI = ema(rsi1, 12)
//maSlowRSI = ema(rsi1, 26)

fast = plot(maFast, title = "Fast MA", color = #7a8598, linewidth = 2, style = line, transp = 50)
slow = plot(maSlow, title = "Slow MA", color = #e08937, linewidth = 2, style = line, transp = 50)


longEMA = crossover(maFast, maSlow)
exitLong = crossunder(maFast, maSlow) // 5% in 2018
//exitLong = crossunder(close, maFast) // 15% in 2018
//exitLong = crossunder(rsi1, maFastRSI) // 13%

shortEMA = crossover(maSlow, maFast)
exitShort = crossover(maFast, maSlow)

//if (rsi1 < ema(rsi1,7))
//rsiLong = false

//if (longEMA and (rsi1 >= highest(rsi1,10)))
//if (longEMA)
if (longEMA and (rsi1 > ema(rsi1,26)))  //RSI ema values optimal from 19 to 35
    strategy.entry("LongId", strategy.long, when=window())

//strategy.close_all(when = rsi1 > 60) // 80=26%, 90=n/a, 70=15%, 60=16% long only
//strategy.close_all(when = (shortEMA and (rsi1 <= ema(rsi1,26)))) //10% gain in 2018 long only
//strategy.close_all(when = (rsi1 <= ema(rsi1,120))) //26=17% 14=2% 42=15%
//strategy.close_all(when = (shortEMA)) // 5% gain in 2018 long only
//strategy.close_all(when = exitLong) 

//if (shortEMA and not(rsiLong))
//if (shortEMA)
if (shortEMA and (rsi1 <= ema(rsi1,26)))
    strategy.entry("ShortId", strategy.short, when=window())

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)