Strategi Kebalikan Heikin-Ashi

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

img

Ringkasan

Strategi ini menggunakan lilin Heikin-Ashi yang dipertingkatkan untuk mengenal pasti titik pembalikan harga dan menangkap perubahan trend yang ketara. Ia tergolong dalam strategi perdagangan jangka pendek. Strategi ini mengira 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 jatuh. Strategi ini menggunakan perubahan warna lilin HA sebagai isyarat perdagangan untuk pergi pendek pada perubahan hijau ke perubahan merah dan pergi panjang pada perubahan merah ke perubahan hijau.

Logika Strategi

Logik teras strategi adalah untuk mengesan perubahan warna dalam lilin HA untuk menentukan pembalikan harga.

Pertama, dapatkan harga terbuka, tinggi, rendah dan dekat dari data HA atau data asal 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 mengira arus HA buka dan tutup mengikut formula.

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

Mengenal pasti isyarat pembalikan berdasarkan perubahan warna HA antara bar.

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

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

Buka kedudukan panjang/pendek apabila isyarat mencetuskan.

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

Tutup kedudukan pada isyarat bertentangan.

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

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

Kelebihan

Kelebihan utama strategi ini ialah:

  1. Menggunakan lilin HA yang lebih baik menapis bunyi bising dan mengenal pasti pembalikan dengan lebih jelas.

  2. Logik mudah berdasarkan perubahan warna HA, mudah difahami dan dilaksanakan.

  3. Perdagangan pembalikan menangkap perubahan trend dengan cepat untuk keuntungan.

  4. Boleh disesuaikan untuk menggunakan lilin HA atau tidak untuk pasaran yang berbeza.

  5. Panah candlestick secara visual menunjukkan pembalikan.

  6. Parameter seperti jangka masa boleh dioptimumkan untuk produk yang berbeza.

Risiko

Terdapat juga beberapa risiko yang perlu diperhatikan:

  1. Perdagangan pembalikan boleh terdedah kepada perangkap. Isyarat memerlukan kebolehpercayaan yang kukuh.

  2. Whipsaws yang kerap boleh berlaku di pasaran yang berbeza.

  3. Tidak dapat menentukan tempoh trend, mungkin membalikkan dan kemudian meneruskan trend.

  4. Penunjuk tunggal terdedah kepada isyarat palsu, harus digabungkan dengan yang lain.

  5. Overfitting perlu dielakkan melalui pengoptimuman.

Penyelesaian:

  1. Mengoptimumkan parameter untuk isyarat yang boleh dipercayai.

  2. Tambah penapis trend untuk mengelakkan pasaran yang berbeza.

  3. Gunakan stop loss untuk mengawal kerugian setiap perdagangan.

  4. Memastikan isyarat dengan penunjuk lain untuk mengelakkan isyarat palsu.

  5. Uji balik menyeluruh untuk mengoptimumkan parameter dan mengelakkan pemasangan berlebihan.

Peningkatan

Strategi ini boleh ditingkatkan dengan cara berikut:

  1. Mengoptimumkan jangka masa untuk produk yang berbeza.

  2. Uji penggunaan lilin HA mengikut ciri produk.

  3. Tambah penapis trend untuk mengelakkan whipsaws di pasaran yang berbeza.

  4. Melaksanakan berhenti dinamik berdasarkan turun naik pasaran.

  5. Memastikan isyarat dengan penunjuk tambahan.

  6. Menggabungkan saiz kedudukan berdasarkan pengurusan risiko.

  7. Memperluas untuk perdagangan arbitraj pelbagai produk.

  8. Sesuaikan parameter berdasarkan hasil backtest untuk mengelakkan pemasangan berlebihan.

Kesimpulan

Strategi ini memanfaatkan kekuatan lilin HA yang dipertingkatkan untuk menemui titik pembalikan yang berpotensi melalui perubahan warna HA. Berbanding dengan lilin biasa, HA menapis bunyi bising untuk isyarat yang lebih bersih. Strategi ini melaksanakan logik perdagangan pembalikan dengan cara yang mudah dan intuitif yang mudah digunakan untuk perdagangan langsung. Tetapi perdagangan pembalikan menghadapi risiko perangkap dan harus dioptimumkan untuk ketepatan isyarat yang lebih besar. Menggabungkan dengan analisis trend dan faktor lain dapat membentuk sistem yang lebih lengkap. Secara keseluruhan, strategi ini menyediakan pendekatan untuk mengenal pasti pembalikan menggunakan data HA dan boleh diperluas untuk strategi perdagangan pembalikan yang mantap.


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