Strategi MACD Golden Cross dan Dead Cross

MACD EMA DIF DEA
Tanggal Pembuatan: 2024-04-26 12:08:24 Akhirnya memodifikasi: 2024-04-26 12:08:24
menyalin: 0 Jumlah klik: 1107
1
fokus pada
1617
Pengikut

Strategi MACD Golden Cross dan Dead Cross

Ringkasan

Strategi ini menggunakan persilangan garis DIF dan garis DEA dalam indikator MACD untuk menghasilkan sinyal perdagangan. Ketika garis DIF melintasi garis DEA dari bawah ke atas, menghasilkan sinyal multitasking; Ketika garis DIF melintasi garis DEA dari atas ke bawah, menghasilkan sinyal shorting. Hasil retrospeksi dari strategi ini menunjukkan bahwa pada pasangan perdagangan BTCUSDT, tingkat kemenangan sekitar 40% dan tingkat pengembalian tahunan 1.05, tetapi dapat menyebabkan peningkatan jumlah aset yang dipegang, sehingga tidak dapat digunakan sebagai strategi arbitrage independen.

Prinsip Strategi

  1. Perhitungan rata-rata bergerak cepat (EMA) dan rata-rata bergerak lambat (EMA)
  2. Hitung garis DIF, yaitu perbedaan antara EMA cepat dan EMA lambat.
  3. Hitung EMA dari garis DEA, yaitu garis DIF.
  4. Hitung perbedaan antara garis DIF dan garis DEA dalam grafik MACD.
  5. Ketika saluran DIF melintasi saluran DEA dari bawah ke atas, menghasilkan sinyal multitasking, membuka posisi multitasking.
  6. Ketika garis DIF melintasi garis DEA dari atas ke bawah, sinyal shorting dihasilkan, posisi kosong dibuat lebih banyak, posisi terbuka dibuat kosong.
  7. Ketika sinyal silang yang berlawanan muncul lagi, posisi saat ini ditutup dan posisi yang berlawanan dibuka.

Keunggulan Strategis

  1. Strategi ini menggunakan indikator MACD yang banyak digunakan dan mudah dipahami dan diterapkan.
  2. Strategi logis jelas, sinyal perdagangan jelas.
  3. Untuk pasar yang sedang tren, Anda dapat melacak tren utama pasar.

Risiko Strategis

  1. Strategi ini memiliki tingkat keberhasilan yang rendah, hanya 40%, yang berarti bahwa 60% dari transaksi mungkin akan menjadi kerugian.
  2. Strategi ini menyebabkan peningkatan jumlah aset yang dipegang, yang dapat menyebabkan risiko tambahan.
  3. Dalam pasar yang bergejolak, strategi ini dapat menghasilkan sinyal perdagangan yang sering, yang menyebabkan biaya transaksi yang tinggi.
  4. Strategi ini tidak mempertimbangkan manajemen risiko, seperti manajemen stop loss dan posisi, yang dapat menyebabkan kerugian besar.

Arah optimasi strategi

  1. Memperkenalkan filter tren, seperti moving average jangka panjang, untuk menghindari perdagangan di pasar yang bergejolak.
  2. Mengoptimalkan parameter indikator MACD, seperti EMA cepat, EMA lambat, dan siklus jalur sinyal, untuk menyesuaikan dengan kondisi pasar yang berbeda.
  3. Menambahkan langkah-langkah manajemen risiko seperti stop loss dan manajemen posisi untuk mengendalikan potensi kerugian.
  4. Dalam kombinasi dengan indikator teknis lainnya atau analisis fundamental, untuk meningkatkan keandalan sinyal perdagangan.

Meringkaskan

Strategi MACD Gold Fork Dead Fork adalah strategi perdagangan yang sederhana dan mudah dimengerti yang cocok untuk pasar yang sedang tren. Namun, strategi ini memiliki tingkat kemenangan yang rendah dan kurangnya langkah-langkah manajemen risiko, sehingga perlu dioptimalkan dan disempurnakan lebih lanjut. Kinerja dan keandalan strategi dapat ditingkatkan dengan memperkenalkan filter tren, parameter pengoptimalan, menambahkan manajemen risiko dan menggabungkan dengan metode analisis lainnya.

Kode Sumber Strategi
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
// @description 该策略使用 MACD DIF 线与 EDA 线产生金叉与死叉时进行入场与出场操作, 回测后发现胜率约 40%, BTCUSDT 年化利率 1.05, 同时会导致持有的资产数量不断上升, 无法作为一个独立的套利策略进行使用.

strategy("MACD 金叉策略", overlay=true)

fastLength = input(12, "快线长度")
slowLength = input(26, "慢线长度")
MACDLength = input(9, "MACD 均线长度")

deltaIncreaseOver0 = input(color.green,'MACD 柱在 0 线以上增长')
deltaIncreaseUnder0 = input(color.rgb(153, 230, 156),'MACD 柱在 0 线以下增长')

deltaDecreaseOver0 = input(color.orange,'MACD 柱在 0 线以上下跌')
deltaDecreaseUnder0 = input(color.red,'MACD 柱在 0 线以下下跌')

buySellEnabled = input(true, '是否显示入场与出场信号')

// @variable 做多轮数
var longRound = 0
// @variable 做空轮数
var shortRound = 0

DIF = ta.ema(close, fastLength) - ta.ema(close, slowLength) // 快慢均线差值
EDA = ta.ema(DIF, MACDLength) // DIF 线的 EMA 均线
delta = DIF - EDA // MACD 柱高度

// plot(0, 'Zero', color.black)
plot(DIF,'DIF', color.yellow)
plot(EDA, "EDA", color.purple)

isDeltaIncreasing = delta[1] < delta
isDeltaOver0 = delta > 0
deltaColor = isDeltaIncreasing ? (isDeltaOver0? deltaIncreaseOver0: deltaIncreaseUnder0) :( isDeltaOver0? deltaDecreaseOver0: deltaDecreaseUnder0)
plot(delta, "Delta", deltaColor, style = plot.style_columns)

isDeltaV = delta > delta[1] and delta[2] > delta[1]
isDeltaA = delta < delta[1] and delta[2] < delta[1]

longBuy(round) =>
	entry = str.format("做多买入 {0}",round)
	// log.info(str.format("{0} {1}",entry,close))
	strategy.entry(entry, strategy.long, comment=entry)

longSell(round) =>
	entry = str.format("做多买入 {0}",round)
	exit = str.format("做多卖出 {0}",round)
	// log.info(str.format("{0} {1}",exit,close))
	strategy.close(entry, comment=exit)		

shortSell(round) =>
	entry = str.format("做空卖出 {0}",round)
	// log.info(str.format("{0} {1}",entry,close))
	strategy.entry(entry, strategy.short, comment= entry) 

shortBuy(round) =>
	entry = str.format("做空卖出 {0}",round)
	exit = str.format("做空买入 {0}",round)
	// log.info(str.format("{0} {1}",exit,close))
	strategy.close(entry, comment=exit)		

if (buySellEnabled) 
	if (ta.crossunder(DIF, EDA))
		longSell(longRound)
	if (ta.crossover(DIF, EDA))
		longRound := longRound + 1
		longBuy(longRound)