ডাবল মুভিং এভারেজ ক্রসওভার কৌশল

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

img

সারসংক্ষেপ

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

যখন দ্রুত এসএমএ ধীর ভিডাব্লুএমএর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন দ্রুত এসএমএ ধীর ভিডাব্লুএমএর নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। কৌশলটি ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস প্রক্রিয়াও ব্যবহার করে।

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

এই কৌশলটির মূল যুক্তি দ্বৈত চলমান গড় ক্রসওভার সিস্টেমে রয়েছে। বিশেষত এটি নিম্নলিখিত প্রযুক্তিগত সূচকগুলি ব্যবহার করেঃ

  1. সাধারণ চলমান গড় (এসএমএ): সাম্প্রতিক গড় মূল্যকে প্রতিফলিত করে গত n দিনের মধ্যে বন্ধের মূল্যের গাণিতিক গড়।
  2. ওয়েটেড মুভিং এভারেজ (ভিডব্লিউএমএ): গত এন দিনের মধ্যে বন্ধের মূল্যের ওজনযুক্ত গড়, সাম্প্রতিক মূল্যগুলিতে উচ্চতর ওজন নির্ধারণ করে, দামের পরিবর্তনে দ্রুত প্রতিক্রিয়া জানায়।

দ্রুত এসএমএর দামের পরিবর্তনে দ্রুত প্রতিক্রিয়া জানাতে একটি সংক্ষিপ্ত পুনর্বিবেচনা সময়কাল রয়েছে, যখন ধীর ভিডব্লিউএমএর মসৃণকরণের জন্য একটি দীর্ঘতর পুনর্বিবেচনা সময়কাল রয়েছে। যখন স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী প্রবণতা একই দিকে সারিবদ্ধ হয়, ধীর ভিডব্লিউএমএর উপরে দ্রুত এসএমএর ক্রসিং ক্রয় সংকেত তৈরি করে, যখন নীচে ক্রসিং বিক্রয় সংকেত তৈরি করে।

এই কৌশলটি স্টপ লস প্রক্রিয়াও স্থাপন করে। যখন দাম অনুপযুক্ত দিকের দিকে চলে যায় তখন এটি সময়মতো ক্ষতি কমাতে পারে।

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

  1. বাজারের প্রবণতা পরিবর্তনের জন্য দ্রুত প্রতিক্রিয়া জানায়
  2. কার্যকর স্টপ লস মেশিন সহ ভাল ড্রাউনডাউন নিয়ন্ত্রণ
  3. সহজ এবং স্বজ্ঞাত, বুঝতে এবং বাস্তবায়ন করা সহজ
  4. বিভিন্ন বাজারের পরিবেশে অপ্টিমাইজযোগ্য পরামিতি

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

  1. ডাবল এমএ কৌশলগুলি ষাঁড়ের বাজারে মিথ্যা সংকেত দেয়
  2. অনুপযুক্ত প্যারামিটার মিটিং ক্ষতি হতে পারে
  3. মাঝে মাঝে ফ্ল্যাশ ক্র্যাশ ক্ষতি হতে পারে

ঝুঁকি ব্যবস্থাপনাঃ

  1. নিশ্চিতকরণের জন্য প্রবণতা ফিল্টারিং সূচক ব্যবহার করুন
  2. প্যারামিটার সেটিংস অপ্টিমাইজ করুন
  3. একক ক্ষতির যুক্তিসঙ্গত নিয়ন্ত্রণের জন্য স্টপ লস কৌশল গ্রহণ করুন

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

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

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

সিদ্ধান্ত

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


/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-28 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//strategy(title="Bitlinc Entry v0.1 VWMA / SMA / MRSI SQQQ 94M", overlay=true, initial_capital=10000, currency='USD')

strategy(title="Bitlinc Entry v0.1 VWMA / SMA / MRSI SQQQ 94M", overlay=true)

// Credit goes to this developer for the "Date Range Code"
// https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/

// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = close, title = "Simple MA Source")
maFastLength   = input(defval = 6, title = "Simple MA Length", minval = 1)
// long ma
maSlowSource   = input(defval = high, title = "VW MA Source")
maSlowLength   = input(defval = 7, title = "VW MA Period", minval = 1)


// === SERIES SETUP ===
// a couple of ma's...
maFast = sma(maFastSource, maFastLength)
maSlow = vwma(maSlowSource, maSlowLength)


// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = color.green, linewidth = 2, style = plot.style_line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = color.red, linewidth = 2, style = plot.style_line, transp = 30)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

// === LOGIC ===
enterLong = crossover(maFast, maSlow)
exitLong = crossover(maSlow, maFast)
//enterLong = crossover(maSlow, maFast)
//exitLong = crossover(maFast, maSlow)

// Entry //
strategy.entry(id="Long Entry", long=true, when=window() and enterLong)
strategy.entry(id="Short Entry", long=false, when=window() and exitLong)

// === FILL ====
fill(fast, slow, color = maFast > maSlow ? color.green : color.red)

// === MRSI ===
//
//

basis = rsi(close, input(50))

ma1 = ema(basis, input(2))
ma2 = ema(basis, input(27))

oversold = input(32.6)
overbought = input(63)

//plot(ma1, title="RSI EMA1", color=blue)
//plot(ma2, title="RSI EMA2", color=yellow)

obhist = ma1 >= overbought ? ma1 : overbought
oshist = ma1 <= oversold ? ma1 : oversold

//plot(obhist, title="Overbought Highligth", style=columns, color=color.maroon, histbase=overbought)
//plot(oshist, title="Oversold Highligth", style=columns, color=color.yellow, histbase=oversold)

//i1 = hline(oversold, title="Oversold Level", color=white)
//i2 = hline(overbought, title="Overbought Level", color=white)

//fill(i1, i2, color=olive, transp=100)

// === LOGIC ===
enterLongMrsi = crossover(ma1, oversold)
exitLongMrsi = crossover(ma1, overbought)

// Entry //
strategy.entry(id="MRSI Long Entry", long=true, when=window() and enterLongMrsi)
strategy.entry(id="MRSI Short Entry", long=false, when=window() and exitLongMrsi)

//hline(50, title="50 Level", color=white)

আরো