Estrategia de negociación de medias móviles dobles intradiarias

El autor:¿ Qué pasa?, Fecha: 2024-02-27 16:36:31
Las etiquetas:

img

Resumen general

Esta es una estrategia de negociación intradiaria simple basada en promedios móviles duales. Utiliza dos promedios móviles simples con períodos diferentes y toma posiciones largas o cortas cuando los promedios móviles se cruzan. La posición se invierte utilizando una cantidad doble cuando cambia la señal. Todas las posiciones abiertas se cuadran cuando termina la sesión intradiaria.

Estrategia lógica

La estrategia utiliza un promedio móvil simple de 10 días y 40 días. Se hace largo cuando el promedio móvil del período corto cruza por encima del período largo uno y se hace corto cuando ocurre el cruce inverso. Cuando la señal cambia, la posición se cierra usando una cantidad doble y se inicia una posición inversa.

La estrategia utiliza principalmente la capacidad de captura de cambios de precios más rápidos de la media móvil de período más corto. Cuando la SMA corta cruza por encima de la SMA larga, indica una tendencia alcista en los precios a corto plazo, por lo que ir largo puede capturar esto. La inversa indica una tendencia bajista a corto plazo. La entrada inversa de doble cantidad expande el potencial de ganancia.

Ventajas

  1. Una lógica estratégica simple y clara, fácil de entender e implementar.
  2. Captura eficazmente las tendencias de los precios a corto plazo utilizando el cruce de doble MA.
  3. Evita el riesgo de la noche a la mañana al limitarse a una sesión intradiaria.
  4. Amplía el potencial de ganancias utilizando el comercio inverso de doble cantidad.

Análisis de riesgos

  1. Propenso a errores de negociación de ruido como estrategia a corto plazo.
  2. El doble de cantidad puede amplificar las pérdidas.
  3. Los riesgos de desdoblamiento forzado son perder tendencias rentables más largas.

Mitigación del riesgo:

  1. Optimice los parámetros de MA para reducir las señales falsas.
  2. Añadir filtros con otros indicadores.
  3. Optimizar los parámetros de cantidad.
  4. Relaja la duración de la sesión intradiaria.

Oportunidades de mejora

  1. Optimizar los parámetros de MA probando más combinaciones para el mejor ajuste.

  2. Añadir filtros como la confirmación MACD para reducir las señales falsas.

  3. Optimice el multiplicador de cantidad de entrada inversa a través del ajuste de parámetros.

  4. Prueba extendiendo la duración de la sesión intradiaria para obtener mejores rendimientos.

Conclusión

La estrategia captura tendencias a corto plazo formadas a partir de señales de cruce de MA, amplía las ganancias utilizando el comercio inverso de doble cantidad y restringe los riesgos durante la noche al operar solo en una sesión intradiaria.


/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-26 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Pritesh-StocksDeveloper

//@version=4
strategy("Moving Average - Intraday", shorttitle = "MA - Intraday", 
     overlay=true, calc_on_every_tick = true)

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

// Short & Long moving avg. period
var int i_shortPeriod = input(title = "Short MA Period", type = input.integer, 
     defval = 10, minval = 2, maxval = 20, confirm=true)
var int i_longPeriod = input(title = "Long MA Period", type = input.integer, 
     defval = 40, minval = 3, maxval = 120, confirm=true)

// A function to check whether the bar is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0

// Calculate moving averages
shortAvg = sma(close, i_shortPeriod)
longAvg = sma(close, i_longPeriod)

// Plot moving averages
plot(series = shortAvg, color = color.red, title = "Short MA", 
     linewidth = 2)
plot(series = longAvg, color = color.blue, title = "Long MA", 
     linewidth = 2)

// Long/short condition
longCondition = crossover(shortAvg, longAvg)
shortCondition = crossunder(shortAvg, longAvg)

// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active

// Long position
strategy.entry(id = "Long", long = strategy.long, 
     when = longCondition and intradaySession)

// Short position
strategy.entry(id = "Short", long = strategy.short, 
     when = shortCondition and intradaySession)

// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

Más.