Adaptive Multi Timeframe Moving Average Crossover Strategi

Penulis:ChaoZhang, Tarikh: 2023-10-09 14:56:37
Tag:

Ringkasan

Strategi ini menggunakan prinsip penyambungan purata bergerak adaptif merentasi pelbagai jangka masa untuk mengesan trend. Ia menggabungkan garis pantas, garis perlahan dan penunjuk MACD untuk penghakiman isyarat perdagangan, bertujuan untuk menangkap keuntungan tambahan dari trend jangka sederhana hingga panjang.

Prinsip

Strategi ini terutamanya berdasarkan pada gabungan sistem crossover purata bergerak berganda dan penunjuk MACD. Sistem crossover purata bergerak berganda terdiri daripada EMA pantas dan EMA perlahan, yang mengira purata bergerak jangka pendek dan jangka panjang masing-masing. Isyarat beli dihasilkan apabila garis pantas melintasi di atas garis perlahan, yang menunjukkan trend pasaran telah berubah dari penurunan ke kenaikan, dan kedudukan panjang boleh dibina. Isyarat jual dihasilkan apabila garis pantas melintasi di bawah garis perlahan, yang menunjukkan trend pasaran telah berubah dari kenaikan ke penurunan, di mana kedudukan masa boleh ditutup. Indikator MACD terdiri daripada garis MAC DIF dan garis MAC DEA, yang merupakan perbezaan antara EMA jangka pendek dan EMA jangka panjang, dan purata bergerak perbezaan masing-masing. Garis HIST, iaitu bar DIF dan DEA, mewakili perbezaan momentum.

Strategi ini menggabungkan penilaian trend purata bergerak berganda dan isyarat perubahan momentum MACD. Semasa menangkap keuntungan dari trend jangka menengah hingga panjang, ia dapat menapis pecah palsu dengan berkesan. Khususnya, apabila garis cepat melintasi di atas garis perlahan, jika histogram MACD berubah hijau pada masa yang sama, isyarat panjang yang lebih boleh dipercayai dihasilkan. Sebaliknya, apabila garis cepat melintasi di bawah garis perlahan, jika histogram MACD berubah merah pada masa yang sama, isyarat pendek yang lebih kuat dihasilkan.

Di samping itu, strategi ini juga menggabungkan fungsi parameter adaptif. Semasa pengoptimuman parameter, tempoh garis pantas, garis perlahan dan parameter MACD secara automatik diselaraskan berdasarkan prestasi dalam tempoh masa yang berbeza, untuk memastikan strategi dapat mencapai prestasi yang lebih baik dalam keadaan pasaran yang berbeza.

Kelebihan

  1. Menggabungkan sistem purata bergerak berganda dan penunjuk MACD untuk membuat keputusan, mengelakkan disesatkan oleh isyarat palsu dari bunyi bising.

  2. Menggunakan fungsi parameter adaptif supaya strategi dapat menyesuaikan parameter secara dinamik untuk menyesuaikan diri dengan perubahan pasaran dan mengoptimumkan keputusan perdagangan secara automatik.

  3. Mencatatkan trend jangka sederhana hingga jangka panjang dengan agak baik, menapis pecah palsu dari pasaran yang terikat julat, dan memperoleh keuntungan tambahan dari pasaran trend.

  4. Mengambil analisis merentasi jangka masa untuk mengenal pasti arah trend yang lebih besar.

  5. Logik yang mudah dan jelas, struktur kod yang dioptimumkan, mudah difahami dan diubah suai untuk memenuhi keperluan yang berbeza.

Risiko

  1. Sistem purata bergerak berganda mempunyai risiko untuk dipukul, tidak sesuai untuk pasaran terikat julat, harus digunakan untuk stok dan tempoh masa dengan trend yang jelas.

  2. MACD mempunyai kesan kelewatan, tidak sesuai untuk mengesan trend yang berubah dengan cepat, harus digabungkan dengan penunjuk lain.

  3. Pengoptimuman parameter memerlukan tempoh backtesting yang cukup besar dan penilaian risiko yang ketat untuk mengelakkan pemasangan berlebihan.

  4. Perhatikan risiko sistemik daripada kejadian tiba-tiba apabila memegang kedudukan panjang, hentikan kerugian tepat pada masanya jika perlu.

  5. Risiko pengoptimuman berlebihan untuk fungsi parameter adaptif, yang memerlukan pengesahan yang mencukupi untuk mengelakkan pelarasan parameter yang terlalu kerap.

Arahan Penambahbaikan

  1. Uji kombinasi purata bergerak pantas dan perlahan yang berbeza untuk mencari parameter yang menapis bunyi bising dan mematuhi trend.

  2. Cuba set parameter MACD yang berbeza untuk mencari kombinasi yang mencerminkan titik perubahan trend paling awal.

  3. Tambah penunjuk trend sebagai penapis, hentikan perdagangan apabila trend tidak jelas, untuk mengelakkan whipsaw.

  4. Memperkenalkan mekanisme stop loss seperti memindahkan stop loss atau pesanan menunggu untuk mengawal kerugian perdagangan tunggal.

  5. Cuba algoritma pembelajaran mesin untuk melatih peraturan parameter adaptif dengan lebih banyak data, meningkatkan kestabilan.

  6. Cuba arbitraj silang produk untuk membentuk portfolio di seluruh produk yang berkaitan, mempelbagaikan risiko sistem pasaran.

Kesimpulan

Strategi ini menggabungkan crossover purata bergerak berganda dan penunjuk momentum MACD, mencapai integrasi organik trend berikut dan kawalan irama. Pengenalan parameter adaptif menjadikan strategi lebih kukuh untuk menyesuaikan diri dengan lancar dengan perubahan pasaran. Berbanding dengan strategi penunjuk tunggal, strategi ini membentuk kesan membuat keputusan yang lebih kuat, yang mampu menangkap keuntungan perdagangan yang agak luas dari trend jangka menengah hingga panjang. Langkah seterusnya mungkin termasuk pengoptimuman parameter, kawalan risiko dll untuk meningkatkan lagi strategi. Secara keseluruhan, strategi membentuk sistem perdagangan trend berikut yang boleh dipercayai, layak untuk penyelidikan dan aplikasi yang mendalam.


/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// To enable alerts: Change 'Strategy' to read 'Study' below  and you also need to comment out lines 43 and 47 - Strategy code

// strategy(title="Riz Coloured MACD", shorttitle="Riz MACD" , initial_capital=5000, default_qty_value=3  )
//study(title="Riz Coloured MACD", shorttitle="Riz MACD")

source = close
fastLength = input(21, minval=1), slowLength=input(55,minval=1)
signalLength=input(9,minval=1)
MACDCandlesCheckedBack=input(6,minval=1)
MACDTolerance=input(4,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal

// ====== BASIC COLOURING - IF HISTOGRAM IS HIGHER THAN PREVIOUS 2 CANDLES THEN WE ARE TICKING UP and VISA VERSA ============//

isTickingUp = hist > hist[1] and hist > hist[2] //and hist > hist[3]
isTickingDown = hist < hist[1] and hist < hist[2] // and hist < hist[3]


// ======= MACD STRATEGY CODE ========== //

// Check if MACD is ticking in the right direction to take a trade - adding 1 at the end means it starts at -1 so not to include the current candle
MACDHistHighestHigh= highest(hist, MACDCandlesCheckedBack)[1]
MACDHistLowestLow = lowest(hist, MACDCandlesCheckedBack)[1]

MACDConfirmsLong() => (hist - MACDHistLowestLow) > MACDTolerance
MACDConfirmsShort() => (MACDHistHighestHigh - hist) > MACDTolerance


plot(macd,  title="MACD", color=blue, linewidth=3)
plot(signal,  title="SIGNAL", color=orange, linewidth=3)

// === SIMPLE COLOURING BASED ON LAST 2 CANDLES - EASY TO REFERENCE IN DAY TO DAY MACD USE ====//

plot(hist, title="HIST", color=isTickingDown ? fuchsia : isTickingUp ? lime : green, linewidth=3, style=histogram)

// ==== ALTERNATIVE COLOURING FOR PLOT BASED ON STRATEGY SETTINGS INSTEAD

//plot(hist, title="HIST", color=MACDConfirmsLong() ? lime : MACDConfirmsShort() ? fuchsia : green, linewidth=3, style=histogram)


// === STRATEGY - ENTER POSITIONS - COMMENT OUT TO ENABLE ALERTS === //

strategy.entry(id = "Long", long = true, when = MACDConfirmsLong()) // use function to decide when to go long

strategy.entry(id = "Short", long = false, when = MACDConfirmsShort())

// === CREATE ALERT CONDITIONS === // 

alertup = MACDConfirmsLong()
alertdown = MACDConfirmsShort()

alertcondition(alertup, title='MACD Long', message='Riz MACD says go LONG!')
alertcondition(alertdown, title='MACD Short', message='Riz MACD says go SHORT!')


Lebih lanjut