Estrategia de seguimiento de tendencias utilizando el indicador de impulso de precios


Fecha de creación: 2024-01-17 13:58:19 Última modificación: 2024-01-17 13:58:19
Copiar: 1 Número de Visitas: 540
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias utilizando el indicador de impulso de precios

Descripción general

La estrategia es una estrategia de seguimiento de tendencias que utiliza indicadores de la dinámica de los precios. Para determinar la tendencia del mercado, calcula los cambios en los precios de cierre durante un período determinado y realiza las operaciones de compra o venta correspondientes cuando los precios tienen una tendencia ascendente o descendente.

Principio de estrategia

El indicador central de la estrategia es el movimiento del precio. La fórmula para calcular el movimiento es:

momentum = close - close[n]

Donde n representa la duración del ciclo de la dinámica. Cuando el momento es > 0, indica que el precio ha subido durante el ciclo actual; cuando el momento es < 0, indica que el precio ha bajado durante el ciclo actual.

La estrategia establece primero un parámetro de confirmBars, que representa el juicio de tendencia de las líneas K necesarias para ejecutar la operación. En el rango de retracción, se realiza una entrada adicional si el momento > 0 continúa en la línea de la raíz K de confirmBars; si el momento < 0 continúa en la línea de la raíz K de confirmBars, se realiza una entrada en blanco.

La clave de esta estrategia para determinar la tendencia es la estadística de la cantidad de líneas K con un momento consecutivo mayor o menor que 0, a través de las variables bcount y scount. Cuando se cumplen las condiciones correspondientes, se vuelven a +1, y si no se cumplen, a 0. Cuando el recuento alcanza confirmBars, se ejecuta una operación de sobre-ocupe o de descuento.

Ventajas estratégicas

Se trata de una estrategia de seguimiento de tendencias más sencilla, con las siguientes ventajas:

  1. La lógica es simple y la implementación fácil de entender
  2. Los indicadores de movimiento son sensibles a los cambios de precios y pueden capturar tendencias rápidamente.
  3. Parámetros configurables para ajustar la sensibilidad de juicio
  4. Se puede utilizar en varios entornos de mercado

Riesgo estratégico

La estrategia también tiene sus riesgos:

  1. Es probable que se produzcan varias transacciones convulsivas y excesivas.
  2. Los parámetros que se necesitan para configurar de manera razonable, en particular las barras de confirmación para filtrar la oscilación
  3. La incapacidad de responder eficazmente a los impactos de las emergencias del mercado
  4. La retroalimentación puede diferir de la discoteca, requiere revisión de datos y optimización de parámetros adicionales

Dirección de optimización de la estrategia

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Aumentar la lógica de stop loss y controlar el riesgo de una sola transacción
  2. Aumentar los filtros de ruptura para evitar falsas señales causadas por la oscilación de precios
  3. Ajuste de parámetros como confirmBars según las diferentes variedades y el entorno del mercado
  4. Aumentar el criterio multifactorial, combinado con otros indicadores para confirmar la admisión
  5. Adaptación de parámetros y reglas de filtración con métodos de aprendizaje automático

Resumir

En general, la estrategia de ruptura dinámica es una estrategia de seguimiento de tendencias sencilla y práctica, que se adapta a una de las estrategias de entrada para el comercio cuantitativo. En el proceso de aplicación, se debe tener en cuenta el control de la frecuencia de las transacciones y evitar el exceso de transacciones y los costos de transacción demasiado altos. Al mismo tiempo, los parámetros y las reglas de filtración deben ajustarse y optimizarse según la variedad real y el entorno del mercado para que la estrategia tenga la máxima eficacia.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Momentum Strategy [TS Trader]", overlay=true)

confirmBars = input(1)
momentumLength = input(14, title="Momentum Length")

price = close
momentum = close - close[momentumLength]

// === INPUT BACKTEST RANGE ===
fromYear = input.int(2019, title="Backtest Start Year")
fromMonth = input.int(1, title="Backtest Start Month", minval=1, maxval=12)
fromDay = input.int(1, title="Backtest Start Day", minval=1, maxval=31)
toYear = input.int(2023, title="Backtest End Year")
toMonth = input.int(12, title="Backtest End Month", minval=1, maxval=12)
toDay = input.int(31, title="Backtest End Day", minval=1, maxval=31)

startTimestamp = timestamp(fromYear, fromMonth, fromDay, 00, 00)
endTimestamp = timestamp(toYear, toMonth, toDay, 23, 59)

inBacktestRange = true

// === STRATEGY LOGIC ===
bcond = momentum > 0
bcount = 0
bcount := bcond ? nz(bcount[1]) + 1 : 0
if (bcount == confirmBars and inBacktestRange)
    strategy.entry("Buy", strategy.long, comment="Long")

scond = momentum < 0
scount = 0
scount := scond ? nz(scount[1]) + 1 : 0
if (scount == confirmBars and inBacktestRange)
    strategy.entry("Sell", strategy.short, comment="Short")

// Plotting Momentum
plot(momentum, title="Momentum", color=color.purple)