লিনিয়ার রিগ্রেশন আরএসআই-র উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

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

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

কৌশলটি প্রথমে একটি 200-পরিয়ড লিনিয়ার রিগ্রেশন গণনা করে, তারপরে লিনিয়ার রিগ্রেশন ফলাফলের ভিত্তিতে একটি 21-পরিয়ড আরএসআই গণনা করে। তারপরে, একটি 50-পরিয়ড ইএমএ গণনা করা হয়। যখন আরএসআই ইএমএর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন আরএসআই ইএমএর নীচে অতিক্রম করে, তখন অবস্থান বন্ধ করার জন্য একটি বিক্রয় সংকেত ট্রিগার করা হয়।

কৌশলটি দুই ধরনের ক্রয় যুক্তি প্রদান করেঃ

  1. যখন RSI EMA এর উপরে ক্রস করে তখন কিনুন
  2. যখন RSI EMA এর উপরে এবং অতিরিক্ত ক্রয়ের লাইনের উপরে থাকে তখন কিনুন

বাজারের অবস্থার উপর ভিত্তি করে উপযুক্ত ক্রয় যুক্তি নির্বাচন করা যেতে পারে।

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

এই কৌশলটি রৈখিক রিগ্রেশন আরএসআই এবং ইএমএর উভয় শক্তিকে একত্রিত করে, যা কার্যকরভাবে কিছু মূল্য গোলমাল ফিল্টার করে এবং আরও নির্ভরযোগ্য ট্রেডিং সংকেত তৈরি করে।

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

কৌশলটি বিভিন্ন বাজারের পর্যায়ে অভিযোজন করার জন্য আরও নমনীয়তার জন্য দুটি ঐচ্ছিক ক্রয় যুক্তি সরবরাহ করে। উদাহরণস্বরূপ, প্রথম যুক্তিটি শক্তিশালী প্রবণতাগুলিতে ব্যবহার করা যেতে পারে, যখন দ্বিতীয় যুক্তিটি বিভিন্ন বাজারের জন্য আরও উপযুক্ত।

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

এই কৌশলটির মূল ঝুঁকি হল RSI এবং EMA এর মধ্যে সম্পর্ক পরিবর্তন করা, যা ভুল ট্রেডিং সংকেতের দিকে পরিচালিত করতে পারে।

এছাড়া, সূচক হিসেবে আরএসআই এবং ইএমএর বিলম্বিত প্রকৃতি প্রবেশ এবং প্রস্থানের ক্ষেত্রে কিছু বিলম্বের কারণ হতে পারে, যা পাল্টা পয়েন্টগুলি পুরোপুরি ধরতে ব্যর্থ হয়। এটি কিছু পরিমাণে ব্যবহারিক ঝুঁকি প্রবর্তন করে।

ঝুঁকি হ্রাস করার জন্য, RSI এবং EMA এর দৈর্ঘ্যের মতো পরামিতিগুলি উভয়ের মধ্যে আরও ভাল সমন্বয়ের জন্য অনুকূলিত করা যেতে পারে। এছাড়াও, একক ব্যবসায়ের ক্ষতি সীমাবদ্ধ করতে সঠিক অবস্থানের আকার প্রয়োজন।

উন্নতির দিকনির্দেশ

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

  1. সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে রৈখিক রিগ্রেশন আরএসআই এবং ইএমএর দৈর্ঘ্য অপ্টিমাইজ করুন
  2. সিগন্যালের গুণমান বাড়ানোর জন্য এমএসিডি, বোলিংজার ব্যান্ড ইত্যাদির মতো অন্যান্য সূচক যুক্ত করুন
  3. পজিশনের আকারকে সামঞ্জস্য করার জন্য অস্থিরতা পরিমাপ অন্তর্ভুক্ত করুন
  4. স্বয়ংক্রিয়ভাবে পরামিতি অপ্টিমাইজ করার জন্য মেশিন লার্নিং কৌশল ব্যবহার করুন

সিদ্ধান্ত

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


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Linear RSI")

startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() => true

//inputs
length = input(defval=200, minval=1, title="LR length")
length2 = input(defval=21, minval=1, title="RSI length")
ema_fast = input(defval=50, minval=1, title="EMA")
lag = 0

overBought = input(50)
overSold = input(50)


//rsi
src = close
Lr = linreg(src, length, lag)
rsi = rsi(Lr, length2)
ema = ema(rsi, ema_fast)

plot(rsi, color = rsi > overBought ? color.green : rsi < overSold ? color.red : color.silver)
plot(overBought, color=color.purple)
plot(overSold, color=color.purple)
plot(ema, color=color.blue)

first_type = input(true, title="Use first logic?")
second_type =  input(false, title="Use second logic?")

long_condition = (first_type ? crossover(rsi, ema) and _testPeriod() : false) or (second_type ? rsi > ema and rsi > overBought and _testPeriod() : false)
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition = crossunder(rsi, ema)
strategy.close('BUY', when=short_condition)

আরো