En la carga de los recursos... Cargando...

Estrategia de negociación de media móvil adaptativa de cruce de precios

El autor:¿ Qué pasa?, Fecha: 2024-09-26 16:12:36
Las etiquetas:HMASLTP

img

Resumen general

La Estrategia de Negociación de promedios móviles de cruce de precios adaptativo es un método de negociación cuantitativo basado en el Hull Moving Average (HMA). Esta estrategia genera señales de compra y venta utilizando cruces de precios con el HMA, al tiempo que implementa niveles fijos de stop-loss y take-profit para gestionar el riesgo y la recompensa. La estrategia emplea un HMA de 104 períodos como su indicador principal, combinado con cruces de precios para desencadenar operaciones.

Principio de la estrategia

El núcleo de esta estrategia es el uso del Hull Moving Average (HMA) como indicador principal.

  1. Calcular el HMA de 104 períodos.
  2. Abrir una posición larga cuando el precio cruce por encima de la HMA.
  3. Abre una posición corta cuando el precio cruza por debajo de la HMA.
  4. Establezca niveles fijos de stop-loss ($ 1.25) y take-profit ($ 37.5) para cada operación.
  5. Utilice 2 contratos para cada operación.

La estrategia rastrea las posiciones abiertas para garantizar que no se abran nuevas posiciones mientras una existente está activa.

Ventajas estratégicas

  1. Adaptabilidad: La HMA se adapta rápidamente a los cambios del mercado, reduciendo las señales falsas.
  2. Gestión del riesgo: utiliza niveles fijos de stop-loss y take-profit, controlando eficazmente el riesgo para cada operación.
  3. Simplicidad: Las reglas de negociación son claras, fáciles de entender y de aplicar.
  4. Comercio bidireccional: Captura oportunidades ascendentes y descendentes, aumentando el potencial de ganancia.
  5. Automatización: La estrategia puede ser totalmente automatizada, reduciendo la intervención humana y la influencia emocional.

Riesgos estratégicos

  1. Comercio frecuente: puede generar señales comerciales excesivas en mercados volátiles, aumentando los costos de transacción.
  2. Las operaciones de venta y venta de los activos de los bancos centrales de los Estados miembros deben tener en cuenta las características de los activos de los bancos centrales de los Estados miembros.
  3. Confianza en un indicador único: depender únicamente de HMA puede tener un rendimiento inferior en ciertos entornos de mercado.
  4. Retardo: aunque el HMA reduce el retardo, puede reaccionar insuficientemente en puntos de inflexión agudos.
  5. Falta de filtro del entorno de mercado: no tiene en cuenta las tendencias generales del mercado o la volatilidad, potencialmente negociando en condiciones de mercado inadecuadas.

Direcciones para la optimización de la estrategia

  1. Introducir indicadores adicionales: Combinar con otros indicadores técnicos (como el RSI o el MACD) para confirmar las señales y mejorar la precisión.
  2. Dinámico Stop-Loss/Take-Profit: ajustar los niveles de stop-loss y take-profit en función de la volatilidad del mercado para adaptarse a los diferentes entornos del mercado.
  3. Añadir filtros de mercado: Incorporar filtros de fuerza de tendencia o volatilidad para evitar la negociación en condiciones de mercado desfavorables.
  4. Optimizar los parámetros de HMA: probar diferentes períodos de HMA para encontrar los parámetros más adecuados para mercados específicos.
  5. Implementar la gestión de posiciones: ajustar dinámicamente el tamaño de las operaciones en función del riesgo de mercado y del tamaño de la cuenta.
  6. Añadir filtros de tiempo: Evite negociar durante los períodos de alta volatilidad del mercado, como durante las publicaciones de datos económicos importantes.

Resumen de las actividades

La estrategia de negociación de promedios móviles adaptativos es un método de negociación cuantitativo simple pero efectivo. Al aprovechar las ventajas de la media móvil de Hull, esta estrategia puede capturar las tendencias del mercado mientras protege el capital a través de medidas fijas de gestión de riesgos. Aunque la estrategia tiene algunos riesgos potenciales, se puede mejorar y adaptar aún más a través de la optimización continua.


/*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


Relacionados

Más.