Strategi Kebalikan Heikin-Ashi

Penulis:ChaoZhang, Tanggal: 2023-11-16 15:44:14
Tag:

img

Gambaran umum

Strategi ini terutama menggunakan lilin Heikin-Ashi yang ditingkatkan untuk mengidentifikasi titik pembalikan harga dan menangkap perubahan tren yang signifikan. Ini termasuk dalam strategi perdagangan jangka pendek. Strategi ini menghitung harga terbuka, tinggi, rendah dan dekat lilin menggunakan HA, dan menentukan warna akhir berdasarkan hubungan harga. Lilin hijau mewakili harga yang meningkat dan lilin merah mewakili harga yang turun. Strategi ini menggunakan perubahan warna lilin HA sebagai sinyal perdagangan untuk pergi pendek pada perubahan hijau ke perubahan merah dan pergi panjang pada perubahan merah ke perubahan hijau. Ini adalah strategi pembalikan yang khas.

Logika Strategi

Logika inti dari strategi ini adalah untuk mendeteksi perubahan warna di lilin HA untuk menentukan pembalikan harga.

Pertama, dapatkan harga buka, tinggi, rendah dan dekat dari data HA atau data asli berdasarkan parameter input.

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close

haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open  

haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high

haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

Kemudian hitung arus HA buka dan tutup sesuai dengan rumus.

haclose = (haOpen + haHigh + haLow + haClose) / 4  

haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2

Lebih lanjut mendapatkan harga HA tertinggi dan terendah.

hahigh = max(haHigh, max(haopen, haclose))

halow = min(haLow, min(haopen, haclose))  

Tentukan warna lilin HA berdasarkan hubungan terbuka/dekat.

hacolor = haclose > haopen ? color.green : color.red

Mengidentifikasi sinyal pembalikan berdasarkan perubahan warna HA antara batang.

turnGreen = haclose > haopen and haclose[1] <= haopen[1]  

turnRed = haclose <= haopen and haclose[1] > haopen[1] 

Buka posisi panjang/pendek saat sinyal dipicu.

strategy.entry("long", 1, when=turnGreen)
  
strategy.entry("short", 0, when=turnRed) 

Tutup posisi pada sinyal berlawanan.

strategy.close("long", when=turnRed)

Dengan mendeteksi perubahan warna lilin HA, strategi menangkap titik pembalikan harga untuk perdagangan pembalikan.

Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menggunakan lilin HA yang lebih baik menyaring kebisingan dan mengidentifikasi pembalikan dengan lebih jelas.

  2. Logika sederhana berdasarkan perubahan warna HA, mudah dipahami dan diimplementasikan.

  3. Perdagangan reversal menangkap perubahan tren dengan cepat untuk keuntungan.

  4. Dapat disesuaikan untuk menggunakan lilin HA atau tidak untuk pasar yang berbeda.

  5. Panah candlestick secara visual menunjukkan pembalikan.

  6. Parameter seperti timeframe dapat dioptimalkan untuk produk yang berbeda.

Risiko

Ada juga beberapa risiko yang perlu dicatat:

  1. Perdagangan reversal bisa rentan terhadap perangkap.

  2. Whipsaws yang sering dapat terjadi di pasar yang berbeda.

  3. Tidak dapat menentukan durasi tren, mungkin membalikkan lalu melanjutkan tren.

  4. Indikator tunggal rentan terhadap sinyal palsu, harus dikombinasikan dengan yang lain.

  5. Overfitting perlu dihindari melalui optimasi.

Solusi:

  1. Mengoptimalkan parameter untuk sinyal yang dapat diandalkan.

  2. Tambahkan filter tren untuk menghindari pasar yang bervariasi.

  3. Gunakan stop loss untuk mengendalikan kerugian per perdagangan.

  4. Konfirmasi sinyal dengan indikator lain untuk menghindari sinyal palsu.

  5. Melakukan backtest secara menyeluruh untuk mengoptimalkan parameter dan mencegah overfitting.

Peningkatan

Strategi dapat ditingkatkan dengan cara berikut:

  1. Optimalkan kerangka waktu untuk produk yang berbeda.

  2. Uji penggunaan lilin HA per karakteristik produk.

  3. Tambahkan filter tren untuk menghindari whipsaws di pasar berkisar.

  4. Mengimplementasikan berhenti dinamis berdasarkan volatilitas pasar.

  5. Konfirmasi sinyal dengan indikator tambahan.

  6. Menggabungkan ukuran posisi berdasarkan manajemen risiko.

  7. Mengembangkan perdagangan arbitrage multi-produk.

  8. Sesuaikan parameter berdasarkan hasil backtest untuk mencegah overfit.

Kesimpulan

Strategi ini memanfaatkan kekuatan lilin HA yang ditingkatkan untuk menemukan titik pembalikan potensial melalui perubahan warna HA. Dibandingkan dengan lilin biasa, HA menyaring kebisingan untuk sinyal yang lebih bersih. Strategi ini menerapkan logika perdagangan pembalikan dengan cara yang sederhana dan intuitif yang mudah digunakan untuk perdagangan langsung. Tetapi perdagangan pembalikan menghadapi risiko perangkap dan harus dioptimalkan untuk akurasi sinyal yang lebih besar. Menggabungkan dengan analisis tren dan faktor lain dapat membentuk sistem yang lebih lengkap. Secara keseluruhan, strategi ini memberikan pendekatan untuk mengidentifikasi pembalikan menggunakan data HA dan dapat diperluas untuk strategi perdagangan pembalikan yang kuat.


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

//@version=4
strategy("Heikin-Ashi Change Strategy", overlay=true)

UseHAcandles    = input(true, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

// Calculation HA Values 
haopen = 0.0
haclose = (haOpen + haHigh + haLow + haClose) / 4
haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = max(haHigh, max(haopen, haclose))
halow = min(haLow, min(haopen, haclose))

// HA colors
hacolor = haclose > haopen ? color.green : color.red

// Signals
turnGreen = haclose > haopen and haclose[1] <= haopen[1]
turnRed = haclose <= haopen and haclose[1] > haopen[1]

// Plotting
bgcolor(hacolor)

plotshape(turnGreen, style=shape.arrowup, location=location.belowbar, color=color.green)
plotshape(turnRed, style=shape.arrowdown, location=location.abovebar, color=color.red)

// Alerts
alertcondition(turnGreen, "ha_green", "ha_green")
alertcondition(turnRed, "ha_red", "ha_red")

strategy.entry("long", 1, when=turnGreen)
//strategy.entry("short", 0, when=turnRed)
strategy.close("long", when=turnRed)


Lebih banyak