Estrategia de captura de impulso basada en la media móvil

El autor:¿ Qué pasa?, Fecha: 2023-11-01 15:55:51
Las etiquetas:

img

Resumen general

Esta estrategia utiliza la media móvil como la principal señal de negociación, combinada con Heikin-Ashi para detectar la inversión de tendencia, con el objetivo de capturar el impulso de los precios a corto plazo.

Estrategia lógica

  1. Calcular el precio de cierre de Heikin-Ashi nAMAn como la línea de base del precio.

  2. Calcular el promedio de movimiento rápido fma y el promedio de movimiento lento sma basado en nAMAn.

  3. Generar una señal de compra cuando el FMA cruza SMA, y una señal de venta cuando el FMA cruza SMA.

  4. El repintado se elimina en esta estrategia para generar señales comerciales en tiempo real y evitar el sesgo de backtesting.

Análisis de ventajas

  1. Heikin-Ashi ayuda a determinar los puntos de inversión de tendencia con mayor precisión.

  2. El cruce de MA filtra las señales falsas de manera efectiva.

  3. No hay retraso en la generación de señal garantiza un rendimiento en vivo confiable.

  4. Ajuste flexible de parámetros adaptable a diferentes productos.

  5. Lógica simple y clara, fácil de entender e implementar.

  6. Se puede automatizar completamente para minimizar los riesgos de negociación manual.

Análisis de riesgos

  1. Mal desempeño en el mercado de rango limitado con los golpes de precio.

  2. Es propenso a generar señales falsas con doble cruce de MA.

  3. Los parámetros del MA inadecuados pueden causar tendencias faltantes o un aumento de la utilización.

  4. Los costes de negociación afectan a la ganancia neta en el comercio en vivo.

  5. Se requiere un stop loss estricto para controlar la pérdida de una sola operación.

  6. Las estrategias de negociación mecánicas tienen riesgos inherentes de extracción y requieren una gestión adecuada del capital.

Soluciones de gestión de riesgos:

  1. Añadir un filtro de volatilidad para evitar el mercado de rango.

  2. Añadir filtros para garantizar la calidad de la señal.

  3. Optimizar los parámetros de MA a través de pruebas exhaustivas.

  4. Ajustar la frecuencia de las operaciones para reducir el impacto en los costes.

  5. Establezca el stop loss adecuado para controlar la pérdida en operaciones individuales.

  6. Optimizar la gestión del capital para controlar el tamaño de las posiciones.

Direcciones de mejora

  1. Optimizar los parámetros de MA para mejorar la calidad de la señal.

  2. Agregue un filtro de tendencia para evitar el mercado de la sierra.

  3. Incorporar indicadores de volumen para confirmar la tendencia.

  4. Implementar un stop loss dinámico y la obtención de ganancias para optimizar la captura de ganancias.

  5. Integrar el módulo de gestión de capital para controlar el tamaño de las posiciones.

  6. Añadir módulo de trading algorítmico para una automatización completa.

Resumen de las actividades

Esta estrategia integra técnicas de cruce Heikin-Ashi y MA para crear una estrategia de seguimiento de tendencias a corto plazo simple y práctica. Genera señales de trading confiables en tiempo real y muestra un buen rendimiento en el trading en vivo.


/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Heikin/Kaufman by Gustavo v5
// strategy('Heikin Ashi EMA v5 no repaint ', shorttitle='Heikin Ashi EMA v5 no repaint', overlay=true, max_bars_back=500, default_qty_value=1000, initial_capital=100000, currency=currency.EUR)


// Settings - H/K
res1 = input.timeframe(title='Heikin Ashi EMA Time Frame', defval='D')
test = input(0, 'Heikin Ashi EMA Shift')
sloma = input(20, 'Slow EMA Period')
nAMA = hlc3

//Kaufman MA
Length = input.int(5, minval=1)
xPrice = input(hlc3)
xvnoise = math.abs(xPrice - xPrice[1])
Fastend = input.float(2.5, step=.5)
Slowend = input(20)
nfastend = 2 / (Fastend + 1)
nslowend = 2 / (Slowend + 1)
nsignal = math.abs(xPrice - xPrice[Length])
nnoise = math.sum(xvnoise, Length)
nefratio = nnoise != 0 ? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMAn = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_close = request.security(ha_t, timeframe.period, nAMAn)
mha_close = request.security(ha_t, res1, hlc3)

//Moving Average
fma = ta.ema(mha_close[test], 1)
sma = ta.ema(ha_close, sloma)
plot(fma, title='MA', color=color.new(color.black, 0), linewidth=2, style=plot.style_line)
plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line)

//Strategy
golong = ta.crossover(fma, sma)
goshort = ta.crossunder(fma, sma)

strategy.entry('Buy', strategy.long, when=golong)
strategy.entry('Sell', strategy.short,when=goshort)



Más.