লিনিয়ার রিগ্রেশন এবং ডবল মুভিং এভারেজ স্বল্পমেয়াদী কৌশল


সৃষ্টির তারিখ: 2024-01-26 12:33:14 অবশেষে সংশোধন করুন: 2024-01-26 12:33:14
অনুলিপি: 0 ক্লিকের সংখ্যা: 689
1
ফোকাস
1617
অনুসারী

লিনিয়ার রিগ্রেশন এবং ডবল মুভিং এভারেজ স্বল্পমেয়াদী কৌশল

ওভারভিউ

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

কৌশল নীতি

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

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

বিশেষ করে, কৌশলটিতে নিম্নলিখিত বিষয়গুলি অন্তর্ভুক্ত রয়েছেঃ

  1. রেলের উপর এবং নিচে লিনিয়ার রিগ্রেশন গণনা
  2. দ্বি-সূচক চলমান গড় গণনা করুন
  3. যখন দাম উপরের থেকে নিচে চলে যায় এবং দ্বি-সূচকীয় চলমান গড় দামের চেয়ে বেশি হয় তখন একটি ফাঁকা অবস্থান স্থাপন করা
  4. যখন দামগুলি আবার ট্র্যাকে উঠে যায় বা দ্বি-সূচকীয় চলমান গড়ের উপরে থাকে, তখন খালি অবস্থানের পজিশনটি সরিয়ে ফেলুন

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

ঐতিহ্যগত মুভিং এভারেজ এবং অন্যান্য সূচকগুলির তুলনায় এই কৌশলটির কিছু সুবিধা রয়েছেঃ

  1. লিনিয়ার রিগ্রেশন সূচক মূল্যের পরিবর্তনগুলিকে আরও দ্রুত ধরতে পারে এবং স্টকিংয়ের সংকেত হিসাবে আরও কার্যকর
  2. ডাবল ইন্ডিকেটর মুভিং এভারেজ ট্রেন্ডের প্রতি আরও সংবেদনশীল, যাতে ভুয়া ব্রেক এড়ানো যায়
  3. ডাবল সূচক এবং শর্তাবলীর সংমিশ্রণ কিছু শব্দকে ফিল্টার করে এবং ট্রেডিংকে আরও স্থিতিশীল করে তোলে

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

এই কৌশলটির কিছু ঝুঁকি রয়েছে যা সম্পর্কে সতর্ক থাকা দরকারঃ

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

এই ঝুঁকির জন্য, আমরা প্যারামিটার অপ্টিমাইজেশান, কঠোরভাবে ক্ষতি বন্ধ এবং উপযুক্তভাবে বিরতি প্রশস্ত করার পদ্ধতি ব্যবহার করে সমাধান করতে পারি।

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

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

  1. সর্বোত্তম প্যারামিটার সমন্বয় খুঁজতে লিনিয়ার রিগ্রেশন চক্র এবং দ্বি-সূচক চলমান গড় চক্রের অপ্টিমাইজেশন
  2. দামের অল্প পরিমাণে বিপর্যয় এড়ানোর জন্য মূল্যের অস্থিরতার মাত্রা যোগ করুন
  3. ব্রেকথ্রু কার্যকারিতা নিশ্চিত করার জন্য অতিরিক্ত শর্ত, যেমন লেনদেনের পরিমাণ বৃদ্ধি
  4. স্টপ লস লেভেল সেট করুন
  5. নির্দিষ্ট জাতের জন্য সমন্বয় প্যারামিটার

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy('LR&SSL_Short', overlay=true)
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(9999,1,1,0,0)
_testPeriod() => true

len = input(title="Period", defval=89)
smaHigh = linreg(high, len, 0)
smaLow = linreg(low, len, -1)
Hlv = 0.0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)



length = input(200, title="DEMA") 
d1 = ema(close, length)                                               
d2 = 2 * d1 - ema(d1, length)                                         
trendColour = d2 > d1 ? #AAFFAA : #FFAAAA 
dema=sma(d2,length) 

turnGreen = d2 > d1 and d2[1] <= d1[1]  
turnRed   = d2 <= d1 and d2[1] > d1[1]  

up =turnGreen 
down=turnRed 
  
plotshape(down, title="down", style=shape.triangledown,location=location.abovebar, color=color.red, transp=0, size=size.small) 
plotshape(up,  title="up", style=shape.triangleup,location=location.belowbar, color=color.green, transp=0, size=size.small) 
plot(dema, color = trendColour,linewidth=3 ,transp = 0)
bgcolor(close > dema ? color.green : color.red)

strategy.entry("short", strategy.short, when= crossunder(sslUp, sslDown) and dema > close and _testPeriod())
strategy.close("short", when = crossover(sslUp, sslDown) or crossover(close, dema))