
Esta estrategia se combina con el uso de indicadores de dinámica y indicadores de seguimiento bidireccional para capturar señales de ruptura en una tendencia fuerte y lograr el seguimiento de la tendencia. Hacer más cuando el precio se rompe hacia arriba y hacer espacio cuando el precio se rompe hacia abajo, pertenece a la clase de estrategia de seguimiento de tendencia.
Utiliza el indicador de activación HiLo para calcular el precio intermedio, que toma como precio intermedio el punto medio entre el precio más alto y el precio más bajo. Cuando el precio sube, genera una señal de compra cuando se rompe el precio intermedio, y cuando el precio baja, genera una señal de venta cuando se rompe el precio intermedio.
El índice de tendencia promedio ADX se utiliza para determinar la fuerza de la tendencia. Cuanto mayor es el valor de ADX, más fuerte es la tendencia. Esta estrategia se combina con el uso de un ADX con una cierta devaluación para filtrar la señal y generar una señal solo si la tendencia es lo suficientemente fuerte.
Los indicadores multidireccionales DI+ y DI- indican la intensidad de la cabeza múltiple y la intensidad de la cabeza vacía respectivamente. Esta estrategia funciona al mismo tiempo con DI+ y DI- de un determinado umbral para confirmar la intensidad de la cabeza múltiple y la cabeza vacía, para evitar señales erróneas.
Cuando el precio se eleva por encima del precio medio, ADX es superior a la depreciación y DI + es superior a la depreciación, se genera una señal de compra; cuando el precio baja por encima del precio medio, ADX es superior a la depreciación y DI - es superior a la depreciación, se genera una señal de venta.
Esta estrategia combina las ventajas de los indicadores de dinámica y los indicadores de tendencia para capturar brechas en los precios al principio de la evolución de la tendencia, lo que ayuda a mantener la tendencia. Al mismo tiempo, las condiciones de filtración de la tendencia son estrictas y ayudan a evitar señales erróneas en los mercados de consolidación y oscilación.
En comparación con el uso de un solo indicador de la dinámica, esta estrategia se añade al momento de la generación de la señal de juicio sobre la fuerza de la tendencia, puede reducir la señal de error, mejorar la probabilidad de obtener ganancias. En comparación con el uso de un solo indicador de seguimiento de la tendencia, esta estrategia de la generación de señales a través de la ruptura, puede entrar en la tendencia antes.
En general, las estrategias permiten un buen seguimiento de la tendencia, entrando y saliendo a tiempo y evitando el deslizamiento; al mismo tiempo, se reducen las pérdidas en la reversión de la tendencia.
Esta estrategia tiene un cierto riesgo de whipsaw, ya que el precio puede tener un cierto grado de reajuste que genere una señal de reversión. Además, el uso de condiciones de filtración ADX y DI puede perderse en parte de la primera etapa de la operación.
Para reducir el riesgo de whipsaw, se pueden ajustar adecuadamente los parámetros del activador HiLo, aumentando la amplitud de ruptura. Para obtener más oportunidades, se pueden reducir los requisitos de umbral de ADX y DI, pero se debe compensar la calidad de la señal.
Además, los usuarios deben prestar atención a las diferencias en la configuración de los parámetros en diferentes variedades y entornos de mercado. En general, las mercancías necesitan un umbral más alto; las acciones y las divisas pueden usar un umbral más bajo.
Esta estrategia puede ser optimizada mediante ajustes en la configuración de los parámetros. Las principales direcciones de optimización incluyen:
Ajuste el ciclo del activador HiLo y la amplitud del disparo, equilibrando el riesgo de la whipsaw y el tiempo de entrada.
Ajustar los requisitos de ciclo y de umbral de ADX para equilibrar la calidad de la señal y la frecuencia de entrada.
Ajuste los valores límite de los DI de múltiples cabezas y cabezas vacías, respectivamente, para distinguir entre las diferencias ambientales de múltiples cabezas y cabezas vacías.
Agregar estrategias de stop loss y establecer puntos de stop loss para controlar las pérdidas individuales.
Optimización, en combinación con otros indicadores auxiliares, para mejorar la estabilidad general de la estrategia.
Esta estrategia tiene en cuenta la integración de indicadores de dinámica y indicadores de tendencia, generando señales de compra y venta en una tendencia fuerte. Tiene características de tendencia sucesiva y cercana, adecuada para capturar oportunidades tempranas en la tendencia. Al mismo tiempo, también tiene cierta capacidad de control de riesgo, que puede reducir las pérdidas causadas por señales erróneas y whipsaw.
/*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)