
Strategi ini digunakan untuk mengenal pasti titik peralihan harga berdasarkan garis rata-rata HA yang lebih baik, untuk menangkap perubahan trend yang lebih jelas, dan merupakan strategi perdagangan garis pendek. Strategi ini menggunakan HA untuk mengira garis K untuk pembukaan, tinggi, rendah, dan harga, dan menilai warna garis K akhir berdasarkan hubungan harga. Apabila harga naik, ia ditunjukkan dengan garis tiang hijau, dan apabila harga turun, ia ditunjukkan dengan garis tiang merah.
Logik utama strategi ini adalah dengan mengira perubahan warna garis HA untuk menentukan perubahan harga.
Pertama, berdasarkan pilihan parameter input untuk menggunakan atau tidak menggunakan HA untuk mengira nilai baris K. Jika dipilih, ia diambil dari data HA untuk buka, tinggi, rendah, harga; jika tidak, ia diambil terus dari data asal baris 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 formula pengiraan HA, harga buka dan bukaan HA untuk tempoh ini diperoleh.
haclose = (haOpen + haHigh + haLow + haClose) / 4
haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2
Kemudian, harga tertinggi dan terendah HAC dikira berdasarkan harga buka dan tutup HAC.
hahigh = max(haHigh, max(haopen, haclose))
halow = min(haLow, min(haopen, haclose))
Warna garis tiang HA dalam kitaran ini berdasarkan hubungan harga buka dan bayar HA.
hacolor = haclose > haopen ? color.green : color.red
Isyarat pembalikan harga berdasarkan perubahan warna HA dalam dua kitaran berturut-turut.
turnGreen = haclose > haopen and haclose[1] <= haopen[1]
turnRed = haclose <= haopen and haclose[1] > haopen[1]
Apabila berlaku isyarat jual-beli dan jual-belah, kedudukan jual-beli dan jual-belah dibuka.
strategy.entry("long", 1, when=turnGreen)
strategy.entry("short", 0, when=turnRed)
Apabila berlaku isyarat berlawanan, ia akan melemahkan kedudukan.
strategy.close("long", when=turnRed)
Dengan cara ini, perubahan dalam warna garis tiang HA dapat ditangkap untuk titik perubahan harga dan strategi perdagangan reversal.
Strategi ini mempunyai kelebihan utama:
Menggunakan data garis K yang diperbaiki untuk mengira HA, ia boleh menyaring sebahagian daripada kebisingan dan mengenal pasti titik perubahan trend dengan lebih jelas.
Penentuan titik balik hanya berdasarkan perubahan warna garis tiang HA yang mudah, logik strategi ringkas dan jelas, mudah difahami untuk dilaksanakan.
Menggunakan kaedah perdagangan reverse, anda boleh menangkap perubahan trend tepat pada masanya dan mendapatkan keuntungan reverse yang lebih cepat.
Boleh dikonfigurasi untuk menggunakan data garis K untuk mengira HA, boleh disesuaikan mengikut pasaran yang berbeza.
Menggambar bentuk petunjuk candle memudahkan intuisi untuk menentukan titik perubahan harga.
Ia boleh disesuaikan dengan parameter pengoptimuman seperti kitaran dagangan dan lain-lain untuk pelbagai jenis.
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
Perdagangan reverse mudah ditiru, perlu memastikan isyarat reverse mempunyai kebolehpercayaan yang mencukupi.
Dalam pasaran yang bergolak, isyarat-isyarat pembalikan mungkin sering berlaku yang menyebabkan perdagangan berlebihan.
Tidak dapat menentukan berapa lama trend ini akan berterusan, dan mungkin menyebabkan kerugian jika trend ini berbalik.
Indeks tunggal mudah terjejas oleh terobosan palsu dan harus digunakan bersama-sama dengan kombinasi lain.
Memeriksa parameter yang dioptimumkan untuk mengelakkan overfit.
Penyelesaian:
Optimumkan parameter untuk memastikan isyarat dagangan stabil dan boleh dipercayai.
Berpadu dengan penapisan trend, mengelakkan perdagangan pasaran yang bergolak.
Menetapkan mekanisme penangguhan kerugian untuk mengawal kerugian tunggal.
Untuk mengesahkan, anda perlu mengkombinasikan dengan indikator lain untuk mengelakkan isyarat palsu.
Mengesan parameter pengoptimuman sepenuhnya untuk mengelakkan overfit.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Optimumkan parameter kitaran dagangan untuk menyesuaikan diri dengan ciri-ciri varieti yang berbeza.
Ujian menggunakan nilai HA, dipilih mengikut ciri-ciri varieti yang diperdagangkan.
Menambah syarat penapisan trend untuk mengelakkan pembalikan pasaran yang bergolak.
Tetapkan Hentian Dinamik dan sesuaikan Hentian anda dengan turun naik pasaran.
Bersama-sama dengan penunjuk lain, ia mengesahkan isyarat transaksi.
Menambah strategi pengurusan wang, menyesuaikan kedudukan.
Memperluaskan pelbagai jenis perdagangan lelang.
Mengubah parameter mengikut hasil tinjauan semula untuk mengelakkan overfit.
Strategi ini menggunakan kelebihan untuk memperbaiki garis rata-rata HA untuk mencari kemungkinan titik balik harga dengan menilai perubahan warna garis tiang HA. Berbanding dengan menggunakan garis K secara langsung, garis rata-rata HA dapat menyaring sebahagian daripada kebisingan, dan isyarat pembalikan lebih jelas. Strategi ini mewujudkan pemikiran perdagangan pembalikan dengan cara yang mudah dan intuitif, logiknya mudah dan jelas, dan mudah untuk beroperasi 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)