MACD Golden Cross dan Death Cross Strategi

Penulis:ChaoZhang, Tarikh: 2024-04-26 12:08:24
Tag:MACDEMADIFDEA

img

Ringkasan

Strategi ini menggunakan persilangan garis DIF dan garis DEA dalam penunjuk MACD untuk menjana isyarat perdagangan. Apabila garis DIF melintasi di atas garis DEA, ia menghasilkan isyarat panjang; apabila garis DIF melintasi di bawah garis DEA, ia menghasilkan isyarat pendek. Hasil pengujian balik strategi ini menunjukkan bahawa pada pasangan perdagangan BTCUSDT, kadar kemenangan adalah kira-kira 40%, dan pulangan tahunan adalah 1.05. Walau bagaimanapun, ia akan menyebabkan jumlah aset yang dipegang terus meningkat, jadi ia tidak boleh digunakan sebagai strategi arbitrase bebas.

Prinsip Strategi

  1. Mengira purata bergerak eksponensial pantas (EMA) dan purata bergerak eksponensial perlahan (EMA).
  2. Mengira garis DIF, yang merupakan perbezaan antara EMA pantas dan EMA perlahan.
  3. Mengira garis DEA, yang merupakan EMA garis DIF.
  4. Mengira histogram MACD, yang merupakan perbezaan antara garis DIF dan garis DEA.
  5. Apabila garis DIF melintasi di atas garis DEA, menghasilkan isyarat panjang dan membuka kedudukan panjang.
  6. Apabila garis DIF melintasi di bawah garis DEA, menghasilkan isyarat pendek, menutup kedudukan panjang, dan membuka kedudukan pendek.
  7. Apabila isyarat silang bertentangan muncul lagi, tutup kedudukan semasa dan buka kedudukan dalam arah yang bertentangan.

Kelebihan Strategi

  1. Strategi ini menggunakan penunjuk MACD yang digunakan secara meluas, yang mudah difahami dan dilaksanakan.
  2. Logik strategi jelas, dan isyarat perdagangan jelas.
  3. Ia sesuai untuk pasaran trend dan boleh mengesan trend utama pasaran.

Risiko Strategi

  1. Kadar kemenangan strategi ini rendah, hanya 40%, yang bermaksud bahawa 60% perdagangan mungkin kehilangan.
  2. Strategi ini akan menyebabkan jumlah aset yang dipegang terus meningkat, yang mungkin membawa pendedahan risiko tambahan.
  3. Dalam pasaran yang turun naik, strategi ini boleh menghasilkan isyarat perdagangan yang kerap, yang membawa kepada kos perdagangan yang tinggi.
  4. Strategi ini tidak mempertimbangkan pengurusan risiko, seperti penghentian kerugian dan pengurusan kedudukan, yang boleh membawa kepada kerugian yang besar.

Arahan Pengoptimuman Strategi

  1. Memperkenalkan penapis trend, seperti purata bergerak jangka panjang, untuk mengelakkan perdagangan di pasaran yang turun naik.
  2. Mengoptimumkan parameter penunjuk MACD, seperti tempoh EMA cepat, EMA perlahan, dan garis isyarat, untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  3. Tambah langkah pengurusan risiko, seperti stop-loss dan pengurusan kedudukan, untuk mengawal potensi kerugian.
  4. Menggabungkan dengan penunjuk teknikal atau analisis asas lain untuk meningkatkan kebolehpercayaan isyarat perdagangan.

Ringkasan

Strategi MACD golden cross dan death cross adalah strategi perdagangan yang mudah dan mudah difahami yang sesuai untuk pasaran yang sedang trend. Walau bagaimanapun, kadar kemenangan strategi ini rendah, dan ia tidak mempunyai langkah pengurusan risiko, jadi ia memerlukan pengoptimuman dan penambahbaikan yang lebih lanjut. Dengan memperkenalkan penapis trend, mengoptimumkan parameter, menambah pengurusan risiko, dan menggabungkan dengan kaedah analisis lain, prestasi dan kebolehpercayaan strategi ini dapat ditingkatkan. Walau bagaimanapun, strategi ini masih tidak dapat digunakan sebagai strategi arbitrase bebas dan perlu digabungkan dengan strategi lain untuk mendapatkan hasil perdagangan yang lebih baik.


/*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)

		
		

Berkaitan

Lebih lanjut