Strategi MACD Lang Hanya

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

img

Gambaran umum

Strategi ini didasarkan pada indikator MACD dan garis panjang dan dekat untuk menerapkan perdagangan jangka panjang dari pasangan mata uang. Ini membuka posisi ketika garis indikator MACD melintasi garis panjang dan menutup posisi ketika garis indikator MACD melintasi di bawah garis dekat. Strategi stop loss juga dikonfigurasi.

Logika Strategi

Strategi ini menggunakan garis cepat dan lambat dari indikator MACD. Garis cepat memiliki parameter EMA 12 hari dan garis lambat memiliki parameter EMA 26 hari. Perbedaan antara kedua garis adalah histogram MACD. Selain itu, EMA 9 hari dihitung sebagai garis sinyal.

Secara khusus, strategi pertama menghitung garis cepat, garis lambat dan garis sinyal dari indikator MACD. Kemudian garis panjang ditetapkan pada -0.04, garis dekat ditetapkan pada 0.015. Jika histogram MACD saat ini lebih besar dari garis panjang, itu akan panjang. Jika histogram MACD saat ini lebih kecil dari garis dekat, itu menutup posisi panjang. Selain itu, garis stop loss ditetapkan pada 95% dari harga masuk.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Menggunakan indikator MACD untuk menilai tren pasar dengan akurasi tinggi
  2. Filter ganda dengan garis panjang dan sempit menghindari sinyal yang salah
  3. Strategi stop loss mengontrol risiko secara efektif
  4. Logika yang sederhana dan jelas, mudah dimengerti dan diterapkan
  5. Hanya kebutuhan dan indikator MACD, kurang pekerjaan sumber daya

Analisis Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Indikator MACD memiliki beberapa ketinggalan, mungkin kehilangan peluang jangka pendek
  2. Pengaturan stop loss mungkin terlalu konservatif untuk terus melacak tren jangka panjang
  3. Pengaturan parameter membutuhkan banyak backtesting, jika tidak overfitting dapat terjadi
  4. Hanya berlaku untuk, efektivitas untuk pasangan lain tidak pasti

Metode seperti menyesuaikan parameter, menggabungkan indikator lain dapat digunakan untuk mengoptimalkan dan meningkatkan.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Uji kombinasi parameter MACD yang berbeda untuk menemukan parameter yang lebih baik

    Jalur cepat, jalur lambat, jalur sinyal dengan panjang yang berbeda dapat dicoba untuk menemukan kombinasi yang lebih cocok

  2. Cobalah indikator lain

    Indikator seperti RSI, KD mungkin memiliki hasil yang sangat berbeda

  3. Mengoptimalkan parameter garis panjang dan dekat

    Parameter yang lebih cocok dapat ditemukan melalui backtesting berulang

  4. Sesuaikan strategi stop loss

    Pertimbangkan stop trailing untuk membuat stop loss lebih dinamis

  5. Tes pada pasangan mata uang yang berbeda

    Menerapkan strategi untuk pasangan lain dan memeriksa efek

Kesimpulan

Kesimpulannya, ini adalah strategi perdagangan jangka panjang yang sangat sederhana dan intuitif. Ini menilai kondisi pasar menggunakan indikator MACD dan menetapkan kriteria filter ganda untuk mengurangi perdagangan palsu. Kontrol risiko juga dikonfigurasi melalui stop loss. Logika jelas dan pekerjaan sumber daya rendah. Mudah dipahami dan diimplementasikan, layak direkomendasikan. Tentu saja, masih banyak ruang untuk perbaikan melalui penyesuaian parameter, perubahan indikator dan cara lain, untuk membuat strategi lebih luar biasa.


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