দীর্ঘ-স্বল্প রৈখিক রিগ্রেশন ক্রসওভার কৌশল

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

img

সারসংক্ষেপ

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

কৌশলগত নীতি

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

কৌশল দুটি সংকেত সংজ্ঞায়িত করেঃ

  1. লং সিগন্যালঃ যখন পূর্বাভাস মূল্য বর্তমান মূল্যের উপরে অতিক্রম করে তখন ট্রিগার হয়
  2. সংক্ষিপ্ত সংকেতঃ যখন পূর্বাভাস মূল্য বর্তমান মূল্যের নীচে ক্রস

যখন লং সিগন্যাল প্রদর্শিত হয়, তখন কৌশলটি একটি লং পজিশন খোলে; যখন শর্ট সিগন্যাল প্রদর্শিত হয়, তখন এটি পজিশনটি বন্ধ করে দেয়।

কৌশলটির মূল ধাপগুলো হল:

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

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

লং-কর্ট লিনিয়ার রিগ্রেশন ক্রসওভার কৌশল নিম্নলিখিত সুবিধাগুলি রয়েছেঃ

  1. সহজ এবং কার্যকরঃ কৌশলটির যুক্তি স্পষ্ট এবং বাস্তবায়ন করা সহজ, এবং এটি মূল্যের রৈখিক প্রবণতা ক্যাপচার করতে পারে।
  2. বিস্তৃত প্রয়োগযোগ্যতাঃ কৌশলটি ট্রেডিং সিগন্যাল উভয় ট্রেন্ডিং এবং ব্যাপ্তি বাজারে তৈরি করতে পারে।
  3. শক্তিশালী অপ্টিমাইজযোগ্যতাঃ কৌশলটিতে কিছু মূল পরামিতি রয়েছে, যেমন রৈখিক রিগ্রেশন সময়কাল, চলমান গড় ইত্যাদি, যা কর্মক্ষমতা উন্নত করতে অপ্টিমাইজ করা যেতে পারে।

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

এর অনেক সুবিধা সত্ত্বেও, লং-কর্ট লিনিয়ার রিগ্রেশন ক্রসওভার স্ট্র্যাটেজিতে কিছু ঝুঁকি রয়েছেঃ

  1. প্রবণতা স্বীকৃতি ঝুঁকিঃ যখন মূল্যের গতি একটি রৈখিক প্রবণতা অনুসরণ করে না, যেমন একটি রেঞ্জিং বাজারে, কৌশলটি মিথ্যা সংকেত তৈরি করতে পারে। এই ঝুঁকি MACD এর মতো অন্যান্য সূচকগুলির সাথে একত্রিত করে হ্রাস করা যেতে পারে।
  2. প্যারামিটার সেটিং ঝুঁকিঃ কৌশলটির কর্মক্ষমতা প্যারামিটার সেটিংসে সংবেদনশীল, এবং অনুপযুক্ত প্যারামিটারগুলি ক্ষতির দিকে পরিচালিত করতে পারে। অতএব, লাইভ ট্রেডিংয়ের আগে পর্যাপ্ত ব্যাকটেস্টিং এবং প্যারামিটারগুলির অপ্টিমাইজেশান প্রয়োজন।
  3. ওভারফিটিং ঝুঁকিঃ যদি প্যারামিটারগুলি অতিরিক্ত অনুকূলিত হয় তবে এটি কৌশলটিকে historicalতিহাসিক ডেটাতে অতিরিক্ত ফিট করতে এবং ভবিষ্যতে খারাপ সম্পাদন করতে পারে। ওভারফিট এড়ানোর পদ্ধতিগুলির মধ্যে এটি সহজ রাখা, নমুনা ছাড়াই পরীক্ষা করা ইত্যাদি অন্তর্ভুক্ত রয়েছে।

অপ্টিমাইজেশান নির্দেশাবলী

  1. অন্যান্য সূচকগুলির সাথে একত্রিত করুনঃ লিনিয়ার রিগ্রেশন সংকেতটি অন্যান্য প্রযুক্তিগত সূচক যেমন MACD, বোলিংজার ব্যান্ড ইত্যাদির সাথে একত্রিত করা যেতে পারে, যাতে সংকেতগুলির নির্ভুলতা উন্নত হয়।
  2. ডায়নামিক প্যারামিটার অপ্টিমাইজেশানঃ বাজারের অবস্থার অনুযায়ী প্যারামিটারগুলিকে গতিশীলভাবে সামঞ্জস্য করার জন্য প্যারামিটারগুলির জন্য একটি অভিযোজিত প্রক্রিয়া ডিজাইন করা যেতে পারে, অভিযোজনযোগ্যতা উন্নত করে।
  3. একটি ঝুঁকি নিয়ন্ত্রণ মডিউল যোগ করুনঃ একটি একক লেনদেনের ঝুঁকি হ্রাস এবং সমষ্টিগত রিটার্ন বৃদ্ধি করার জন্য স্টপ-লস এবং অর্থ পরিচালনার মতো ঝুঁকি নিয়ন্ত্রণ ব্যবস্থাকে কৌশলটিতে অন্তর্ভুক্ত করুন।
  4. মেশিন লার্নিং অপ্টিমাইজেশানঃ মেশিন লার্নিং অ্যালগরিদমগুলি তার ভবিষ্যদ্বাণীগুলি আরও নির্ভুল করার জন্য রৈখিক রিগ্রেশন মডেলকে ক্রমাগত অপ্টিমাইজ করতে ব্যবহার করা যেতে পারে।

সংক্ষিপ্তসার

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


/*backtest
start: 2024-02-25 00:00:00
end: 2024-03-26 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © stocktechbot
//@version=5
strategy("Linear Cross", overlay=true, margin_long=100, margin_short=0)

//Linear Regression

vol = volume

// Function to calculate linear regression
linregs(y, x, len) =>
    ybar = math.sum(y, len)/len
    xbar = math.sum(x, len)/len
    b = math.sum((x - xbar)*(y - ybar),len)/math.sum((x - xbar)*(x - xbar),len)
    a = ybar - b*xbar
    [a, b]

// Historical stock price data
price = close

// Length of linear regression
len = input(defval = 21, title = 'Strategy Length')
linearlen=input(defval = 9, title = 'Linear Lookback')
[a, b] = linregs(price, vol, len)

// Calculate linear regression for stock price based on volume
//eps = request.earnings(syminfo.ticker, earnings.actual)
//MA For double confirmation

out = ta.sma(close, 200)
outf = ta.sma(close, 50)
outn = ta.sma(close, 90)
outt = ta.sma(close, 21)
outthree = ta.sma(close, 9)

// Predicted stock price based on volume
predicted_price = a + b*vol

// Check if predicted price is between open and close
is_between = open < predicted_price and predicted_price < close

//MACD
//[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)

// Plot predicted stock price
plot(predicted_price, color=color.rgb(65, 59, 150), linewidth=2, title="Predicted Price")
plot(ta.sma(predicted_price,linearlen), color=color.rgb(199, 43, 64), linewidth=2, title="MA Predicted Price")
//offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
plot(out, color=color.blue, title="MA200")
[macdLine, signalLine, histLine] = ta.macd(predicted_price, 12, 26, 9)

//BUY Signal

longCondition=false
mafentry =ta.sma(close, 50) > ta.sma(close, 90)
//matentry = ta.sma(close, 21) > ta.sma(close, 50)
matwohun = close > ta.sma(close, 200)
twohunraise = ta.rising(out, 2)
twentyrise = ta.rising(outt, 2)
macdrise = ta.rising(macdLine,2)
macdlong = ta.crossover(predicted_price, ta.wma(predicted_price,linearlen))  and (signalLine < macdLine)
if macdlong and macdrise
    longCondition := true

if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)
//Sell Signal
lastEntryPrice = strategy.opentrades.entry_price(strategy.opentrades - 1)
daysSinceEntry = len
daysSinceEntry := int((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) / (24 * 60 * 60 * 1000))
percentageChange = (close - lastEntryPrice) / lastEntryPrice * 100
//trailChange = (ta.highest(close,daysSinceEntry) - close) / close * 100

//label.new(bar_index, high, color=color.black, textcolor=color.white,text=str.tostring(int(trailChange)))
shortCondition=false
mafexit =ta.sma(close, 50) < ta.sma(close, 90)
matexit = ta.sma(close, 21) < ta.sma(close, 50)
matwohund = close < ta.sma(close, 200)
twohunfall = ta.falling(out, 3)
twentyfall = ta.falling(outt, 2)
shortmafall = ta.falling(outthree, 1)
macdfall = ta.falling(macdLine,1)
macdsell = macdLine < signalLine
if macdfall and macdsell and (macdLine < signalLine) and ta.falling(low,2)
    shortCondition := true

if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)




আরো