RSI এবং Stochastic RSI এর উপর ভিত্তি করে ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2024-02-18 16:13:50 অবশেষে সংশোধন করুন: 2024-02-18 16:13:50
অনুলিপি: 1 ক্লিকের সংখ্যা: 711
1
ফোকাস
1617
অনুসারী

RSI এবং Stochastic RSI এর উপর ভিত্তি করে ট্রেডিং কৌশল

ওভারভিউ

এই ট্রেডিং কৌশলটি ট্রেডিং সিগন্যাল তৈরির জন্য দুটি প্রযুক্তিগত সূচক ব্যবহার করে, একটি তুলনামূলকভাবে দুর্বল সূচক (RSI) এবং একটি এলোমেলো তুলনামূলকভাবে দুর্বল সূচক (Stochastic RSI) । এই কৌশলটি ট্রেডিং সিগন্যালের নির্ভরযোগ্যতা বাড়ানোর জন্য প্রবণতা নিশ্চিত করার জন্য অতিরিক্ত উচ্চতর সময় ফ্রেমের ক্রিপ্টোকারেন্সির দামের গতি ব্যবহার করে।

কৌশল নাম

মাল্টি টাইমফ্রেম আরএসআই-এসআরএসআই ট্রেডিং কৌশল

কৌশল নীতি

এই কৌশলটি আরএসআই সূচকের মানের উচ্চ বা নিম্নের উপর ভিত্তি করে ওভার-বিক্রয় ওভার-বিক্রয় ঘটনাটি বিচার করে। আরএসআই 30 এর নীচে ওভার-বিক্রয় সংকেত এবং 70 এর উপরে ওভার-বিক্রয় সংকেত। স্টোক্যাস্টিক আরএসআই সূচকটি আরএসআই সূচকের নিজস্ব ওঠানামা পর্যবেক্ষণ করে। স্টোক্যাস্টিক আরএসআই 5 এর নীচে ওভার-বিক্রয় সংকেত এবং 50 এর উপরে ওভার-বিক্রয় সংকেত।

কৌশলটি একই সাথে একটি উচ্চতর সময় ফ্রেমের (যেমন ঘূর্ণিপথ) ক্রিপ্টোকারেন্সির দামের গতিপথের সাথে যুক্ত। কেবলমাত্র যখন উচ্চতর সময় ফ্রেমের RSI হ্রাসের চেয়ে বেশি হয় (যেমন 45), তখনই একটি ক্রয়-বিক্রয় সংকেত তৈরি হয়। এই সেটিংটি সামগ্রিকভাবে নেমে যাওয়ার প্রবণতার সময় উপস্থিত হওয়া অ-অব্যাহত ওভারসেল সংকেতগুলি ফিল্টার করতে পারে।

ক্রয় এবং বিক্রয় সংকেত ট্রিগার করার পরে, একটি নির্দিষ্ট সময়ের পরে (যেমন 8 টি কে লাইন) নিশ্চিত হওয়া দরকার, যাতে বিভ্রান্তিকর সংকেত তৈরি না হয়।

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

  • আরএসআই ব্যবহার করে ক্লাসিক টেকনিক্যাল অ্যানালাইসিস ওভারবয় ওভারসোলিংয়ের মূল্যায়ন করে
  • স্টোক্যাস্টিক আরএসআই সূচক সহ আরএসআই নিজেই বিপরীত সংকেত সনাক্ত করে
  • মাল্টি টাইম ফ্রেম ফিল্টারিং এর মাধ্যমে বিভ্রান্তিকর সংকেত প্রয়োগ করে সংকেতের গুণমান উন্নত করা

কৌশলগত ঝুঁকি ও সমাধান

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

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

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

সারসংক্ষেপ

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

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

//@version=5
strategy("RSI and Stochatic Strategy", overlay=true, use_bar_magnifier = false)


/////// Inputs ///////////////

// RSI and SRSI
rsiLength = input(14, title="RSI Length") 
stochLength = input(14, title="Stochastic Length")
kSmooth = input(3, title="K Smooth")
dSmooth = input(3, title="D Smooth")


//////// thresholds ///////////////
st_low = input(5, title="Low SRSI") // stochastic RSI low -- prepare to sell
st_hi = input(50, title="High SRSI") // stochastic RSI high -- prepare to buy
diff = input(5, title="difference") // minimum change in RSI
// inval_diff = input(12, title="difference") // invalidation difference: change in the oposite direction that invalidates rsi falling/rising
rsi_low = input(30, title="Low RSI") // RSI considered low
rsi_hi = input(60, title="High RSI") // RSI considered high
rsi_ht_hi = input(45, title="High higher time frame RSI") // RSI in higher time frame considered high


/// buy trigger duration 
tr_dur = input(8, title="Trigger duration")
low_dur = input(20, title="Monitoring last low")


///////////////// Higher time frame trend ///////////////////
// higher time frame resolution
res2 = input.timeframe("W", title="Higher time-frame")
// Input for the ticker symbol, default is an empty string
// For instance we could monitor BTC higher time frame trend
symbol = input("BTC_USDT:swap", "Input Ticker (leave empty for current)")

// Determine the symbol to use
inputSymbol = symbol == "" ? syminfo.tickerid : symbol
//////////////////////////////////////////////////////////

// Calculate RSI //
rsi = ta.rsi(close, rsiLength)

// Calculate Stochastic RSI //
rsiLowest = ta.lowest(rsi, stochLength)
rsiHighest = ta.highest(rsi, stochLength)
stochRsi = 100 * (rsi - rsiLowest) / (rsiHighest - rsiLowest)

// Apply smoothing
K = ta.sma(stochRsi, kSmooth)
D = ta.sma(K, dSmooth)

// Higher time Frame RSI
cl2 = request.security(inputSymbol, res2, close)
rsi2 = ta.rsi(cl2, 14)

// SRSI BUY/SELL signals 
sell_stoch = (ta.lowest(K, tr_dur) < st_low) or (ta.highest(rsi, tr_dur) < rsi_low)
buy_stoch = ((ta.lowest(K, tr_dur) > st_hi) or (ta.lowest(rsi, tr_dur) > rsi_hi)) and (rsi2 > rsi_ht_hi)

 // valitation / invalidation sell signal
ll = ta.barssince(not sell_stoch)+1
sell_validation = (ta.highest(rsi, ll)>rsi[ll]+diff and rsi < rsi[ll]) or (rsi < rsi[ll]-diff)

// valitation / invalidation buy signal
llb = ta.barssince(not buy_stoch)+1
buy_validation = (ta.lowest(rsi, llb)<rsi[llb]-diff and rsi > rsi[llb]) or (rsi > rsi_hi and rsi - rsi[tr_dur] > 0)

sell_signal = sell_stoch and sell_validation
buy_signal = buy_stoch and buy_validation 

// Define the start date for the strategy
startYear = input(2019, "Start Year")
startMonth = input(1, "Start Month")
startDay = input(1, "Start Day")

// Convert the start date to Unix time
startTime = timestamp(startYear, startMonth, startDay, 00, 00)

// Define the end date for the strategy
endYear = input(2030, "End Year")
endMonth = input(1, "End Month")
endDay = input(1, "End Day")

// Convert the end date to Unix time
endTime = timestamp(endYear, endMonth, endDay, 00, 00)


if true
    if buy_signal
        strategy.entry("buy", strategy.long, comment = "Buy")
    if sell_signal
        strategy.close("buy", "Sell")