
La estrategia es una estrategia simple de movimiento a través de la media basada en el cruce de las medias móviles a corto y largo plazo. Utiliza medias móviles de 34 y 89 ciclos y observa sus cruces como una señal de compra y venta durante el período de la mañana. Genera una señal de compra cuando las medias móviles a corto plazo se rompen con las medias móviles a largo plazo desde abajo; genera una señal de venta cuando se rompen desde arriba.
La lógica central de la estrategia se basa en la intersección de las medias móviles a corto y largo plazo como señal de negociación. En concreto, la estrategia define las medias móviles simples a corto y largo plazo de 34 y 89 ciclos (SMA). Observe la intersección de estos dos SMA solo en el período de apertura de la mañana (08:00 - 10:00). Cuando el SMA a corto plazo rompe el SMA a largo plazo desde la parte inferior, se considera que el mercado está en una tendencia alcista y, por lo tanto, genera una señal de compra; cuando el SMA a corto plazo rompe el SMA a largo plazo desde la parte superior, se considera que el mercado está en una tendencia bajista y, por lo tanto, genera una señal de venta.
Después de recibir la señal de compra o venta, la estrategia entra en la posición y establece una condición para salir de la posición, es decir, una salida de pérdida activa después de la entrada con un número de líneas K de raíz especificado (default 3 raíces). De esta manera, se puede bloquear parte de las ganancias y evitar que las pérdidas se expandan aún más.
Tenga en cuenta que la estrategia solo reconoce señales de cruce en el período de apertura temprana. Esto se debe a que durante este período de tiempo el volumen de operaciones en el mercado es mayor y la fiabilidad de las señales de cambio de tendencia es mayor. En otros períodos, el mercado es más volátil y es propenso a generar señales de confusión.
La estrategia tiene las siguientes ventajas:
Utiliza una regla de cruce de promedio móvil simple y general, fácil de entender y adecuada para principiantes
Identifica las señales solo en los períodos de horario temprano con más señales de alta calidad y puede filtrar las falsas señales en otros períodos
Establece condiciones de stop loss para detener los pérdidas a tiempo, bloquear parte de los beneficios y reducir el riesgo de pérdidas
Más parámetros personalizables que se pueden ajustar según el mercado y el estilo personal
Fácil de ampliar y diseñar estrategias más complejas en combinación con otros indicadores basados en el marco
La estrategia también presenta algunos riesgos, principalmente en los siguientes aspectos:
El promedio móvil en sí es muy retrasado y puede perder un punto de inflexión de precios a corto plazo
Se basa en indicadores simples que pueden fallar en un entorno de mercado específico (como fluctuaciones de tendencias, agrupación de intervalos, etc.)
La posición de parada incorrecta puede causar pérdidas innecesarias
La configuración incorrecta de los parámetros (por ejemplo, el ciclo de las medias móviles, el ciclo de las posiciones, etc.) también puede afectar el rendimiento de la estrategia.
Resolución de las mismas:
Aumento de la sensibilidad a los cambios a corto plazo en combinación con otros indicadores de vanguardia
Aumentar las condiciones de filtración para evitar el efecto de las señales de vacaciones en los mercados de turbulencias y intervalos
Optimización de la lógica de stop loss y ajuste de los límites de stop loss en función de las fluctuaciones del mercado
Optimización de parámetros de combinación múltiple para encontrar la configuración óptima de los parámetros
La estrategia también tiene un gran margen de optimización, principalmente en los siguientes aspectos:
Añadir otras condiciones de filtración para evitar el impacto de las señales de vacaciones en los mercados de turbulencias y intervalos
Combinando estrategias de indicadores dinámicos para identificar señales de ruptura más fuertes
Optimización de los parámetros periódicos de las medias móviles para encontrar la mejor combinación de parámetros
Optimización automática de los límites de pérdidas en función de la volatilidad del mercado
Intentar optimizar automáticamente toda la estrategia basado en la tecnología de aprendizaje automático
Intentar combinar con otras estrategias para diseñar sistemas multiestrategia más complejos
La estrategia en su conjunto es simple y práctica, adecuada para el aprendizaje de referencia de los principiantes. Representa el modelo típico de la estrategia de tipo cruzado de la media móvil, que controla el riesgo mediante el establecimiento de un stop loss. Sin embargo, la estrategia puede optimizarse aún más para que funcione mejor y se adapte a más entornos de mercado.
/*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)