Strategi MACD Multi-Kerangka Waktu


Tanggal Pembuatan: 2023-11-28 15:33:35 Akhirnya memodifikasi: 2023-11-28 15:33:35
menyalin: 0 Jumlah klik: 1201
1
fokus pada
1617
Pengikut

Strategi MACD Multi-Kerangka Waktu

Ringkasan

Multi Timeframe MACD Strategy adalah strategi perdagangan kuantitatif yang menggunakan indikator MACD untuk melakukan pelacakan tren pada beberapa frame waktu. Strategi ini mengirimkan sinyal perdagangan dengan menghitung indikator MACD pada periode waktu yang berbeda (menit 3, 5, 15, 30 menit) untuk menentukan apakah pergerakan harga konsisten antara periode yang berbeda.

Prinsip Strategi

Logika inti dari strategi ini adalah menghitung MACD pada beberapa frame waktu (seperti 3 menit, 5 menit, 15 menit, dan 30 menit). Pertama, menghitung MACD pada setiap frame waktu dan menilai pergerakan harga pada frame waktu tersebut berdasarkan MACD. Kemudian menilai pergerakan harga pada beberapa frame waktu secara keseluruhan:

  1. Sebuah sinyal beli dihasilkan ketika harga naik di semua kerangka waktu;
  2. Sinyal jual dihasilkan ketika harga turun dalam semua kerangka waktu.

Dengan cara menilai tren dari waktu ke waktu, kita dapat secara efektif menyaring kebisingan pasar jangka pendek dan membuat sinyal perdagangan lebih andal.

Keunggulan Strategis

Strategi ini memiliki keuntungan sebagai berikut:

  1. Mengidentifikasi tren dari waktu ke waktu, memfilter kebisingan, dan membuat sinyal perdagangan lebih dapat diandalkan;
  2. Parameter indikator MACD dapat disesuaikan untuk menyesuaikan dengan kondisi pasar yang berbeda;
  3. Konfigurasi yang fleksibel membutuhkan penilaian komprehensif, kerangka waktu, dan aturan perdagangan yang ditentukan sendiri.

Risiko Strategis dan Solusi

Strategi ini juga memiliki risiko sebagai berikut:

  1. Dalam menilai keseragaman tren di semua kerangka waktu, peluang untuk pembalikan lokal mungkin terlewatkan.
  2. Setting parameter indikator MACD yang tidak tepat dapat menyebabkan sinyal perdagangan yang tidak efektif.

Solusi yang sesuai:

  1. Peraturan penilaian komprehensif dapat dilonggarkan secara tepat, yang memungkinkan reversal harga pada setiap kerangka waktu, untuk mengambil lebih banyak peluang;
  2. Ada kebutuhan untuk menyesuaikan parameter indikator MACD sesuai dengan pasar yang berbeda, sehingga sinyal perdagangan lebih sesuai dengan situasi saat ini.

Arah optimasi

Strategi ini dapat terus dioptimalkan dalam beberapa hal:

  1. Meningkatkan atau mengurangi kerangka waktu yang dibutuhkan untuk penilaian komprehensif, mencari kombinasi yang optimal;
  2. Uji pengaturan parameter MACD yang berbeda;
  3. Aturan masuk dan keluar yang spesifik disesuaikan dengan situasi yang sebenarnya.

Meringkaskan

Multi-frame MACD strategi menggunakan indikator MACD untuk menilai tren, memungkinkan untuk mendeteksi pergerakan harga dari waktu ke waktu, dapat secara efektif memfilter kebisingan, meningkatkan kualitas sinyal. Strategi ini dapat disesuaikan dengan parameter dan aturan yang dioptimalkan, fleksibel untuk beradaptasi dengan berbagai varietas dan situasi, memiliki kepraktisan yang kuat.

Kode Sumber Strategi
/*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)