Esta estrategia se basa en indicadores de impulso combinados con promedios móviles para realizar un seguimiento de las tendencias del mercado.
Calcular el impulso del precio como: (Precio actual - Precio de hace N períodos) / Precio de hace N períodos
Calcular la media móvil de la mitad del precio durante N períodos
Normaliza el valor del impulso al rango de 0 a 1
Cuando el impulso normalizado es mayor que 0,5 y el precio está por encima de la media móvil, ir largo
Cuando el impulso normalizado es inferior a 0,5 y el precio está por debajo de la media móvil, ir corto
Utilizar un mecanismo de stop loss móvil con los niveles de stop loss adecuados
La estrategia es un método de negociación basado en el valor de los precios de los mercados. Cuando el mercado está en tendencia, el precio se moverá persistentemente en una dirección, generando grandes valores de impulso.
Esta estrategia tiene las siguientes ventajas:
Seguimiento de las tendencias del mercado, con grandes ganancias potenciales
Momentum es sensible a los cambios de precios y responde rápidamente a las tendencias
Las medias móviles filtran el ruido aleatorio y se combinan bien con el impulso
Mecanismo de suspensión de pérdidas limita las pérdidas en operaciones individuales
Lógica sencilla y clara, fácil de implementar y hacer pruebas posteriores
Los parámetros flexibles pueden adaptarse a diferentes períodos y regímenes de mercado
En general, esta es una gran estrategia para los mercados de tendencias.
A pesar de las ventajas, hay que tener en cuenta algunos riesgos:
Riesgo de ruptura en tendencias alcistas cuando el precio se invierte después de la ruptura
Riesgo de reversión en tendencias a la baja cuando el precio rebota después de una caída
Whipsaw señala cuando el precio oscila alrededor de la media móvil
Señales incorrectas si los parámetros no se establecen correctamente
Desempeño bajo en mercados con variaciones de rango
Se requiere una pérdida y un movimiento estrictos para evitar una salida prematura
Para abordar estos riesgos, la estrategia de stop loss necesita optimización, filtrar señales innecesarias con parámetros sueltos, ajustar parámetros para diferentes períodos y controlar el tamaño de la posición.
A continuación se presentan algunas formas de optimizar aún más la estrategia:
Prueba diferentes combinaciones de parámetros para obtener los mejores resultados de las pruebas de retroceso
Incorporar las reglas de negociación de la tortuga de salida a 2N pérdida y 1N ganancia
Optimizar el stop loss con indicadores de volatilidad para el stop loss adaptativo
Añadir reglas de posicionamiento basadas en el retiro, el tiempo, etc.
Prueba diferentes métodos de cálculo de momento como el momento promedio móvil exponencial
Añadir filtros de patrón de velas para señales más robustas
Utilice el aprendizaje automático para la optimización de parámetros, selección de características, etc.
Incorporar algunas aportaciones humanas discrecionales en puntos clave
Con estas mejoras, la estrategia puede lograr una mejor estabilidad, adaptabilidad y rentabilidad.
La estrategia de seguimiento de impulso es un enfoque simple y práctico de seguimiento de tendencias. Puede capturar ágilmente las tendencias del mercado y obtener ganancias de burbujas y caídas. Pero los riesgos de ajuste de curva deben administrarse con controles de riesgo disciplinados para mantener la robustez. Con el ajuste de parámetros y las extensiones de funcionalidad, la estrategia puede generar ganancias constantes en más regímenes de mercado.
/*backtest start: 2023-11-02 00:00:00 end: 2023-11-09 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Momentum Strategy, rev.2", overlay=true) // // Data // src = input(close) lookback = input(20) cscheme=input(1, title="Bar color scheme", options=[1,2]) // // Functions // momentum(ts, p) => (ts - ts[p]) / ts[p] normalize(src, len) => hi = highest(src, len) lo = lowest(src, len) res = (src - lo)/(hi - lo) // // Main // price = close mid = sma(src, lookback) mom = normalize(momentum(price, lookback),100) // // Bar Colors // clr1 = cscheme==1?black: red clr2 = cscheme==1?white: green barcolor(close < open ? clr1 : clr2) // // Strategy // if (mom > .5 and price > mid ) strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE") else strategy.cancel("MomLE") if (mom < .5 and price < mid ) strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE") else strategy.cancel("MomSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)