Strategi MACD Lama sahaja

Penulis:ChaoZhang, Tarikh: 2024-01-12 11:02:06
Tag:

img

Ringkasan

Strategi ini adalah berdasarkan kepada penunjuk MACD dan garis panjang dan dekat untuk melaksanakan perdagangan jangka panjang pasangan mata wang. Ia membuka kedudukan apabila garis penunjuk MACD melintasi garis panjang dan menutup kedudukan apabila garis penunjuk MACD melintasi di bawah garis dekat. Strategi stop loss juga dikonfigurasi.

Logika Strategi

Strategi ini menggunakan garis cepat dan perlahan penunjuk MACD. Garis cepat mempunyai parameter EMA 12 hari dan garis perlahan mempunyai parameter EMA 26 hari. Perbezaan antara kedua-dua garis adalah histogram MACD. Di samping itu, EMA 9 hari dikira sebagai garis isyarat. Ia pergi lama apabila histogram MACD melintasi di atas 0.04 dan menutup kedudukan panjang apabila melintasi di bawah 0.015.

Secara khusus, strategi ini mula-mula mengira garis cepat, garis perlahan dan garis isyarat penunjuk MACD. Kemudian garis panjang ditetapkan pada -0.04, garis dekat ditetapkan pada 0.015. Jika histogram MACD semasa lebih besar daripada garis panjang, ia pergi panjang. Jika histogram MACD semasa kurang daripada garis dekat, ia menutup kedudukan panjang. Di samping itu, garis stop loss ditetapkan pada 95% daripada harga kemasukan.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Gunakan penunjuk MACD untuk menilai trend pasaran dengan ketepatan yang tinggi
  2. Penapis berganda dengan garis panjang dan rapat mengelakkan isyarat yang salah
  3. Strategi stop loss mengawal risiko dengan berkesan
  4. Logik yang mudah dan jelas, mudah difahami dan dilaksanakan
  5. Hanya keperluan dan penunjuk MACD, kurang pekerjaan sumber

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Indikator MACD mempunyai beberapa ketinggalan, mungkin terlepas peluang jangka pendek
  2. Tetapan stop loss mungkin terlalu konservatif untuk terus mengesan trend jangka panjang
  3. Penyesuaian parameter memerlukan banyak backtesting, jika tidak, overfitting mungkin berlaku
  4. Hanya terpakai untuk, keberkesanan untuk pasangan lain tidak pasti

Kaedah seperti menyesuaikan parameter, menggabungkan penunjuk lain boleh digunakan untuk mengoptimumkan dan meningkatkan.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Uji gabungan parameter MACD yang berbeza untuk mencari parameter yang lebih baik

    Talian pantas, talian perlahan, talian isyarat dengan panjang yang berbeza boleh cuba mencari kombinasi yang lebih sesuai

  2. Cuba penunjuk lain

    Penunjuk seperti RSI, KD mungkin mempunyai hasil yang sangat berbeza

  3. Mengoptimumkan parameter garis panjang dan dekat

    Parameter yang lebih sesuai boleh dijumpai melalui pengujian semula berulang

  4. Sesuaikan strategi stop loss

    Pertimbangkan hentian untuk membuat hentian kerugian lebih dinamik

  5. Ujian pada pasangan mata wang yang berbeza

    Terapkan strategi kepada pasangan lain dan kaji kesan

Kesimpulan

Kesimpulannya, ini adalah strategi perdagangan jangka panjang yang keseluruhan sangat mudah dan intuitif. Ia menilai keadaan pasaran menggunakan penunjuk MACD dan menetapkan kriteria penapis berganda untuk mengurangkan perdagangan palsu. Kawalan risiko juga dikonfigurasikan melalui stop loss. Logiknya jelas dan pekerjaan sumber rendah. Ia mudah difahami dan dilaksanakan, patut disyorkan. Sudah tentu, masih banyak ruang untuk peningkatan melalui penyesuaian parameter, perubahan penunjuk dan cara lain, untuk menjadikan strategi lebih cemerlang.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "GBPJPY MACD", title = "GBPJPY MACD")
fastMA = input(title="Fast moving average",  defval = 12, minval = 7)
slowMA = input(title="Slow moving average",  defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)

//MACD
// Getting inputs
fast_length = input(title="Fast Length",  defval=12)
slow_length = input(title="Slow Length",  defval=26)
src = input(title="Source",  defval=close)
signal_length = input(title="Signal Smoothing",  minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

//plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
///END OF MACD

//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.04)
linesell = input(title="Close Long", type=float, defval=0.015)

//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)


//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100


//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, linesell)
stop_level = strategy.position_avg_price * (1 - sl_inp)


//Order Entries
strategy.entry("long", strategy.long,  when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)

Lebih lanjut