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


সৃষ্টির তারিখ: 2024-01-24 11:35:19 অবশেষে সংশোধন করুন: 2024-01-24 11:35:19
অনুলিপি: 0 ক্লিকের সংখ্যা: 770
1
ফোকাস
1617
অনুসারী

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

ওভারভিউ

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

কৌশল নীতি

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

এই কৌশলটি দুই ধরনের ক্রয়-বিক্রয় লজিক প্রদান করেঃ

  1. RSI-এ EMA-এর সময় কেনা
  2. RSI EMA এর উপরে এবং ওভার-বই লাইনের উপরে থাকলে কিনুন

বাজার পরিস্থিতির উপর ভিত্তি করে কোন ক্রয় লজিকটি ব্যবহার করা হবে তা বেছে নেওয়া যেতে পারে।

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

এই কৌশলটি RSI এবং EMA-র লিনিয়ার রিটার্নের সুবিধাগুলিকে একত্রিত করে, যা কার্যকরভাবে দামের আংশিক গোলমাল মুছে ফেলতে পারে এবং আরও নির্ভরযোগ্য ট্রেডিং সংকেত তৈরি করতে পারে।

RSI-এর লিনিয়ার রিভার্সন ট্রেন্ডকে আরও ভালভাবে প্রতিফলিত করে এবং EMA-এর সাহায্যে টার্নিং পয়েন্টগুলি খুঁজে পাওয়া যায়। এই দুইয়ের সমন্বয় ট্রেন্ডের মধ্যে রিভার্সন সুযোগ খুঁজতে সাহায্য করে, যার ফলে Mean Reversion কৌশল তৈরি হয়।

এই কৌশলটি দুটি ক্রয়-বিক্রয় লজিকের বিকল্প সরবরাহ করে, যা বাজারের পর্যায়ে আরও নমনীয়ভাবে সামঞ্জস্য করা যায়। উদাহরণস্বরূপ, প্রবণতা স্পষ্ট হলে প্রথম লজিকটি বেছে নেওয়া যেতে পারে এবং ঝড়ের সময় দ্বিতীয়টি বেছে নেওয়া যেতে পারে।

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

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

এছাড়াও, RSI এবং EMA-র মতো সূচকগুলি কিছুটা পিছিয়ে রয়েছে, যার ফলে ক্রয় এবং বিক্রয় কিছুটা বিলম্বিত হতে পারে, এবং বিপর্যয়গুলি পুরোপুরি ধরা যায় না। এটি একটি নির্দিষ্ট পরিমাণে বাস্তব ঝুঁকি নিয়ে আসে।

ঝুঁকি হ্রাস করার জন্য, RSI এবং EMA এর দৈর্ঘ্য প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করা যেতে পারে, উভয়ের মধ্যে সমন্বয়কে অনুকূলিত করা যায়। এই বৈদেশিক মুদ্রার ইউনিটটিও যথাযথভাবে নিয়ন্ত্রণ করা উচিত, যাতে একক ক্ষতির পরিমাণ বেশি না হয়।

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

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

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*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)