
এই কৌশলটি একটি ট্রেডিং সিস্টেম যা আরএসআই 2 সূচক এবং চলমান গড়ের সাথে সংযুক্ত। এটি মূলত ওভারসোল্ড অঞ্চলে আরএসআই সূচকের বিপরীত সিগন্যাল পর্যবেক্ষণ করে সম্ভাব্য বোল্ডিংয়ের সুযোগগুলি ধরার জন্য, এবং ট্রেডিংয়ের নির্ভুলতা বাড়ানোর জন্য প্রবণতা ফিল্টার হিসাবে চলমান গড়ের সাথে সংযুক্ত। কৌশলটি একটি স্থির প্রস্থান ব্যবস্থা গ্রহণ করে যা একটি অবস্থান রাখার পর পরিকল্পিত সময়কালের পরে স্বয়ংক্রিয়ভাবে স্থির হয়।
কৌশলটির মূল যুক্তিতে নিম্নলিখিত মূল উপাদানগুলি অন্তর্ভুক্ত রয়েছে:
এটি একটি কাঠামোগত, যুক্তিসঙ্গতভাবে সুস্পষ্ট ট্রেডিং কৌশল, যা RSI ওভারসোল্ড বিপরীতমুখী সংকেতগুলির সাথে সমান্তরাল প্রবণতা ফিল্টারিংয়ের মাধ্যমে বাজারের সুযোগগুলি ধরতে পারে। কৌশলটির সুবিধা হল যে প্যারামিটারগুলি নমনীয়, বায়ু নিয়ন্ত্রণ যুক্তিসঙ্গত, তবে ভুয়া ব্রেকিংয়ের ঝুঁকি এবং প্যারামিটার সংবেদনশীলতার বিষয়ে সতর্কতা অবলম্বন করা দরকার। প্রস্তাবিত অপ্টিমাইজেশন দিকনির্দেশের মাধ্যমে কৌশলটির আরও উন্নতির জন্য আরও অনেক জায়গা রয়েছে, যা বিভিন্ন বাজারের পরিবেশে এর অভিযোজনযোগ্যতা আরও বাড়িয়ে তুলতে পারে।
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("RSI 2 Strategy with Fixed Lines and Moving Average Filter", overlay=true)
// Input parameters
rsiPeriod = input.int(2, title="RSI Period", minval=1)
rsiBuyLevel = input.float(25, title="RSI Buy Level", minval=0, maxval=100)
maxBarsToHold = input.int(5, title="Max Candles to Hold", minval=1)
maPeriod = input.int(50, title="Moving Average Period", minval=1) // Moving Average Period
useMAFilter = input.bool(true, title="Use Moving Average Filter") // Enable/Disable MA Filter
// RSI and Moving Average calculation
rsi = ta.rsi(close, rsiPeriod)
ma = ta.sma(close, maPeriod)
// Moving Average filter conditions
maFilterCondition = useMAFilter ? close > ma : true // Condition: price above MA
// Buy conditions
rsiIncreasing = rsi > rsi[1] // Current RSI greater than previous RSI
buyCondition = rsi[1] < rsiBuyLevel and rsiIncreasing and strategy.position_size == 0 and maFilterCondition
// Variables for management
var int barsHeld = na // Counter for candles after purchase
var float buyPrice = na // Purchase price
// Buy action
if buyCondition and na(barsHeld)
strategy.entry("Buy", strategy.long)
barsHeld := 0
buyPrice := close
// Increment the candle counter after purchase
if not na(barsHeld)
barsHeld += 1
// Sell condition after the configured number of candles
sellCondition = barsHeld >= maxBarsToHold
if sellCondition
strategy.close("Buy")
// Reset variables after selling
barsHeld := na
buyPrice := na