Strategi Perpindahan MACD dan EMA

Penulis:ChaoZhang, Tarikh: 2023-12-28 15:22:14
Tag:

img

Ringkasan

Strategi ini menggunakan persilangan garis cepat dan perlahan penunjuk MACD untuk menentukan kemasukan dan keluar. Penunjuk EMA juga digunakan untuk menilai arah trend. Ia menjadi panjang apabila garis cepat memecahkan garis perlahan dari bawah dan nilai MACD di bawah 0; ia menjadi pendek apabila garis cepat memecahkan garis perlahan dari atas dan nilai MACD di atas 0. Keluar stop loss ditetapkan pada nilai EMA ketika isyarat dihasilkan; mengambil keuntungan ditetapkan kepada 2 kali harga kemasukan.

Prinsip Strategi

Apabila garis cepat MACD menembusi garis perlahan dari bawah dan nilai MACD di bawah 0, ia menunjukkan bahawa purata bergerak jangka pendek harga mula meningkat dan momentum mula menguat, jadi kedudukan panjang boleh diambil. Apabila garis cepat menembusi garis perlahan dari atas dan nilai MACD di atas 0, ia menunjukkan bahawa purata bergerak jangka pendek harga mula jatuh dan momentum mula melemah, jadi kedudukan pendek boleh diambil.

Indikator EMA menilai arah trend keseluruhan. Nilai EMA yang lebih tinggi menunjukkan trend menaik manakala nilai yang lebih rendah menunjukkan trend menurun. Strategi hanya berjalan lama apabila EMA menunjukkan trend menaik dan berjalan pendek apabila EMA menunjukkan trend menurun untuk mengelakkan perdagangan kontra trend.

Stop loss ditetapkan pada nilai EMA ketika isyarat dihasilkan. EMA boleh menilai trend dengan baik. Menetapkannya sebagai nilai EMA dapat mengurangkan kebarangkalian stop loss diambil oleh titik rendah atau tinggi sebelumnya. Ambil keuntungan ditetapkan kepada 2 kali harga masuk, memberikan nisbah ganjaran risiko 2.

Analisis Kelebihan

Strategi ini menggabungkan penunjuk MACD dan EMA untuk menentukan masa kemasukan dan arah trend dengan lebih baik. Kaedah stop loss mengelakkan mengejar kenaikan dan penjualan jatuh. Nisbah ganjaran risiko 2 adalah tetapan parameter yang agak konservatif. Parameter penunjuk MACD boleh diselaraskan untuk menyesuaikan diri dengan fleksibel dengan perubahan pasaran.

Analisis Risiko

Indikator MACD mempunyai ketinggalan purata, pusingan penunjuk cenderung untuk menjangkiti pusingan harga. Strategi tidak dapat menentukan titik masuk tertentu, ada beberapa buta. Stop loss cenderung dipicu oleh tindakan harga yang tidak menentu.

Arahan pengoptimuman

  1. Mengoptimumkan parameter MACD untuk menjadikannya lebih sensitif atau stabil.
  2. Masukkan penunjuk lain untuk menentukan titik masuk yang lebih tepat.
  3. Sesuaikan parameter Stop Loss dan Take Profit secara dinamik.
  4. Mengoptimumkan pengurusan wang untuk menentukan saiz kedudukan yang lebih sesuai.

Ringkasan

Strategi ini menggabungkan penunjuk MACD dan EMA untuk menentukan masa kemasukan dan arah trend. Ia menggunakan kaedah yang mudah dan munasabah untuk menghentikan kerugian dan mengambil keuntungan. Pengoptimuman lanjut boleh dilakukan pada ketinggalan MACD, parameter berhenti kerugian dan mengambil keuntungan dan lain-lain untuk mendapatkan hasil strategi yang lebih baik.


/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD & EMA 200 Strategy", overlay=true)

// MACD Settings
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
src = close

[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength)

// 200 EMA
ema200 = ta.ema(src, 200)
plot(ema200, title="200 EMA", color=color.red)

// Long Condition
longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200
if (longCondition and strategy.position_size <= 0)
    strategy.entry("Long", strategy.long)
    longStopLoss = ema200
    longTakeProfit = close + 2 * (close - ema200)
    strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)

// Short Condition
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200
if (shortCondition and strategy.position_size <= 0)
    strategy.entry("Short", strategy.short)
    shortStopLoss = ema200
    shortTakeProfit = close - 2 * (ema200 - close)
    strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)


Lebih lanjut