Strategi perdagangan trend berdasarkan penunjuk MACD


Tarikh penciptaan: 2024-02-02 11:32:48 Akhirnya diubah suai: 2024-02-02 11:32:48
Salin: 3 Bilangan klik: 642
1
fokus pada
1617
Pengikut

Strategi perdagangan trend berdasarkan penunjuk MACD

Gambaran keseluruhan

Inti strategi ini adalah berdasarkan pada indikator yang dibangunkan oleh Andrew Abraham dalam artikel yang diterbitkan dalam jurnal Trend Trending Trending TASC pada bulan September 1998. Indikator ini menggunakan julat pergerakan sebenar rata-rata dan saluran harga untuk menentukan arah trend pasaran, dan digabungkan dengan indikator MACD untuk penapisan isyarat perdagangan yang bertujuan untuk menangkap trend garis tengah.

Prinsip Strategi

Strategi ini mula-mula mengira purata bergerak bertimbangan purata 21 hari untuk rentang pergerakan sebenar ((ATR) sebagai rentang pergerakan asas. Kemudian mengira harga tertinggi dan terendah selama 21 hari yang lalu untuk membandingkan harga penutupan K-line semasa dengan batas atas dan bawah rentang pergerakan asas untuk menentukan sama ada harga telah menembusi saluran dan dengan itu menentukan arah trend.

Khususnya, definisi saluran atas adalah harga tertinggi 21 hari terakhir dikurangkan 3 kali ATR asas, saluran bawah adalah harga minimum 21 hari terakhir ditambah 3 kali ATR asas. Apabila harga penutupan lebih tinggi daripada saluran atas, ia dianggap sebagai trend bullish; apabila harga penutupan lebih rendah daripada saluran bawah, ia dianggap sebagai trend bullish.

Dalam menentukan arah trend, strategi ini juga memperkenalkan penapisan pada penunjuk MACD. Ia hanya menghasilkan isyarat beli apabila garis tiang MACD adalah betul, untuk mengelakkan kehilangan titik beli.

Kelebihan Strategik

Strategi ini menggabungkan penilaian trend dan penapisan penunjuk, yang dapat menentukan arah trend garis panjang di pasaran dengan berkesan, dan mengelakkan tertipu oleh turun naik jangka pendek di pasaran. Kelebihan khusus adalah sebagai berikut:

  1. Menggunakan saluran harga untuk menilai trend, menentukan arah trend garis panjang dengan tepat
  2. Julat turun naik acuan boleh disesuaikan secara dinamik untuk menyesuaikan diri dengan perubahan pasaran
  3. Penapisan Indeks MACD Untuk Meningkatkan Dasar Keputusan dan Mengelakkan Kegagalan Membeli
  4. Parameter yang boleh dikonfigurasi, gaya dasar yang fleksibel

Risiko Strategik

Strategi ini juga mempunyai risiko, terutama dalam aspek berikut:

  1. Jangkaan saluran harga tidak dapat mengelakkan risiko penembusan sepenuhnya
  2. Indeks MACD mungkin menimbulkan risiko isyarat yang mengelirukan
  3. Tetapan parameter yang tidak betul boleh menyebabkan strategi tidak stabil

Dalam kes ini, risiko boleh dikurangkan dengan menetapkan parameter yang dioptimumkan, saiz kedudukan yang ketat, dan menghentikan kerugian tepat pada masanya.

Arah pengoptimuman strategi

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji kombinasi parameter yang berbeza untuk mencari parameter terbaik

Kombinasi parameter Length atau Multiplier yang berbeza boleh diuji untuk mencari kombinasi parameter yang menghasilkan pulangan terbaik berdasarkan data pengukuran semula.

  1. gabungan penapis lain

Ia boleh diuji dengan RSI, KDJ dan lain-lain untuk menapis isyarat dan melihat apakah ia dapat meningkatkan kadar pulangan.

  1. Parameter penyesuaian dinamik

Parameter boleh disesuaikan secara dinamik mengikut keadaan pasaran, seperti meluaskan julat saluran yang sesuai apabila trend jelas, dan mengetatkan julat saluran yang sesuai semasa gegaran.

ringkaskan

Strategi ini secara keseluruhannya merupakan strategi pengesanan trend yang agak mantap. Ia menggabungkan pendekatan saluran harga untuk menentukan arah trend dan penapis isyarat penunjuk MACD, yang dapat menentukan trend garis panjang di pasaran dengan berkesan dan menghasilkan keuntungan yang stabil. Dengan pengoptimuman parameter, pengurusan risiko dan pengubahsuaian yang sesuai, strategi ini dapat menjadi komponen penting dalam sistem perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © melihtuna

//@version=1
strategy("Trend Trader Strategy with MACD", overlay=true)

// === Trend Trader Strategy ===
Length = input(21),
Multiplier = input(3, minval=1)
MacdControl = input(true, title="Control 'MACD Histogram is positive?' when Buy condition")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = iff(close > hiLimit and close > loLimit, hiLimit,
        iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
pos =	iff(close > ret, 1,
	    iff(close < ret, -1, nz(pos[1], 0))) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(ret, color= blue , title="Trend Trader Strategy with MACD")

// === 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 = 2020, 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()  => true

// === MACD ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdCond= MacdControl ? histLine[0] > 0 ? true : false : true

strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond)
strategy.entry("SELL", strategy.short, when = window() and pos == -1)