
Strategi ini didasarkan pada peningkatan HA rata-rata untuk mengidentifikasi titik perubahan harga untuk menangkap perubahan tren yang lebih jelas, termasuk strategi perdagangan garis pendek. Strategi ini menggunakan HA untuk menghitung garis K untuk membuka, tinggi, rendah, dan harga, dan berdasarkan hubungan harga untuk menilai warna garis K akhir. Ketika harga naik, dengan garis pilar hijau, ketika harga turun, dengan garis pilar merah.
Logika inti dari strategi ini adalah dengan menghitung perubahan warna garis HA untuk menentukan perubahan harga.
Pertama, berdasarkan pilihan parameter input untuk menggunakan atau tidak menggunakan HA untuk menghitung nilai garis K. Jika dipilih, maka akan diambil dari data HA untuk membuka, tinggi, rendah, dan harga; Jika tidak, maka akan diambil langsung dari data asli garis K.
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 berdasarkan rumus perhitungan HA mendapatkan HA untuk periode ini.
haclose = (haOpen + haHigh + haLow + haClose) / 4
haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2
Kemudian berdasarkan harga buka dan buka HA dihitung harga tertinggi dan harga terendah HA.
hahigh = max(haHigh, max(haopen, haclose))
halow = min(haLow, min(haopen, haclose))
Warna garis kolom HA periode ini berdasarkan hubungan harga buka dan harga buka HA.
hacolor = haclose > haopen ? color.green : color.red
Harga berbalik berdasarkan perubahan warna HA dari dua siklus berturut-turut.
turnGreen = haclose > haopen and haclose[1] <= haopen[1]
turnRed = haclose <= haopen and haclose[1] > haopen[1]
Pada saat terjadi sinyal over dan under, posisi over dan under dibuka.
strategy.entry("long", 1, when=turnGreen)
strategy.entry("short", 0, when=turnRed)
Pada saat terjadi sinyal sebaliknya, posisi akan dipadamkan.
strategy.close("long", when=turnRed)
Dengan cara ini, perubahan warna garis HA dapat menangkap titik-titik reversal harga dan memungkinkan strategi reversal trading.
Strategi ini memiliki beberapa keuntungan utama:
Menggunakan peningkatan HA untuk menghitung data K-line, dapat menyaring sebagian dari kebisingan dan mengidentifikasi titik-titik perubahan tren dengan lebih jelas.
Hanya berdasarkan perubahan warna garis HA sederhana untuk menilai titik balik, logika strategi sederhana dan jelas, mudah dipahami untuk diimplementasikan.
Menggunakan metode trading reverse, Anda dapat menangkap perubahan tren tepat waktu dan mendapatkan keuntungan reverse yang lebih cepat.
Dapat dikonfigurasi apakah menggunakan HA untuk menghitung data K-line, dapat disesuaikan sesuai dengan pasar yang berbeda.
Menggambar bentuk indikasi candle memudahkan intuisi untuk menentukan titik balik harga.
Dapat disesuaikan dengan parameter pengoptimalan seperti siklus transaksi, dan berlaku untuk varietas yang berbeda.
Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:
Perdagangan berbalik mudah ditiru dan perlu memastikan sinyal berbalik memiliki keandalan yang cukup.
Di pasar yang bergejolak, sinyal-sinyal pembalikan dapat sering terjadi yang menyebabkan overtrading.
Tidak bisa menentukan berapa lama tren ini akan berlangsung, dan mungkin akan menyebabkan kerugian jika tren ini terus berlanjut setelah terjadi pembalikan.
Indikator tunggal rentan terhadap terobosan palsu dan harus digunakan dalam kombinasi dengan indikator lainnya.
Periksa apakah parameter telah dioptimalkan dengan baik untuk menghindari overfit.
Solusi yang sesuai:
Optimalkan parameter untuk memastikan sinyal perdagangan stabil dan dapat diandalkan.
Dengan menggunakan filter tren, Anda dapat menghindari perdagangan di pasar yang tidak stabil.
Menetapkan mekanisme penarikan stop loss untuk mengendalikan kerugian tunggal.
Menggabungkan indikator lain untuk mengkonfirmasi, menghindari sinyal palsu.
Mengukur kembali parameter optimasi dan mencegah overmatching.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Optimalkan parameter siklus transaksi untuk menyesuaikan karakteristik varietas yang berbeda.
Tes menggunakan nilai HA, berdasarkan karakteristik varietas perdagangan.
Menambahkan kondisi penyaringan tren untuk menghindari pembalikan pasar yang bergoyang.
Tetapkan Stop Loss Dinamis dan sesuaikan Stop Loss dengan pergerakan pasar.
Sinyal konfirmasi transaksi dikombinasikan dengan indikator lainnya.
Menambahkan strategi pengelolaan dana, menyesuaikan posisi.
Meningkatkan Arbitrage Berbagai Varietas
Parameter yang diedit berdasarkan hasil pengujian ulang untuk mencegah overfit.
Strategi ini memanfaatkan keuntungan dari perbaikan garis rata-rata HA untuk menemukan kemungkinan titik balik harga dengan menilai perubahan warna garis kolum HA. Dibandingkan dengan menggunakan garis K secara langsung, garis rata-rata HA dapat menyaring sebagian dari kebisingan, dan sinyal reversal lebih jelas. Strategi ini mengimplementasikan ide perdagangan reversal dengan cara yang sederhana dan intuitif, dengan logika yang sederhana dan jelas, dan mudah dioperasikan secara langsung.
/*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)