Trend MACD Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2023-12-11 14:57:00
Tag:

img

Ringkasan

Strategi Mengikuti Trend MACD adalah strategi perdagangan kuantitatif berdasarkan penunjuk MACD. Strategi ini mengenal pasti isyarat salib emas dan salib kematian MACD untuk menentukan trend pasaran dan menjejaki trend harga.

Logika Strategi

Logik teras Strategi Mengikuti Trend MACD adalah:

  1. Mengira garis MACD dan garis isyarat.
  2. Apabila garis MACD melintasi di atas 0 dari bawah ke atas, catat titik tertinggi kemudian, dan tunggu isyarat silang kematian.
  3. Apabila garis MACD melintasi di bawah 0 dari atas ke bawah, catat titik terendah kemudian, dan tunggu isyarat salib emas.
  4. Apabila golden cross berlaku, catat harga penutupan semasa sebagai titik masuk panjang, tetapkan titik stop loss, buka kedudukan panjang.
  5. Apabila kematian cross berlaku, merekod harga penutupan semasa sebagai titik masuk pendek, menetapkan titik stop loss, buka kedudukan pendek.
  6. Apabila memegang kedudukan panjang, jika nisbah keuntungan mencapai sasaran yang telah ditetapkan atau pengeluaran mencapai titik stop loss, tutup kedudukan untuk merealisasikan keuntungan.
  7. Apabila memegang kedudukan pendek, jika nisbah keuntungan mencapai sasaran yang telah ditetapkan atau pengeluaran mencapai titik stop loss, tutup kedudukan untuk merealisasikan keuntungan.

Melalui mekanisme trend berikut ini, strategi boleh menangkap perubahan trend pasaran tepat pada masanya dan membuat keuntungan.

Analisis Kelebihan

Strategi Mengikuti Trend MACD mempunyai kelebihan berikut:

  1. Sumber isyarat strategi adalah tunggal dan jelas, dihasilkan secara langsung oleh penunjuk MACD, mengelakkan gangguan isyarat.
  2. Menggunakan ciri-ciri salib emas dan salib kematian penunjuk MACD untuk menentukan arah trend pasaran, dengan penilaian yang tepat.
  3. Mengesan perubahan trend tepat pada masanya, dengan keupayaan mengesan keuntungan yang kuat.
  4. Kawalan risiko yang betul, dengan mekanisme stop loss.

Analisis Risiko

Strategi Mengikuti Trend MACD juga mempunyai risiko berikut:

  1. Indikator MACD cenderung menghasilkan isyarat palsu, yang boleh membawa kepada kerugian dalam operasi jangka pendek.
  2. Tetapan titik stop loss yang tidak betul boleh meningkatkan kerugian tunggal.
  3. Sukar untuk menyeimbangkan antara nisbah pelacakan keuntungan dan titik berhenti kerugian, dengan risiko pelacakan berlebihan yang membawa kepada kerugian.

Untuk menangani risiko di atas, langkah-langkah pengoptimuman berikut boleh diambil:

  1. Gabungkan dengan penunjuk lain untuk menapis isyarat palsu.
  2. Sesuaikan titik stop loss secara dinamik.
  3. Mengoptimumkan parameter nisbah penjejakan keuntungan dan titik hentian kerugian.

Arahan pengoptimuman

Strategi Mengikuti Trend MACD boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter penunjuk MACD untuk mengurangkan kadar isyarat palsu.

  2. Tambah penunjuk lain seperti jumlah dagangan untuk menapis isyarat. Syarat jumlah dagangan minimum boleh ditetapkan.

  3. Tetapkan mekanisme stop loss yang dinamik. Titik stop loss boleh diselaraskan secara dinamik berdasarkan turun naik.

  4. Mengoptimumkan logik penentuan isyarat untuk membuka kedudukan.

  5. Menggabungkan model pembelajaran mesin untuk menapis isyarat. Model boleh dilatih untuk menilai kebolehpercayaan isyarat.

Kesimpulan

Secara amnya, Strategi Mengikuti Trend MACD adalah strategi kuantitatif yang agak matang. Ia menggunakan penunjuk MACD untuk menentukan arah trend pasaran, dan mengawal risiko dengan mekanisme stop loss, yang dapat dengan berkesan mengesan trend harga. Tetapi penunjuk MACD itu sendiri juga mempunyai beberapa kelemahan, mudah menghasilkan isyarat palsu.


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

Lebih lanjut