Adaptive Multi Timeframe Moving Average Crossover Strategi

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

Gambaran umum

Strategi ini memanfaatkan prinsip crossover rata-rata bergerak adaptif di beberapa kerangka waktu untuk melacak tren. Ini menggabungkan garis cepat, garis lambat dan indikator MACD untuk penilaian sinyal perdagangan, yang bertujuan untuk menangkap keuntungan tambahan dari tren jangka menengah hingga panjang.

Prinsip

Strategi ini terutama didasarkan pada kombinasi sistem crossover rata-rata bergerak ganda dan indikator MACD. Sistem crossover rata-rata bergerak ganda terdiri dari EMA cepat dan EMA lambat, yang menghitung rata-rata bergerak jangka pendek dan jangka panjang masing-masing. Sinyal beli dihasilkan ketika garis cepat melintasi di atas garis lambat, yang menunjukkan tren pasar telah berubah dari penurunan ke kenaikan, dan posisi panjang dapat dibangun. Sinyal jual dihasilkan ketika garis cepat melintasi di bawah garis lambat, yang menunjukkan tren pasar telah berubah dari kenaikan ke penurunan, pada saat posisi dapat ditutup. Indikator MACD terdiri dari garis MAC DIF dan garis MAC DEA, yang merupakan perbedaan antara EMA jangka pendek dan EMA jangka panjang, dan rata-rata pergerakan perbedaan masing-masing.

Strategi ini menggabungkan penilaian tren dari rata-rata bergerak ganda dan sinyal perubahan momentum dari MACD. Sementara menangkap keuntungan dari tren jangka menengah hingga panjang, strategi ini dapat secara efektif menyaring breakout palsu. Secara khusus, ketika garis cepat melintasi di atas garis lambat, jika histogram MACD berubah menjadi hijau pada saat yang sama, sinyal panjang yang lebih dapat diandalkan dihasilkan. Sebaliknya, ketika garis cepat melintasi di bawah garis lambat, jika histogram MACD berubah menjadi merah secara bersamaan, sinyal pendek yang lebih kuat dihasilkan.

Selain itu, strategi juga menggabungkan fungsionalitas parameter adaptif. Selama optimasi parameter, periode garis cepat, garis lambat dan parameter MACD secara otomatis disesuaikan berdasarkan kinerja selama periode waktu yang berbeda, untuk memastikan strategi dapat mencapai kinerja yang relatif lebih baik dalam kondisi pasar yang berbeda.

Keuntungan

  1. Menggabungkan sistem rata-rata bergerak ganda dan indikator MACD untuk pengambilan keputusan, menghindari tertipu oleh sinyal palsu dari kebisingan.

  2. Menerapkan fungsi parameter adaptif sehingga strategi dapat secara dinamis menyesuaikan parameter untuk beradaptasi dengan perubahan pasar dan mengoptimalkan keputusan perdagangan secara otomatis.

  3. Menangkap tren jangka menengah hingga jangka panjang dengan relatif baik, menyaring kebocoran palsu dari pasar yang terikat rentang, dan memperoleh keuntungan tambahan dari pasar tren.

  4. Mengadopsi analisis di seluruh kerangka waktu untuk mengidentifikasi arah tren tingkat yang lebih besar.

  5. Logika yang sederhana dan jelas, struktur kode yang dioptimalkan, mudah dipahami dan dimodifikasi untuk memenuhi kebutuhan yang berbeda.

Risiko

  1. Sistem rata-rata bergerak ganda memiliki risiko untuk dihancurkan, tidak cocok untuk pasar yang terbatas pada kisaran, harus digunakan untuk saham dan periode waktu dengan tren yang jelas.

  2. MACD memiliki efek keterlambatan, tidak cocok untuk melacak tren yang berubah dengan cepat, harus dikombinasikan dengan indikator lain.

  3. Optimasi parameter membutuhkan periode backtesting yang cukup besar dan penilaian risiko yang ketat untuk menghindari overfit.

  4. Perhatikan risiko sistemik dari kejadian mendadak saat memegang posisi panjang, stop loss tepat waktu jika perlu.

  5. Risiko optimasi yang berlebihan untuk fungsi parameter adaptif, yang membutuhkan verifikasi yang cukup untuk menghindari penyesuaian parameter yang terlalu sering.

Arah Peningkatan

  1. Uji kombinasi rata-rata bergerak cepat dan lambat yang berbeda untuk menemukan parameter yang menyaring kebisingan dan mematuhi tren.

  2. Coba set parameter MACD yang berbeda untuk menemukan kombinasi yang mencerminkan titik perubahan tren paling awal.

  3. Tambahkan indikator tren sebagai filter, jeda perdagangan ketika tren tidak jelas, untuk menghindari whipsaw.

  4. Memperkenalkan mekanisme stop loss seperti memindahkan stop loss atau pending order untuk mengontrol satu perdagangan loss.

  5. Coba algoritma pembelajaran mesin untuk melatih aturan parameter adaptif dengan lebih banyak data, meningkatkan stabilitas.

  6. Cobalah arbitrage lintas produk untuk membentuk portofolio di seluruh produk korelasi, diversifikasi risiko sistemik pasar.

Kesimpulan

Strategi ini menggabungkan crossover rata-rata bergerak ganda dan indikator momentum MACD, mencapai integrasi organik trend berikut dan kontrol ritme. Pengenalan parameter adaptif membuat strategi lebih kuat untuk beradaptasi dengan lancar dengan perubahan pasar. Dibandingkan dengan strategi indikator tunggal, strategi ini membentuk efek pengambilan keputusan yang lebih kuat, mampu menangkap keuntungan perdagangan yang relatif luas dari tren jangka menengah hingga panjang. Langkah selanjutnya mungkin termasuk optimasi parameter, kontrol risiko dll untuk lebih meningkatkan strategi. Secara keseluruhan, strategi membentuk sistem perdagangan trend berikut yang dapat diandalkan, layak untuk penelitian 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 banyak