Sistema de comercio cuantitativo de estrategia de tendencia de ruptura de precios de Leapfrog basado en niveles de precios clave de múltiples períodos

HOD LOD PMH PML PDH PDL MA RSI ATR ADX
Fecha de creación: 2025-01-06 16:06:30 Última modificación: 2025-01-06 16:06:30
Copiar: 1 Número de Visitas: 328
1
Seguir
1617
Seguidores

Sistema de comercio cuantitativo de estrategia de tendencia de ruptura de precios de Leapfrog basado en niveles de precios clave de múltiples períodos

Descripción general

La estrategia es un sistema de negociación de ruptura basado en múltiples niveles de precios clave. Principalmente rastrea seis puntos clave: máximo intradiario (HOD), mínimo intradiario (LOD), máximo previo a la apertura del mercado (PMH), mínimo previo a la apertura del mercado (PML), máximo del día anterior (PDH) y mínimo del día anterior (PDL). niveles, las señales comerciales se generan cuando el precio rompe estos niveles. La estrategia utiliza el trading automatizado para ejecutar operaciones de compra y venta en función del cruce de precios de niveles clave.

Principio de estrategia

La lógica central de la estrategia incluye las siguientes partes clave:

  1. Cálculo de niveles de precios clave: utilice la función request.security para obtener datos de precios para diferentes períodos de tiempo y calcular seis niveles de precios clave.
  2. Configuración de la condición de apertura: abrir una posición larga cuando el precio rompa PMH o PDH hacia arriba; abrir una posición corta cuando el precio rompa PML o PDL hacia abajo.
  3. Configuración de la condición de cierre: cuando se mantiene una posición larga, si el precio alcanza HOD, la posición se cierra; cuando se mantiene una posición corta, si el precio alcanza LOD, la posición se cierra.
  4. Visualización gráfica: utilice líneas horizontales de diferentes colores para marcar cada nivel de precio: blanco para HOD, morado para LOD, naranja para PDH, azul para PDL, verde para PMH y rojo para PML.

Ventajas estratégicas

  1. Referencia de precios multidimensional: comprenda de manera integral las tendencias del mercado monitoreando los niveles de precios clave durante múltiples períodos de tiempo.
  2. La lógica del trading de ruptura es clara: las señales comerciales se generan en función de las rupturas de precios y las reglas comerciales son claras y fáciles de entender.
  3. Alto grado de automatización: el sistema calcula automáticamente varios niveles de precios y ejecuta transacciones, reduciendo la intervención humana.
  4. Fuerte efecto de visualización: cada nivel de precio se muestra intuitivamente a través de líneas horizontales de diferentes colores, lo que resulta conveniente para el análisis y el juicio.
  5. Fuerte adaptabilidad: la estrategia se puede aplicar a diferentes productos comerciales y períodos de tiempo.

Riesgo estratégico

  1. Riesgo de ruptura falsa: el mercado puede experimentar una ruptura falsa que resulte en una señal falsa.
  2. Dependencia de la volatilidad: Las estrategias pueden tener un desempeño deficiente en entornos de baja volatilidad.
  3. Control de riesgos insuficiente: falta de mecanismos dinámicos de stop loss y toma de beneficios.
  4. Dependencia del entorno del mercado: puede operar con frecuencia en un mercado lateral donde la tendencia no es obvia.
  5. Impacto del deslizamiento: es posible que enfrente un mayor deslizamiento en mercados con poca liquidez.

Dirección de optimización de la estrategia

  1. Añadir filtrado de indicadores técnicos:
  • Presentamos el indicador RSI para filtrar la sobrecompra y la sobreventa
  • Uso de ATR para establecer un stop loss dinámico
  • Combine ADX para determinar la fuerza de la tendencia
  1. Mejorar la gestión de riesgos:
  • Configurar un mecanismo de stop loss dinámico
  • Se agregó la función de trailing stop
  • Establecer un mecanismo de obtención de beneficios por lotes
  1. Confirmación de señal de optimización:
  • Confirmación de aumento de volumen
  • Se agregó confirmación de tendencia de múltiples períodos
  • Configurar el mecanismo de confirmación del retraso de la señal

Resumir

Esta estrategia captura oportunidades de mercado mediante el monitoreo y la utilización de múltiples niveles de precios clave, tiene una lógica clara y un alto grado de automatización. Pero también existen ciertos riesgos que es necesario optimizar añadiendo filtros de indicadores técnicos, mejorando los mecanismos de gestión de riesgos, etc. La principal ventaja de la estrategia radica en su sistema de referencia de precios multidimensional, que le permite comprender mejor las tendencias del mercado, pero en la aplicación real, se requieren ajustes de parámetros específicos según los diferentes entornos del mercado.

Código Fuente de la Estrategia
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus

//@version=6
strategy("HOD/LOD/PMH/PML/PDH/PDL Strategy by tradingbauhaus ", shorttitle="HOD/LOD Strategy", overlay=true)

// Daily high and low
dailyhigh = request.security(syminfo.tickerid, 'D', high)
dailylow = request.security(syminfo.tickerid, 'D', low)

// Previous day high and low
var float previousdayhigh = na
var float previousdaylow = na
high1 = request.security(syminfo.tickerid, 'D', high[1])
low1 = request.security(syminfo.tickerid, 'D', low[1])
high0 = request.security(syminfo.tickerid, 'D', high[0])
low0 = request.security(syminfo.tickerid, 'D', low[0])

// Yesterday high and low
if (hour == 9 and minute > 30) or hour > 10
    previousdayhigh := high1
    previousdaylow := low1
else
    previousdayhigh := high0
    previousdaylow := low0

// Premarket high and low
t = time("1440", "0000-0930") // 1440 is the number of minutes in a whole day.
is_first = na(t[1]) and not na(t) or t[1] < t
ending_hour = 9
ending_minute = 30

var float pm_high = na
var float pm_low = na

if is_first and barstate.isnew and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    pm_low := low
else 
    pm_high := pm_high[1]
    pm_low := pm_low[1]

if high > pm_high and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    
if low < pm_low and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_low := low

// Plotting levels
plot(dailyhigh, style=plot.style_line, title="Daily high", color=color.white, linewidth=1, trackprice=true)
plot(dailylow, style=plot.style_line, title="Daily low", color=color.purple, linewidth=1, trackprice=true)
plot(previousdayhigh, style=plot.style_line, title="Previous Day high", color=color.orange, linewidth=1, trackprice=true)
plot(previousdaylow, style=plot.style_line, title="Previous Day low", color=color.blue, linewidth=1, trackprice=true)
plot(pm_high, style=plot.style_line, title="Premarket high", color=color.green, linewidth=1, trackprice=true)
plot(pm_low, style=plot.style_line, title="Premarket low", color=color.red, linewidth=1, trackprice=true)

// Strategy logic
// Long entry: Price crosses above PMH or PDH
if (ta.crossover(close, pm_high) or ta.crossover(close, previousdayhigh)) and strategy.opentrades == 0
    strategy.entry("Long", strategy.long)

// Short entry: Price crosses below PML or PDL
if (ta.crossunder(close, pm_low) or ta.crossunder(close, previousdaylow)) and strategy.opentrades == 0
    strategy.entry("Short", strategy.short)

// Exit long: Price reaches HOD
if strategy.position_size > 0 and ta.crossover(close, dailyhigh)
    strategy.close("Long")

// Exit short: Price reaches LOD
if strategy.position_size < 0 and ta.crossunder(close, dailylow)
    strategy.close("Short")