এই কৌশলটি RSI সূচক ভিত্তিক একটি সহজ ট্রেডিং সিস্টেম ডিজাইন করে, যা RSI এর মাধ্যমে বাজারের প্রবণতার দিকনির্দেশ নির্ধারণ করতে পারে এবং একটি নির্দিষ্ট তারিখের পরিসরের মধ্যে স্বয়ংক্রিয় দীর্ঘ এবং সংক্ষিপ্ত অবস্থানগুলি বাস্তবায়ন করতে পারে।
এই কৌশলটি বাজারের প্রবণতা নির্ধারণের জন্য আরএসআই সূচক ব্যবহার করে এবং ওভারকপিং এবং ওভারসোল্ড জোন নিশ্চিত করার জন্য বোলিংজার ব্যান্ড ব্যবহার করে।
প্রথমত, আরএসআই মান গণনা করা হয়। বলিংজার ব্যান্ডের উপরের এবং নীচের ব্যান্ডগুলি চলমান গড় এবং আরএসআই এর স্ট্যান্ডার্ড বিচ্যুতির উপর ভিত্তি করে গণনা করা হয়। আরএসআই 0-1 এর মধ্যে ওঠানামা করে এবং বলিংজার ব্যান্ডগুলি স্ট্যান্ডার্ড বিচ্যুতির মাধ্যমে ওভারকোপড এবং ওভারসোল্ড অঞ্চলগুলি সনাক্ত করে। যখন আরএসআই উপরের ব্যান্ডের চেয়ে বেশি হয়, তখন এটি ওভারকোপড অঞ্চল, এবং যখন নীচের ব্যান্ডের চেয়ে কম হয়, তখন এটি ওভারসোল্ড অঞ্চল।
যখন আরএসআই নিম্ন থেকে উপরের ব্যান্ডে ভেঙে যায়, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন আরএসআই উপরের থেকে নিম্ন ব্যান্ডে ভেঙে যায়, তখন প্রবণতা অনুসরণ করার জন্য একটি বিক্রয় সংকেত উত্পন্ন হয়। বাজারে প্রবেশের পরে, নির্দিষ্ট তারিখের পরিসরের শেষে অবস্থানগুলি বন্ধ না হওয়া পর্যন্ত কোনও স্টপ লস বা লাভ গ্রহণ সেট করা হয় না।
কৌশলটি প্রবণতার দিকনির্দেশ নির্ধারণের জন্য আরএসআই এবং নির্দিষ্ট ট্রেডিং সুযোগগুলি সনাক্ত করার জন্য বোলিংজার ব্যান্ডগুলিকে সহজ এবং কার্যকরভাবে ব্যবহার করে। তারিখের পরিসীমা নির্ধারণ করে অপ্রয়োজনীয় ঝুঁকি এড়ানো যায়।
অপ্টিমাইজেশান নির্দেশাবলীঃ
সংক্ষেপে, এটি একটি খুব সহজ এবং সরাসরি প্রবণতা অনুসরণকারী কৌশল। প্রবণতা নির্ধারণের জন্য আরএসআই ব্যবহার করে, বোলিংজার ব্যান্ডগুলি সংকেতগুলি ফিল্টার করতে এবং ট্রেডিং তারিখের পরিসীমা সংজ্ঞায়িত করতে, কার্যকরভাবে প্রবণতা অনুসরণ করতে এবং ঝুঁকিগুলি নিয়ন্ত্রণ করতে পারে। তবে কৌশলটি আরও অনুকূলিত করা যেতে পারে। এটি সহজ এবং কার্যকর রাখার সময়, স্টপ লস, প্যারামিটার অপ্টিমাইজেশন এবং সংকেত ফিল্টারিংয়ের মতো পদ্ধতি যুক্ত করা যেতে পারে যাতে এটি লাইভ ট্রেডিংয়ের জন্য আরও উপযুক্ত হয়।
/*backtest start: 2022-10-19 00:00:00 end: 2023-10-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Gidra //2018 //@version=2 strategy(title = "Gidra's RSI or MFI Strategy v0.1", shorttitle = "Gidra's RSI or MFI v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 1) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") src = input(close, title="source") lengthRSI = input(14, title="RSI or MFI length") // RSI %B useRSI = input(true, title="use RSI or MFI") fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day") //MFI upper = sum(volume * (change(src) <= 0 ? 0 : src), lengthRSI) lower = sum(volume * (change(src) >= 0 ? 0 : src), lengthRSI) mf = rsi(upper, lower) //RSI rsi = useRSI?rsi(src, lengthRSI): mf // %B length = input(50, minval=1, title="BB length") mult = input(1.618, minval=0.001, maxval=50) basis = sma(rsi, length) dev = mult * stdev(rsi, length) upperr = basis + dev lowerr = basis - dev bbr = (rsi - lowerr)/(upperr - lowerr) plot(bbr, color=black, transp=0, linewidth=2) // band1 = hline(1, color=white, linestyle=dashed) // band0 = hline(0, color=white, linestyle=dashed) // fill(band1, band0, color=teal) hline(0.5, color=white) //Signals up = bbr >= 0 and bbr[1] < 0 dn = bbr <= 1 and bbr[1] > 1 //exit = ((bbr[1] < 0.5 and bbr >= 0.5) or (bbr[1] > 0.5 and bbr <= 0.5)) lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1] //Trading if up strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59)// or exit strategy.close_all()