Strategi MACD Multi Timeframe

Penulis:ChaoZhang, Tanggal: 2023-11-28 15:33:35
Tag:

img

Gambaran umum

Multi Timeframe MACD Strategy adalah strategi perdagangan kuantitatif yang melacak tren menggunakan indikator MACD di beberapa kerangka waktu. Strategi ini menghasilkan sinyal perdagangan dengan menilai apakah tren harga konsisten di berbagai periode (3 menit, 5 menit, 15 menit, 30 menit).

Logika Strategi

Logika inti dari strategi ini adalah untuk menghitung situasi penyeberangan indikator MACD di beberapa kerangka waktu (3 menit, 5 menit, 15 menit, 30 menit). Pertama, indikator MACD dihitung pada setiap kerangka waktu untuk menilai tren harga (naik atau turun) di bawah kerangka waktu itu. Kemudian, tren harga di beberapa kerangka waktu dinilai secara komprehensif:

  1. Ketika harga naik di semua kerangka waktu, sinyal beli dihasilkan.
  2. Ketika harga jatuh di semua kerangka waktu, sinyal jual dihasilkan.

Dengan menilai tren di seluruh kerangka waktu, kebisingan pasar jangka pendek dapat secara efektif disaring, membuat sinyal perdagangan lebih andal.

Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Deteksi tren di seluruh kerangka waktu menyaring kebisingan dan membuat sinyal perdagangan lebih dapat diandalkan.
  2. Parameter indikator MACD dapat disesuaikan agar sesuai dengan lingkungan pasar yang berbeda.
  3. Kerangka waktu untuk penilaian komprehensif dapat dikonfigurasi secara fleksibel untuk mendefinisikan aturan perdagangan secara independen.

Risiko dan Solusi

Strategi ini juga memiliki risiko berikut:

  1. Ketika menilai konsistensi tren di semua kerangka waktu, pembalikan lokal mungkin terlewatkan.
  2. Pengaturan parameter MACD yang tidak benar dapat menyebabkan kinerja sinyal perdagangan yang buruk.

Solusi yang sesuai:

  1. Aturan penilaian dapat dipermudah untuk memungkinkan pembalikan harga pada kerangka waktu individu untuk menangkap lebih banyak peluang.
  2. Parameter MACD perlu disesuaikan sesuai dengan pasar yang berbeda untuk membuat sinyal perdagangan lebih sesuai dengan tren saat ini.

Arahan Optimasi

Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:

  1. Meningkatkan atau mengurangi jumlah kerangka waktu yang diperlukan untuk penilaian komprehensif untuk menemukan kombinasi yang optimal.
  2. Uji pengaturan parameter indikator MACD yang berbeda.
  3. Sesuaikan aturan masuk dan keluar khusus berdasarkan hasil backtesting yang sebenarnya.

Ringkasan

Strategi MACD Multi Timeframe memanfaatkan kemampuan penilaian tren dari indikator MACD untuk mendeteksi pergerakan harga di seluruh kerangka waktu, yang dapat secara efektif menyaring kebisingan dan meningkatkan kualitas sinyal.


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

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("3", "Timeframe 1")
TF_2_time = input("5", "Timeframe 2")
TF_3_time = input("15", "Timeframe 3")
TF_4_time = input("30", "Timeframe 4")

fastLen = input(title="Fast Length",  defval=12)
slowLen = input(title="Slow Length",  defval=26)
sigLen  = input(title="Signal Length",  defval=9)
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)

width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor

TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)

Lebih banyak