Estrategia de trading cuantitativo de puntos altos y bajos diarios combinados con tendencia EMA de marco de tiempo múltiple

EMA MA
Fecha de creación: 2024-11-28 15:20:59 Última modificación: 2024-11-28 15:20:59
Copiar: 1 Número de Visitas: 487
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo de puntos altos y bajos diarios combinados con tendencia EMA de marco de tiempo múltiple

Descripción general

Se trata de una estrategia de comercio cuantitativa que combina brechas de EMA de alta y baja en la línea diaria y tendencias de EMA de varios períodos de tiempo. La estrategia se basa principalmente en el monitoreo de las brechas de precios en los puntos altos y bajos del día anterior, en combinación con la línea media de EMA y el indicador de flujo de capital (CMF) para determinar el momento de negociación. La estrategia utiliza al mismo tiempo la línea horaria y la línea diaria de dos períodos de tiempo, la línea media de EMA de 200 períodos, para mejorar la precisión de las operaciones mediante la verificación de múltiples indicadores técnicos.

Principio de estrategia

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

  1. Utiliza la función request.security para obtener los máximos y mínimos del día anterior como puntos de resistencia de soporte clave.
  2. La línea de referencia para determinar la tendencia se combina con la línea media de la EMA de 24 períodos.
  3. Introducción del CMF (ciclo 20) como un indicador integral del volumen de transacciones y los precios para juzgar el flujo de capital en el mercado.
  4. Al mismo tiempo, se calcula la línea media de 200 para el ciclo de tiempo actual y el ciclo de 1 hora, para determinar la dirección de la tendencia en el ciclo más grande.

Las reglas específicas de las transacciones son las siguientes: Hacer condiciones múltiples: precio más alto el día anterior a la ruptura + precio de cierre por encima de la EMA + CMF positivo Condiciones de apertura: Precio por debajo de los mínimos del día anterior + Cierre por debajo de la EMA + CMF negativo Condiciones de posición en paridad: el precio de la posición excedente cae por debajo de la EMA, el precio de la posición excedente supera la EMA

Ventajas estratégicas

  1. La verificación integral de múltiples indicadores técnicos mejora la fiabilidad de las transacciones
  2. El análisis de múltiples períodos de tiempo permite una comprensión más completa de las tendencias del mercado
  3. El indicador CMF, combinado con la relación entre el precio y la cantidad, permite un mejor juicio de la situación de los fondos en el mercado
  4. Usar los máximos y mínimos del día anterior como precios clave, de acuerdo con los hábitos de negociación de los participantes en el mercado
  5. La lógica de la estrategia es clara, fácil de entender e implementar.
  6. Tener condiciones claras de entrada y salida, reducir el juicio subjetivo

Riesgo estratégico

  1. Las señales erróneas pueden ser frecuentes en mercados convulsionados.
  2. No son lo suficientemente sensibles a las rupturas de precios instantáneas
  3. Es posible que se pierda la oportunidad de negociar en una posición clave.
  4. Entorno de tendencia sin considerar el ciclo más amplio
  5. El mayor retiro podría ocurrir en momentos de fuertes fluctuaciones en el mercado.

Sugerencias para el control de riesgos:

  1. Establecer una posición de parada razonable
  2. Ajuste de parámetros según las diferentes condiciones del mercado
  3. Añadir filtro de tendencias
  4. Considerar la inclusión de un indicador de fluctuación

Dirección de optimización de la estrategia

  1. Introducción de un mecanismo de optimización de parámetros adaptativos
  2. Aumentar las condiciones de filtración del entorno del mercado
  3. Optimización de los mecanismos de detención de pérdidas
  4. La inclusión de indicadores de volatilidad para adaptarse a diferentes entornos de mercado
  5. Considerar la posibilidad de unirse a un mecanismo de gestión de ubicaciones
  6. Aumentar el índice de análisis de volumen de transacciones

Resumir

Es un sistema de negociación completo que combina múltiples indicadores técnicos y análisis de múltiples ciclos de tiempo. La estrategia busca oportunidades de negociación a través de un análisis integral de los picos y bajos, las tendencias de la línea media y los flujos de capital. Aunque existe un cierto riesgo, la estrategia tiene un buen valor de aplicación a través de un control razonable del riesgo y una mejora continua de la optimización.

Código Fuente de la Estrategia
/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='The security Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, 
         default_qty_type=strategy.percent_of_equity, default_qty_value=100, 
         commission_type=strategy.commission.percent, commission_value=0.1)

// General Inputs
len = input.int(24, minval=1, title='Length MA', group='Optimization parameters')
src = input.source(close, title='Source MA', group='Optimization parameters')
out = ta.ema(src, len)

length = input.int(20, minval=1, title='CMF Length', group='Optimization parameters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)

// Function to get daily high and low
f_secureSecurity(_symbol, _res, _src) =>
    request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)

pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)

// Plotting previous daily high and low
plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))

// Entry Conditions
short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0

if short and barstate.isconfirmed
    strategy.entry('short', strategy.short, stop=pricelow[1])
    strategy.close('short', when=close > out)

if long and barstate.isconfirmed
    strategy.entry('long', strategy.long, stop=pricehigh[1])
    strategy.close('long', when=close < out)

// 200 EMA on 1-hour timeframe
ema_200 = ta.ema(close, 200)
ema_200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))

plot(ema_200_1h, color=color.purple, title="200 EMA (1H)")
plot(ema_200, color=color.white, title="200 EMA")