Strategi Crossover Rata-rata Pergerakan Adaptif Multi-Kerangka Waktu


Tanggal Pembuatan: 2023-10-09 14:56:37 Akhirnya memodifikasi: 2023-10-09 14:56:37
menyalin: 0 Jumlah klik: 667
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini adalah strategi pelacakan tren yang menggunakan beberapa kerangka waktu untuk beradaptasi dengan prinsip persilangan garis rata-rata bergerak. Strategi ini menggunakan garis cepat, garis lambat, dan indikator MACD untuk menilai sinyal perdagangan secara bersamaan, dengan tujuan untuk mendapatkan keuntungan tambahan dari tren garis panjang dan menengah.

Prinsip

Strategi ini terutama didasarkan pada kombinasi dua sistem persimpangan rata-rata bergerak dengan indikator MACD. Sistem persimpangan rata-rata bergerak ganda terdiri dari EMA garis cepat dan EMA garis lambat, yang masing-masing menghitung rata-rata jangka pendek dan rata-rata jangka panjang. Ketika garis cepat melintasi garis lambat, sinyal beli dihasilkan, yang menunjukkan bahwa harga bergeser dari turun ke bawah, dan posisi multihead dapat dibuat.

Strategi ini menggabungkan penilaian tren dari dua garis rata-rata bergerak dan sinyal konversi momentum dari MACD, yang dapat secara efektif menyaring terobosan palsu sambil mendapatkan keuntungan dari tren garis tengah-panjang. Secara khusus, ketika melewati garis cepat pada garis lambat, jika pilar MACD berubah menjadi hijau pada saat yang sama, menghasilkan sinyal yang lebih kuat. Sebaliknya, ketika melewati garis cepat di bawah garis lambat, jika MACD berbalik merah pada saat yang sama, menghasilkan sinyal yang lebih kuat.

Selain itu, strategi ini juga memperkenalkan fungsi penyesuaian parameter. Dalam proses pengoptimalan parameter, siklus garis cepat, siklus garis lambat dan parameter MACD akan disesuaikan secara otomatis sesuai dengan efek dari berbagai periode waktu, untuk memastikan bahwa strategi dapat memperoleh kinerja yang optimal dalam berbagai situasi.

Keunggulan

  1. Mengintegrasikan sistem dua garis sejajar dan indikator MACD, mengintegrasikan berbagai faktor untuk membuat keputusan, menghindari kebisingan dan sinyal palsu yang menyesatkan.

  2. Menggunakan fungsi parameter adaptif, memungkinkan strategi untuk secara dinamis menyesuaikan parameter untuk menyesuaikan dengan perubahan pasar, dan secara otomatis mengoptimalkan keputusan perdagangan.

  3. Lebih baik menangkap tren garis tengah dan panjang, menyaring terobosan palsu dari pasar yang bergoyang, dan mendapatkan keuntungan tambahan dalam situasi tren.

  4. Dengan menggunakan analisis jangka waktu, kita dapat mengidentifikasi arah tren pada tingkat yang lebih besar.

  5. Logika strategi yang jelas dan sederhana, struktur kode yang dioptimalkan, mudah dipahami dan dimodifikasi, disesuaikan dengan kebutuhan yang berbeda.

Risiko

  1. Sistem dua garis rata memiliki risiko whipsaw karton, tidak cocok untuk situasi yang bergolak, saham dan periode waktu yang lebih jelas tren harus dipilih.

  2. MACD memiliki keterlambatan, tidak cocok untuk melacak tren perubahan drastis, dan harus digunakan dalam kombinasi dengan indikator lain.

  3. Optimasi parameter membutuhkan siklus pengujian yang cukup besar, dan penilaian risiko yang ketat untuk menghindari overfit.

  4. Dalam hal ini, Anda harus memperhatikan risiko sistematis yang ditimbulkan oleh insiden yang tidak terduga, dan menghentikan kerusakan pada waktu yang tepat.

  5. Ada kemungkinan fungsi parameter adaptasi terlalu dioptimalkan, perlu dilakukan verifikasi yang memadai, menghindari penyesuaian parameter terlalu sering.

Arah optimasi

  1. Anda dapat menguji kombinasi garis rata-rata yang berbeda, memilih parameter garis rata-rata yang dapat menyaring kebisingan dan mengikuti tren.

  2. Anda dapat menguji beberapa set parameter MACD untuk menemukan set parameter yang dapat merespons perubahan tren lebih awal.

  3. Indikator tren dapat digunakan sebagai filter, untuk menghentikan perdagangan jika tren tidak jelas, untuk menghindari whipsaw.

  4. Anda dapat memperkenalkan mekanisme stop loss, mengatur stop loss bergerak atau stop loss tetap, dan mengontrol kerugian tunggal.

  5. Anda dapat mencoba menambahkan algoritma pembelajaran mesin, menggunakan lebih banyak parameter pelatihan data untuk menyesuaikan aturan, meningkatkan stabilitas strategi.

  6. Arbitrage multi-varietas dapat dicoba, membentuk portofolio perdagangan di antara varietas terkait, untuk menyebarkan risiko sistematis pasar.

Meringkaskan

Strategi ini mengintegrasikan crossover dua rata-rata bergerak dan indikator momentum MACD, yang memungkinkan kombinasi organik dari pelacakan tren dan kontrol kecepatan. Pengenalan parameter yang dapat disesuaikan membuat strategi lebih robust dan dapat menyesuaikan diri dengan perubahan pasar. Dibandingkan dengan strategi indikator tunggal, strategi ini menghasilkan efek keputusan yang lebih kuat dan dapat memperoleh keuntungan perdagangan yang lebih besar dalam tren garis tengah dan panjang.

Kode Sumber Strategi
/*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!')