Estrategias de ruptura de tendencias


Fecha de creación: 2024-03-22 14:48:37 Última modificación: 2024-03-22 14:48:37
Copiar: 1 Número de Visitas: 640
1
Seguir
1617
Seguidores

Estrategias de ruptura de tendencias

Descripción general

Se trata de una estrategia de trading cuantitativa que utiliza el indicador ATR y el precio de cierre para capturar brechas de tendencia. La estrategia determina la dirección de la tendencia mediante el cálculo dinámico de las líneas de tendencia ascendentes y descendentes, y genera una señal de negociación cuando el precio de cierre rompe la línea de tendencia. La estrategia establece al mismo tiempo un stop loss y un precio objetivo, y puede realizar un stop loss móvil según la volatilidad.

Principio de estrategia

  1. Calcular la señal ATR: atr_signal = atr ((atr_period)
  2. La línea de tendencia ascendente y descendente:
    • Línea de tendencia baja: lower_trend = low - atr_mult*atr_signal
    • Línea de tendencia hacia arriba: upper_trend = high + atr_mult*atr_signal
  3. Ajuste dinámico de la línea de tendencia, si la línea de tendencia se rompe, se mantiene sin cambios, o se actualiza al valor más reciente
  4. El color de la línea de tendencia se determina en función de la posición relativa del precio de cierre y la línea de tendencia para determinar la dirección de la tendencia
  5. Se generan señales de transacción:
    • Haga más señales: No tiene posiciones y los precios de cierre superan la línea de tendencia
    • Señales de baja: no hay posiciones y el precio de cierre ha roto la línea de tendencia
  6. Establezca un precio de parada y un precio objetivo:
    • Detención de pérdidas: el factor de amplitud de ATR en el último precio de transacción
    • Precio objetivo: precio de la última transacción ± Stop Loss * Ratio de ganancias y pérdidas
  7. El límite móvil:
    • Detención múltiple: línea de tendencia superior
    • Detención en blanco: línea de tendencia más baja

Análisis de las ventajas

  1. Línea de tendencia de ajuste dinámico basado en la volatilidad para adaptarse a las diferentes condiciones del mercado
  2. Las líneas de tendencia tienen marcas de color orientadas para identificar tendencias
  3. Utiliza el ATR como medida de la volatilidad y establece un stop loss y un precio objetivo razonables
  4. Función móvil de stop loss para reducir al mínimo las retiradas mientras se garantizan ganancias
  5. Alto grado de parametrización, adaptado a diferentes variedades y ciclos

Análisis de riesgos

  1. Las estrategias de ruptura de tendencia son propensas a generar demasiadas señales y causar pérdidas en mercados convulsos.
  2. La selección incorrecta de los parámetros ATR puede causar que la línea de tendencia sea demasiado sensible o lenta, lo que afecta la calidad de la señal
  3. Las tasas fijas de ganancias y pérdidas pueden no adaptarse a las diferentes características del mercado
  4. El movimiento de stop loss podría ser un corte de tendencia

La solución:

  1. Introducir filtros de tendencia o indicadores de ajuste de la oscilación para evitar pérdidas en los mercados de la oscilación
  2. Optimización de los parámetros ATR en función de las características de la variedad y el ciclo
  3. Optimización de la relación de pérdidas y pérdidas y movimiento de la lógica de stop loss para mejorar la relación de riesgo-beneficio de la estrategia
  4. La combinación de métodos de identificación de tendencias mejora el stop loss móvil para capturar más ganancias de tendencias

Dirección de optimización

  1. Combinación de varios períodos de tiempo para identificar tendencias con períodos grandes y señales de activación con períodos pequeños
  2. Aumentar la eficacia de las señales mediante la verificación de indicadores cuantitativos antes de la ruptura de la línea de tendencia
  3. Optimización de la gestión de posiciones y aumento de la operación de la banda
  4. Optimización de parámetros para la relación entre pérdidas y ganancias
  5. Mejora de la lógica de stop loss móvil para reducir el stop loss prematuro en las tendencias

La multiplicación de los ciclos de tiempo ayuda a filtrar el ruido y a captar las tendencias de manera más estable. La verificación de los indicadores cuantitativos antes de la ruptura elimina las señales falsas. La optimización de la administración de posiciones mejora la eficiencia de la utilización de los fondos. La optimización de los parámetros de pérdidas y pérdidas mejora el riesgo de ganancias de la estrategia.

Resumir

La estrategia utiliza ATR como una medida de la volatilidad, la posición de la línea de tendencia de ajuste dinámico, para capturar la tendencia de ruptura de la situación. Establecer objetivos de parada y ganancias de manera razonable, y utilizar el movimiento de la parada de pérdidas para bloquear las ganancias. Los parámetros son ajustables, adaptables.

Código Fuente de la Estrategia
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "Claw-Pattern", overlay=true, calc_on_every_tick=true, default_qty_type= strategy.percent_of_equity,default_qty_value=10, currency="USD")
//Developer: Trading Strategy Guides
//Creator: Trading Strategy Guides
//Date: 3/18/2024
//Description: A trend trading system strategy 

atr_period = input(title="ATR Period", defval=120, type=input.integer)
atr_mult = input(title="ATR Multiplier", defval=2, type=input.integer)
dir = input(title="Direction (Long=1, Short=-1, Both = 0)", defval=1, type=input.integer)
factor = input(title="Stop Level Deviation (% Chan.)", defval=0.75, type=input.float)
rr = input(title="Reward to Risk Multiplier", defval=2, type=input.integer)
trail_bar_start = input(title="Trail Stop Bar Start", defval=20, type=input.integer)
col_candles = input(title="Enable Colored Candles", defval=false, type=input.bool)

atr_signal = atr(atr_period)

lower_trend = low - atr_mult*atr_signal
upper_trend = high + atr_mult*atr_signal

upper_trend := upper_trend > upper_trend[1] and close < upper_trend[1] ? upper_trend[1] : upper_trend
lower_trend := lower_trend < lower_trend[1] and close > lower_trend[1] ? lower_trend[1] : lower_trend

upper_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? color.red : na
lower_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? na : color.green

trend_line = lower_trend

plot(lower_trend, color=lower_color, title="Lower Trend Color")
plot(upper_trend, color=upper_color, title="Upper Trend Color")

is_buy = strategy.position_size == 0 and crossover(close, upper_trend[1]) and upper_color[1]==color.red and (dir == 1 or dir == 0)
is_sell = strategy.position_size == 0 and crossover(close, lower_trend[1]) and lower_color[1]==color.green and (dir == -1 or dir == 0)

if is_buy
    strategy.entry("Enter Long", strategy.long)
else if is_sell
    strategy.entry("Enter Short", strategy.short)