Strategi Mengikuti Tren MACD


Tanggal Pembuatan: 2023-12-11 14:57:00 Akhirnya memodifikasi: 2023-12-11 14:57:00
menyalin: 0 Jumlah klik: 649
1
fokus pada
1621
Pengikut

Strategi Mengikuti Tren MACD

Ringkasan

Strategi pelacakan tren MACD adalah strategi perdagangan kuantitatif yang didasarkan pada indikator MACD. Strategi ini menilai tren pasar dengan mengidentifikasi sinyal garpu dan garpu MACD untuk melacak tren harga saham.

Prinsip Strategi

Logika inti dari strategi pelacakan tren MACD adalah:

  1. Hitung garis MACD dan garis sinyal.
  2. Ketika MACD line dari bawah ke atas mencapai 0, catat titik tertinggi saat ini dan tunggu sinyal dead fork.
  3. Ketika MACD line turun dari atas ke bawah di bawah 0, catat titik terendah saat ini dan tunggu sinyal garpu emas.
  4. Ketika terjadi Gold Fork, catat harga penutupan saat ini sebagai titik masuk, set titik stop loss, dan buka posisi.
  5. Ketika terjadi dead fork, catat harga penutupan saat ini sebagai titik masuk shorting, set titik stop loss, dan buka posisi shorting.
  6. Ketika memegang posisi multi, jika tingkat pengembalian mencapai target yang ditetapkan atau penarikan mencapai titik stop loss, posisi kosong berakhir dengan keuntungan.
  7. Ketika memegang posisi short, jika tingkat pengembalian mencapai target yang ditetapkan atau penarikan mencapai titik berhenti, posisi kosong akan berakhir dengan keuntungan.

Dengan mekanisme pelacakan tren ini, strategi ini dapat menangkap perubahan tren pasar secara tepat waktu dan menghasilkan keuntungan.

Analisis Keunggulan

Strategi trend tracking MACD memiliki keuntungan sebagai berikut:

  1. Sumber sinyal strategi hanya jelas, dihasilkan langsung oleh indikator MACD, menghindari gangguan sinyal.
  2. Menggunakan indikator MACD yang cepat dan lambat untuk menentukan arah tren pasar.
  3. Ini adalah salah satu cara yang paling efektif untuk memantau dan memantau perubahan tren.
  4. Ada pengendalian risiko dan mekanisme stop loss.

Analisis risiko

Strategi untuk mengikuti tren MACD juga memiliki risiko berikut:

  1. Indikator MACD mudah menghasilkan sinyal palsu, yang dapat menyebabkan kerugian operasional yang terlalu pendek.
  2. Stop loss yang tidak tepat dapat memperbesar kerugian tunggal.
  3. Pelacakan rasio keuntungan dan titik berhenti sulit untuk menyeimbangkan, dan ada risiko bahwa terlalu banyak pelacakan akan menyebabkan kerugian.

Untuk mengatasi risiko tersebut, langkah-langkah optimasi berikut dapat dilakukan:

  1. Dalam kombinasi dengan indikator lain, filter sinyal palsu.
  2. Dinamika penyesuaian stop loss.
  3. Optimalkan parameter untuk melacak rasio profit dan stop loss.

Arah optimasi

Strategi pelacakan tren MACD dapat dioptimalkan dengan:

  1. Mengoptimalkan parameter indikator MACD, mengurangi tingkat sinyal palsu. MACD dapat diuji dengan parameter siklus yang berbeda.

  2. Meningkatkan sinyal penyaringan indikator lain seperti volume transaksi. Anda dapat mengatur kondisi volume transaksi minimum.

  3. Setting dynamic tracking stop loss mechanism. Stop loss point dapat disesuaikan secara real time dengan volatilitas.

  4. Optimalkan logika penentuan sinyal untuk membuka posisi. Anda dapat mengatur kondisi pemicu sinyal yang lebih ketat.

  5. Kombinasi dengan pemfilteran model pembelajaran mesin. Model dapat dilatih untuk menilai keandalan sinyal.

Meringkaskan

Strategi pelacakan tren MACD secara keseluruhan adalah strategi kuantitatif yang lebih matang. Strategi ini menggunakan indikator MACD untuk menentukan arah tren pasar, dengan pengendalian risiko mekanisme stop loss, dapat secara efektif melacak tren harga saham. Namun indikator MACD sendiri juga memiliki kekurangan tertentu, mudah menghasilkan sinyal palsu.

Kode Sumber Strategi
/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD Cross Strategy", overlay=true)

// Get MACD values
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
var float entryLongPrice = na
var float entryShortPrice = na

var float highestLongProfit = 0
var float highestShortProfit = 0

var float highestMACD = 0
var float lowestMACD = 0
var bool haveOpenedLong = false
var bool haveOpenedShort = false

var float stoploss = 0.04 // To be adjust for different investment
var float minProfit = 0.05 // To be adjust for different investment

if macdLine > 0
    lowestMACD := 0
    highestMACD := math.max(highestMACD, macdLine)
    haveOpenedShort := false
else
    highestMACD := 0
    lowestMACD := math.min(lowestMACD, macdLine)
    haveOpenedLong := false

// Enter long position when MACD line crosses above the signal line
if ta.crossover(macdLine, signalLine) and macdLine < highestMACD and macdLine > 0 and haveOpenedLong == false
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry = "Long", stop=close*(1 - stoploss))
    entryLongPrice := close
    haveOpenedLong := true

if ta.crossunder(macdLine, signalLine) and macdLine > lowestMACD and macdLine < 0 and haveOpenedShort == false
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Short", stop=close*(1 + stoploss))
    entryShortPrice := close
    haveOpenedShort := true

// log.info("entryLongPrice:{0}", entryLongPrice)
if strategy.position_size > 0
    profit = close - entryLongPrice
    log.info("profit:{0}", profit)
    if profit > 0
        highestLongProfit := math.max(highestLongProfit, profit)
        if profit / entryLongPrice > minProfit and highestLongProfit * 0.8 > profit
            strategy.close("Long")
            highestLongProfit := 0

if strategy.position_size < 0
    profit = entryShortPrice - close
    if profit > 0
        highestShortProfit := math.max(highestShortProfit, profit)
        log.info("highestShortProfit={0}, profit={1}", highestShortProfit, profit)
        if profit / entryShortPrice > minProfit and highestShortProfit * 0.8 > profit
            strategy.close("Short")
            highestShortProfit := 0