Strategi ini menggabungkan indikator momentum dan indikator pelacakan dua arah untuk menangkap sinyal pecah dalam tren yang kuat untuk pelacakan tren.
Indikator HiLo Activator menghitung harga titik tengah menggunakan titik tengah tertinggi tertinggi dan terendah terendah. Ketika harga pecah di atas titik tengah, sinyal beli dihasilkan. Ketika harga pecah di bawah titik tengah, sinyal jual dihasilkan.
Indeks Arah Rata-rata (ADX) digunakan untuk mengukur kekuatan tren. Semakin tinggi nilai ADX, semakin kuat tren. Strategi ini menggunakan ADX dengan ambang untuk menyaring sinyal, hanya menghasilkan sinyal ketika tren cukup kuat.
Indikator arah DI+ dan DI- mewakili kekuatan tren naik dan turun masing-masing. Strategi ini juga menggunakan ambang DI+ dan DI- untuk mengkonfirmasi kekuatan untuk menghindari sinyal yang salah.
Sinyal beli dihasilkan ketika harga pecah di atas titik tengah, ADX lebih tinggi dari ambang batas, dan DI + lebih tinggi dari ambang batas. Sinyal jual dihasilkan ketika harga pecah di bawah titik tengah, ADX lebih tinggi dari ambang batas, dan DI- lebih tinggi dari ambang batas.
Strategi ini menggabungkan keuntungan dari momentum dan indikator trend-mengikuti untuk menangkap awal breakouts dan mengikuti tren erat. kondisi filter tren yang ketat juga membantu menghindari sinyal yang salah dalam konsolidasi dan periode berkisar.
Dibandingkan dengan menggunakan indikator momentum saja, strategi ini menambahkan evaluasi kekuatan tren untuk menyaring sinyal dan meningkatkan profitabilitas.
Secara keseluruhan, strategi dapat melacak tren dengan lancar, masuk dan keluar tepat waktu, dan menghindari terjebak dalam konsolidasi sekaligus mengurangi kerugian dari pembalikan tren.
Strategi ini memiliki beberapa risiko whipsaw dari pembalikan harga sementara yang menghasilkan sinyal yang salah.
Untuk mengurangi risiko whipsaw, tweak parameter HiLo Activator untuk meningkatkan rentang breakout. untuk menangkap lebih banyak kesempatan, menurunkan ambang ADX dan DI dengan mengorbankan kualitas sinyal.
Pengguna juga harus memperhatikan perbedaan antara produk dan lingkungan pasar. ambang yang lebih tinggi umumnya bekerja lebih baik untuk komoditas sementara ambang yang lebih rendah sesuai dengan saham dan forex.
Cara utama untuk mengoptimalkan strategi ini meliputi:
Sesuaikan periode HiLo Activator dan tingkat pemicu untuk menyeimbangkan risiko whipsaw dan waktu.
Sesuaikan periode dan ambang ADX untuk menyeimbangkan kualitas sinyal dan frekuensi.
Tetapkan ambang batas yang terpisah untuk DI+ dan DI- untuk mengakomodasi perbedaan antara tren naik dan penurunan.
Tambahkan strategi stop loss dengan tingkat stop loss untuk mengendalikan kerugian perdagangan tunggal.
Gabungkan dengan indikator tambahan lainnya untuk meningkatkan stabilitas keseluruhan.
Strategi ini mempertimbangkan baik momentum dan indikator trend-mengikuti untuk menghasilkan sinyal selama tren yang kuat. Ini memiliki keuntungan mengikuti tren dengan lancar dan erat, cocok untuk menangkap peluang tren awal. Ini juga memiliki kemampuan kontrol risiko yang wajar untuk mengurangi kerugian dari sinyal yang salah dan whipsaws. Dengan penyesuaian parameter dan penambahan stop loss, dapat mencapai kinerja yang stabil. Sebagai strategi pelacakan tren serbaguna yang sesuai dengan produk dan pasar yang berbeda, ini layak mendapat perhatian dan aplikasi yang baik dari pedagang kuant.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("HiLo Activator with ADX", shorttitle="HASB_ADX", overlay=true) // Parameters for the HiLo Activator length_ha = input(14, title="HiLo Activator Period") offset_ha = input(0, title="Offset") trigger_ha = input(1, title="Trigger for Buy/Sell") // Parameters for ADX adx_length = input(14, title="ADX Period", minval=1) adx_threshold = input(25, title="ADX Threshold") di_threshold = input(50, title="DI Threshold") // Parameter for choosing the number of candles for backtest backtest_candles = input(1000, title="Number of Candles for Backtest", minval=1) // Function to get backtest data getBacktestData() => var float data = na if bar_index >= backtest_candles data := security(syminfo.tickerid, "D", close[backtest_candles]) data // HiLo Activator calculations ha = (highest(high, length_ha) + lowest(low, length_ha)) / 2 // ADX calculations trh = high - high[1] trl = low[1] - low tr = max(trh, trl) atr = sma(tr, adx_length) plus_dm = high - high[1] > low[1] - low ? max(high - high[1], 0) : 0 minus_dm = low[1] - low > high - high[1] ? max(low[1] - low, 0) : 0 smoothed_plus_dm = sma(plus_dm, adx_length) smoothed_minus_dm = sma(minus_dm, adx_length) di_plus = 100 * (smoothed_plus_dm / atr) di_minus = 100 * (smoothed_minus_dm / atr) dx = 100 * abs(di_plus - di_minus) / (di_plus + di_minus) adx = sma(dx, adx_length) // Buy and Sell signals based on HiLo Activator and ADX signalLong = crossover(close, ha) and adx > adx_threshold and di_plus > di_threshold signalShort = crossunder(close, ha) and adx > adx_threshold and di_minus > di_threshold // Plot HiLo Activator and ADX plot(ha, color=color.blue, title="HiLo Activator") plot(offset_ha, color=color.red, style=plot.style_histogram, title="Offset") plot(adx, color=color.purple, title="ADX") // Backtest strategy strategy.entry("Buy", strategy.long, when = signalLong) strategy.entry("Sell", strategy.short, when = signalShort) strategy.close("Buy", when = signalShort) strategy.close("Sell", when = signalLong) // Accuracy percentage var accuracy = 0.0 var totalTrades = 0 var winningTrades = 0 if (signalLong or signalShort) totalTrades := totalTrades + 1 if (signalLong and (not na(signalLong[1]) and (not signalLong[1]))) winningTrades := winningTrades + 1 if (signalShort and (not na(signalShort[1]) and (not signalShort[1]))) winningTrades := winningTrades + 1 accuracy := totalTrades > 0 ? (winningTrades / totalTrades) * 100 : 0 // Plot accuracy percentage on the chart plot(accuracy, title="Accuracy Percentage", color=color.purple, style=plot.style_histogram)