Estrategia de negociación de medias móviles de cruce de precios adaptable

HMA SL TP
Fecha de creación: 2024-09-26 16:12:36 Última modificación: 2024-09-26 16:12:36
Copiar: 2 Número de Visitas: 441
1
Seguir
1617
Seguidores

Estrategia de negociación de medias móviles de cruce de precios adaptable

Descripción general

La estrategia de trading de línea de paridad cruzada de precios auto-adaptativa es una estrategia de trading cuantitativa basada en el promedio móvil de Hull (HMA). La estrategia utiliza el cruce de precios con HMA para generar señales de compra y venta, mientras que establece niveles fijos de stop loss y stop loss para administrar el riesgo y los beneficios. La estrategia utiliza HMA de 104 ciclos como indicador principal, combinado con el cruce de precios para desencadenar operaciones.

Principio de estrategia

El núcleo de la estrategia es el uso de la Hull Moving Average (HMA) como indicador principal. La HMA es una media móvil avanzada que puede responder rápidamente a los cambios en los precios y al mismo tiempo reducir el retraso. La lógica de la estrategia es la siguiente:

  1. Calcula el HMA de 104 ciclos
  2. Cuando el precio sube por encima de la HMA, abre más.
  3. Cuando el precio cruza el HMA hacia abajo, abre una posición para hacer un vacío.
  4. Establezca un nivel fijo de stop loss ($1.25) y un stop loss ($37.5) para cada operación.
  5. Se utilizan dos contratos por transacción.

Las estrategias de seguimiento de posiciones abiertas para asegurar que no se vuelva a abrir una posición en una posición ya existente. Cuando una transacción es liquidada, el sistema restablece la señal, permitiendo que la nueva señal de negociación entre en vigor.

Ventajas estratégicas

  1. Adaptabilidad: HMA puede adaptarse rápidamente a los cambios en el mercado y reducir las falsas señales.
  2. Gestión de riesgos: El uso de niveles fijos de stop loss y stop-loss para controlar eficazmente el riesgo de cada operación.
  3. Simple y claro: las reglas de las transacciones son claras, fáciles de entender y ejecutar.
  4. Negociación bidireccional: captura de oportunidades al alza y a la baja para aumentar el potencial de ganancias.
  5. Automatización: Las estrategias pueden ser completamente automatizadas, con menos intervención humana y menos impacto emocional.

Riesgo estratégico

  1. Frecuencia de transacción: puede generar demasiadas señales de transacción en un mercado con gran volatilidad, lo que aumenta los costos de transacción.
  2. Paradas/Stop-Losses fijos: pueden no ser adecuados para todas las condiciones del mercado, en algunos casos pueden salir demasiado pronto o perderse una gran tendencia.
  3. Confianza en un solo indicador: Confiar solo en HMA puede no funcionar bien en ciertos entornos de mercado.
  4. Retraso: A pesar de la reducción del retraso en la HMA, es posible que no haya reaccionado en un punto de inflexión aguda.
  5. Falta de filtros de entornos de mercado: sin tener en cuenta las tendencias o la volatilidad del mercado en general, puede operar en condiciones de mercado inadecuadas.

Dirección de optimización de la estrategia

  1. Introducción de indicadores adicionales: en combinación con otros indicadores técnicos (como RSI o MACD) para confirmar la señal y mejorar la precisión.
  2. Detener/parar dinámico: ajustar los niveles de detener y detener en función de la volatilidad del mercado para adaptarse a diferentes circunstancias del mercado.
  3. Añadir filtros de mercado: añadir filtros de intensidad de tendencia o de fluctuación para evitar el comercio en condiciones de mercado desfavorables.
  4. Optimización de parámetros HMA: prueba diferentes ciclos de HMA para encontrar los parámetros más adecuados para un mercado específico.
  5. Introducción de la gestión de posiciones: ajuste dinámico de la escala de las operaciones en función del riesgo del mercado y el tamaño de la cuenta.
  6. Añadir filtros temporales: Evite negociar en períodos de mayor volatilidad del mercado, como durante la publicación de datos económicos importantes.

Resumir

La estrategia de trading automático de precios cruzados es una estrategia de trading simple y eficaz. La estrategia capta las tendencias del mercado al aprovechar las ventajas de los promedios móviles de Hull, mientras protege los fondos con medidas de gestión de riesgos fijas. Aunque la estrategia tiene algunos riesgos potenciales, su rendimiento y adaptabilidad pueden mejorarse aún más mediante la optimización y mejora continuas.

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

//@version=5
strategy("SHIESTD", overlay=true)

// Function to calculate Hull Moving Average (HMA)
hma(src, length) =>
    wma1 = ta.wma(src, length)
    wma2 = ta.wma(src, length / 2)
    hma = ta.wma(2 * wma2 - wma1, math.round(math.sqrt(length)))
    hma

// Parameters
hma_length = 104

// Calculate Hull Moving Average
hma_value = hma(close, hma_length)

// Plot HMA
plot(hma_value, title="104-period Hull Moving Average", color=color.blue, linewidth=2)

// Define SL and TP values in dollars
long_sl_amount = 1.25
long_tp_amount = 37.5
short_sl_amount = 1.25
short_tp_amount = 37.5

// Number of contracts
contracts = 2

// Function to calculate SL and TP prices based on entry price and dollar amounts
long_sl_price(entry_price) =>
    entry_price - long_sl_amount

long_tp_price(entry_price) =>
    entry_price + long_tp_amount

short_sl_price(entry_price) =>
    entry_price + short_sl_amount

short_tp_price(entry_price) =>
    entry_price - short_tp_amount

// Trading conditions
price_intersects_hma = ta.crossover(close, hma_value) or ta.crossunder(close, hma_value)

// Long and Short Conditions based on price intersecting HMA
long_condition = ta.crossover(close, hma_value)
short_condition = ta.crossunder(close, hma_value)

// Track open positions
var bool long_open = false
var bool short_open = false

// Handle Long Positions
if (long_condition and not long_open)
    entry_price = close
    strategy.entry("Long", strategy.long, qty=contracts)
    strategy.exit("Exit Long", from_entry="Long", stop=long_sl_price(entry_price), limit=long_tp_price(entry_price))
    long_open := true

// Handle Short Positions
if (short_condition and not short_open)
    entry_price = close
    strategy.entry("Short", strategy.short, qty=contracts)
    strategy.exit("Exit Short", from_entry="Short", stop=short_sl_price(entry_price), limit=short_tp_price(entry_price))
    short_open := true

// Reset flags when the position is closed
if (strategy.opentrades == 0)
    long_open := false
    short_open := false