Estrategia de trading con impulso de ruptura de patrones combinada con el método de optimización de stop-profit

TP SL
Fecha de creación: 2024-12-11 17:20:09 Última modificación: 2024-12-11 17:20:09
Copiar: 1 Número de Visitas: 370
1
Seguir
1617
Seguidores

Estrategia de trading con impulso de ruptura de patrones combinada con el método de optimización de stop-profit

Descripción general

La estrategia es un sistema de comercio de seguimiento de tendencias basado en la teoría de la clasificación de precios, que permite la automatización de la negociación mediante la identificación de la estructura de clasificación superior y inferior en el mercado, combinada con condiciones de disparo y paradas de un número fijo de puntos. El núcleo de la estrategia es establecer puntos de entrada múltiples en la parte superior de la clasificación inferior y puntos de entrada en blanco en la parte inferior de la clasificación superior, al mismo tiempo que se opera el control del riesgo con los puntos de paradas correspondientes.

Principio de estrategia

La lógica central de la estrategia incluye los siguientes pasos clave:

  1. Identificación de tipo: Se identifica el tipo superior y inferior comparando los puntos altos y bajos de tres líneas K consecutivas. El tipo inferior se forma cuando el punto bajo de la línea K intermedia es inferior a los dos lados de la línea K; el tipo superior se forma cuando el punto alto de la línea K intermedia es superior a los dos lados de la línea K.
  2. Condiciones de ingreso: después de identificar el tipo inferior, se establece un precio de disparo múltiple en 107 puntos por encima de él; después de identificar el tipo superior, se establece un precio de disparo único en 107 puntos por debajo de él.
  3. Establecimiento de paradas: Establecimiento de paradas de la misma cantidad de puntos (de 107 puntos) sobre la base del precio de entrada después de abrir una posición.
  4. Administración de la posición: el sistema sigue el seguimiento de las últimas posiciones clasificadas y actualiza el precio de entrada correspondiente.

Ventajas estratégicas

  1. Fuerte objetividad: las estrategias se basan en una clara definición matemática para identificar la estructura del mercado, evitando los desequilibrios de los juicios subjetivos.
  2. Control de riesgos: La configuración de paradas con un número fijo de puntos permite que los objetivos de ganancias de cada operación sean claros y los riesgos controlables.
  3. Adaptabilidad: Las estrategias pueden funcionar en diferentes entornos de mercado, especialmente en mercados con mucha volatilidad.
  4. Alto grado de automatización: Todo el proceso de transacción, desde el reconocimiento de señales hasta la ejecución, está automatizado, reduciendo la intervención humana.

Riesgo estratégico

  1. Riesgo de falsa ruptura: el mercado puede revertirse inmediatamente después de una ruptura de corta duración, lo que lleva a una parada de pérdidas.
  2. Riesgo de mercado de oscilación: en mercados de oscilación horizontal, la clasificación de los tops y bottoms frecuentes puede causar demasiadas señales de negociación.
  3. Riesgo de puntos fijos: el uso de puntos de entrada y de parada fijos puede no ser adecuado para todos los entornos de mercado.
  4. Riesgo de deslizamiento: En un mercado de alta volatilidad, es posible que se enfrente a un grave problema de deslizamiento.

Dirección de optimización de la estrategia

  1. Optimización del número de puntos dinámicos: se puede ajustar dinámicamente el número de puntos de entrada y el número de puntos de parada en función de la volatilidad del mercado.
  2. Filtración de tendencias: aumenta los indicadores de tendencia y abre posiciones solo en la dirección de la tendencia principal.
  3. Identificación del entorno de mercado: agregar un mecanismo de juicio del entorno de mercado, con diferentes configuraciones de parámetros en diferentes estados de mercado.
  4. Optimización de la gestión de posiciones: Introducción de un sistema dinámico de gestión de posiciones, que ajusta el volumen de apertura de las posiciones según el valor neto de la cuenta y el riesgo del mercado.

Resumir

La estrategia, mediante la combinación de la teoría de la clasificación y la idea de la ruptura de la dinámica, construye un sistema de negociación completo. La ventaja de la estrategia reside en su alto grado de objetividad y automatización, pero también hay ciertos problemas de adaptabilidad al entorno del mercado.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fractal Buy/Sell Strategy with 107 Pips Target", overlay=true)

// 输入参数
trigger_pips = input.int(107, title="Entry Distance (Pips)")  // 入场点距离底分型或顶分型的距离
take_profit_pips = input.int(107, title="Take Profit (Pips)") // 止盈点数

pip_value = syminfo.mintick * 10 // 点值(每点等于多少价格单位)

// 计算分型
is_bottom_fractal = low[1] < low[2] and low[1] < low[0] // 判断是否为底分型
is_top_fractal = high[1] > high[2] and high[1] > high[0] // 判断是否为顶分型

// 存储分型位置
var float last_bottom_fractal = na
var float last_top_fractal = na

// 更新分型值
if is_bottom_fractal
    last_bottom_fractal := low[1]
    
if is_top_fractal
    last_top_fractal := high[1]

// 计算开盘价格
bottom_trigger_price = na(last_bottom_fractal) ? na : last_bottom_fractal + trigger_pips * pip_value
top_trigger_price = na(last_top_fractal) ? na : last_top_fractal - trigger_pips * pip_value

// 交易逻辑:底分型多单和顶分型空单
if not na(last_bottom_fractal)
    if close <= bottom_trigger_price
        strategy.entry("Buy", strategy.long)
        strategy.exit("Take Profit", from_entry="Buy", limit=bottom_trigger_price + take_profit_pips * pip_value)
        
if not na(last_top_fractal)
    if close >= top_trigger_price
        strategy.entry("Sell", strategy.short)
        strategy.exit("Take Profit", from_entry="Sell", limit=top_trigger_price - take_profit_pips * pip_value)

// 绘制分型和触发价格
plotshape(series=is_bottom_fractal, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bottom Fractal")
plotshape(series=is_top_fractal, style=shape.triangledown, location=location.abovebar, color=color.red, title="Top Fractal")
plot(bottom_trigger_price, title="Buy Trigger", color=color.green, linewidth=1)
plot(top_trigger_price, title="Sell Trigger", color=color.red, linewidth=1)