Estrategia de negociación cruzada del MA basada en cruces de promedios móviles a corto y a largo plazo

El autor:¿ Qué pasa?, Fecha: 2024-02-22 15:36:49
Las etiquetas:

img

Resumen general

Esta estrategia es una estrategia de comercio de cruce de promedios móviles simple basada en cruces de promedios móviles a corto y largo plazo. Utiliza promedios móviles de 34 períodos y 89 períodos para observar sus cruces durante la sesión de la mañana como señales de compra y venta. Cuando el promedio móvil a corto plazo cruza por encima del promedio móvil a largo plazo desde abajo, se genera una señal de compra. Cuando cruza por debajo desde arriba, se genera una señal de venta.

Estrategia lógica

La lógica central de esta estrategia se basa en los cruces entre los promedios móviles a corto y largo plazo como señales comerciales. Específicamente, la estrategia define los promedios móviles simples a corto y largo plazo (SMA) de 34 períodos y 89 períodos. Solo observa los cruces entre estos dos SMA durante la sesión de la mañana (08:00 - 10:00). Cuando el SMA a corto plazo cruza por encima del SMA a largo plazo desde abajo, se considera que el mercado está en una tendencia al alza, generando así una señal de compra. Cuando el SMA a corto plazo cruza por debajo del SMA a largo plazo desde arriba, se considera que el mercado está en una tendencia a la baja, generando así una señal de venta.

Al recibir una señal de compra o venta, la estrategia entrará en una posición y establecerá una condición para salir de la posición, que es obtener ganancias después de mantener un número especificado de velas (por defecto son 3 velas) desde la entrada.

Debe tenerse en cuenta que la estrategia solo identifica señales de cruce durante la sesión de la mañana. Esto se debe a que este marco de tiempo tiene mayores volúmenes de negociación y las señales de cambio de tendencia son más confiables. Otros marcos de tiempo tienen fluctuaciones de precios más grandes y son más fáciles de generar señales falsas.

Análisis de ventajas

La estrategia tiene las siguientes ventajas:

  1. Utilizando reglas simples y universales de cruce de medias móviles, fáciles de entender, adecuadas para principiantes

  2. Identificar sólo las señales durante la sesión de la mañana, donde las señales de calidad son abundantes, lo que filtra las señales falsas durante otros marcos de tiempo

  3. Las condiciones de suspensión de pérdidas que permiten la suspensión de pérdidas oportunas, el bloqueo de ganancias parciales y la reducción del riesgo de pérdida.

  4. Muchos parámetros personalizables que se pueden ajustar en función de las condiciones del mercado y el estilo personal de negociación

  5. Fácilmente ampliable para combinarse con otros indicadores para diseñar estrategias más complejas

Análisis de riesgos

La estrategia también presenta algunos riesgos, principalmente por los siguientes aspectos:

  1. Las medias móviles tienen mayores atributos de retraso, pueden perder puntos de inversión de precios a corto plazo

  2. Se basa únicamente en indicadores simples, propensos a fallar en determinados entornos de mercado (conmociones de tendencia, límites de rango, etc.)

  3. La posición de stop loss incorrecta puede causar pérdidas innecesarias.

  4. Los ajustes incorrectos de parámetros (períodos de media móvil, períodos de retención, etc.) también pueden afectar al rendimiento de la estrategia.

Soluciones correspondientes:

  1. Incorporar otros indicadores principales para mejorar la sensibilidad a los cambios a corto plazo

  2. Añadir condiciones de filtrado para evitar ser afectado por señales falsas durante los choques y los mercados de rango

  3. Optimizar la lógica de stop loss y ajustar dinámicamente el rango de stop loss en función de la volatilidad del mercado

  4. Optimización de varios parámetros para encontrar la configuración óptima de parámetros

Direcciones de optimización

La estrategia también tiene un gran potencial de optimización, principalmente en los siguientes aspectos:

  1. Añadir otras condiciones de filtrado para evitar señales falsas durante los choques y los mercados de rango

  2. Incorporar indicadores de impulso para identificar señales de ruptura más fuertes

  3. Optimizar los parámetros del período de media móvil para encontrar la mejor combinación de parámetros

  4. Optimizar automáticamente el intervalo de stop loss basado en la volatilidad del mercado

  5. Intentar optimizar automáticamente toda la estrategia basada en técnicas de aprendizaje automático

  6. Intento de combinar con otras estrategias para diseñar sistemas multiestrategia más complejos

Conclusión

En general, esta estrategia es relativamente simple y práctica, adecuada para que los principiantes aprendan de ella. Incorpora el patrón típico de las estrategias de cruce de promedios móviles y utiliza paradas para controlar los riesgos. Sin embargo, se pueden hacer más optimizaciones para mejorar el rendimiento para más condiciones de mercado. Los inversores pueden aprovechar este marco básico para diseñar estrategias comerciales cuantitativas más avanzadas.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("34 89 SMA Crossover Strategy", overlay=true)

// Define the length for the SMAs
short_length = input(34, title="Short SMA Length")
long_length = input(89, title="Long SMA Length")
exit_candles = input(3, title="Exit after how many candles?")
exit_at_open = input(true, title="Exit at Open?")

// Define morning session
morning_session = input("0800-1000", "Morning Session")

// Calculate SMAs
short_sma = ta.sma(close, short_length)
long_sma = ta.sma(close, long_length)

// Function to check if current time is within specified session
in_session(session) =>
    session_start = na(time(timeframe.period, "0800-1000")) ? na : true
    session_start

// Condition for buy signal (short SMA crosses over long SMA) within specified trading hours
buy_signal = ta.crossover(short_sma, long_sma)

// Condition for sell signal (short SMA crosses under long SMA) within specified trading hours
sell_signal = ta.crossunder(short_sma, long_sma)

// Function to exit the trade after specified number of candles
var int trade_entry_bar = na
var int trade_exit_bar = na
if (buy_signal or sell_signal)
    trade_entry_bar := bar_index
if (not na(trade_entry_bar))
    trade_exit_bar := trade_entry_bar + exit_candles

// Exit condition
exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar))

// Execute trades
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)
if (exit_condition)
    strategy.close("Buy")
    strategy.close("Sell")

// Plot SMAs on the chart
plot(short_sma, color=color.blue, linewidth=1)
plot(long_sma, color=color.red, linewidth=1)


Más.