ট্রেডিংভিউতে লিনিয়ার MACD লিনিয়ার রিগ্রেশনের জাদু উন্মোচন করে


সৃষ্টির তারিখ: 2023-12-15 10:22:50 অবশেষে সংশোধন করুন: 2023-12-15 10:22:50
অনুলিপি: 0 ক্লিকের সংখ্যা: 928
1
ফোকাস
1621
অনুসারী

ট্রেডিংভিউতে লিনিয়ার MACD লিনিয়ার রিগ্রেশনের জাদু উন্মোচন করে

নীতির নামঃ গতি-চালিত লিনিয়ার MACD নীতি

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

নীতিমালাঃ

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

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

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

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

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

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-07 00:00:00
end: 2023-12-14 00:00:00
period: 1m
basePeriod: 1m
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 On MACD", overlay=true, margin_long=100, margin_short=100)



fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
tolerance = input.string(title="Risk tolerance", defval = "LOW", options=["LOW", "HIGH"])

chng = 0
obv = ta.cum(math.sign(ta.change(close)) * volume)
if close < close[1] and (open < close)
    chng := 1
else if close > close[1]
    chng := 1
else
    chng := -1
obvalt = ta.cum(math.sign(chng) * volume)
//src = input(title="Source", defval=close)
src = obvalt
signal_length = input.int(title="Signal Smoothing",  minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title="Oscillator MA Type",  defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
//hline(0, "Zero Line", color=color.new(#787B86, 50))
//plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below)))
//plot(macd, title="MACD", color=col_macd)
//plot(signal, title="Signal", color=col_signal)
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)

//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 = 'Lookback')

// Calculate linear regression for stock price based on volume
[a, b] = linregs(price, vol, len)

// 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


// Plot predicted stock price
plot(predicted_price, color=color.rgb(218, 27, 132), linewidth=2, title="Predicted Stock Price")
plot(ta.vwma(predicted_price,len), color=color.rgb(199, 43, 64), linewidth=2, title="Predicted Stock Price")

//BUY Signal
lincrossunder = close > predicted_price
macdrise = ta.rising(macd,2)
//macdvollong = ta.crossover(macd, signal)
//macdlong = ta.crossover(macdLine, signalLine)
macdvollong = macd > signal
macdlong = macdLine > signalLine
longCondition=false
if macdlong and macdvollong and is_between and ta.rising(predicted_price,1)
    longCondition := true

if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)
//Sell Signal
lincrossover = close < predicted_price
macdfall = ta.falling(macd,1)
macdsell = macd < signal
shortCondition = false
risklevel = predicted_price
if (tolerance == "HIGH")
    risklevel := ta.vwma(predicted_price,len)


if macdfall and macdsell and (macdLine < signalLine) and (close < risklevel)
    shortCondition := true


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