
La estrategia es un sistema de seguimiento de tendencias basado en el cruce de dos medias, que utiliza el cruce de dos simples medias móviles ((SMA) a corto y largo plazo para generar una clara señal de negociación multi-zones. La estrategia está diseñada de manera concisa, clara, fácil de entender y implementar, especialmente para los comerciantes que desean dominar los principios básicos de la cruce de medias móviles. La idea central de la estrategia es que cuando la media corta cruza la media larga de arriba hacia abajo, el sistema genera una señal múltiple.
El núcleo de la estrategia se basa en la interacción de dos medias móviles simples (SMA):
La lógica de generación de señales de transacción:
Proceso de ejecución de la operación:
La estrategia también permite a los usuarios personalizar la fuente de precios (el precio de apertura predeterminado) y la duración del ciclo de la línea media para adaptarse a diferentes entornos de mercado o estilos de negociación.
A través de un análisis profundo del código de la estrategia, podemos resumir las siguientes ventajas evidentes:
A pesar de su sencillez y eficacia, la estrategia presenta los siguientes riesgos potenciales:
Negociación frecuente en mercados convulsivos: en mercados de balance horizontal o convulsivos, las líneas medias a corto y largo plazo pueden cruzarse frecuentemente, lo que provoca demasiadas señales de negociación y costos de negociación innecesarios
Problemas de atraso: las medias móviles son intrínsecamente un indicador de atraso, y la señal puede generarse cuando la tendencia ya se ha desarrollado o está a punto de terminar
Riesgo de falsa ruptura: el precio puede cruzar la línea media por un corto tiempo y luego regresar a la tendencia original, lo que provoca una señal errónea
Falta de mecanismos de detención de pérdidas: la estrategia actual no tiene un establecimiento claro de detención de pérdidas, lo que puede provocar mayores pérdidas en un escenario de fuerte reversión
Sensibilidad de los parámetros: el rendimiento de la estrategia es sensible a la selección de la longitud del ciclo de la línea media, y los parámetros incorrectos pueden causar una gran variación en la eficacia de la estrategia
Basado en un análisis profundo del código, propongo las siguientes direcciones de optimización:
Añadir filtros de tendencia: introducir ADX, un indicador de intensidad de tendencia o un juicio de la posición relativa de los precios con respecto a la línea media, generar señales solo en entornos de tendencia confirmados y evitar el comercio frecuente de mercados convulsionados
Implementación de un mecanismo de stop loss dinámico: establece un nivel de stop loss dinámico basado en el ATR u otros indicadores de volatilidad para proteger los beneficios y limitar el riesgo máximo de una sola operación
Optimización de la hora de entrada: Considere el uso de confirmación en pequeños ciclos después de la generación de la señal o esperar a que se llame de nuevo para obtener mejores precios de ejecución
Aumentar el volumen de filtración de transacciones: aumentar la confirmación de transacciones basadas en señales cruzadas y ejecutar transacciones solo si el volumen de transacciones también respalda el cambio de dirección
Capacidad para adaptarse al ciclo de la media: ajuste automático de la longitud del ciclo de la media en función de la volatilidad del mercado, con ciclos más largos en entornos de alta volatilidad y más cortos en entornos de baja volatilidad
Añadir un mecanismo de apertura de almacenes y almacenes por lotes: en lugar de crear todos los almacenes de una sola vez, construya almacenes y almacenes por etapas para reducir el riesgo de elegir el momento
La estrategia de seguimiento de tendencias de cruzamiento de dos líneas es un sistema de negociación cuantitativo simple y potente que genera señales de negociación claras a través de la cruz de promedios móviles a corto y largo plazo. Su principal ventaja reside en la simplicidad de operación, la intuitividad visual y el mecanismo de retroceso automático que permite a los operadores seguir objetivamente las tendencias del mercado. Sin embargo, la estrategia también presenta riesgos inherentes, como el comercio frecuente en el mercado de la agitación y el retraso de la señal.
Esta estrategia básica puede ser significativamente mejorada mediante la adición de filtros de tendencia, la implementación de mecanismos de stop loss dinámicos, la optimización de la hora de entrada y el aumento de la confirmación de volumen de operaciones. En particular, en combinación con otros indicadores técnicos para filtrar señales y optimizar la gestión del riesgo, ayudará a mejorar el rendimiento de la estrategia en diversos entornos de mercado.
Es un punto de partida ideal para los novatos que desean comenzar a cuantificar sus operaciones; para los operadores más experimentados, proporciona una base sólida para personalizar y optimizar aún más. Es importante destacar que cualquier mejora adoptada debe ser evaluada mediante rigurosas pruebas de retroalimentación y verificación de avance para garantizar que las mejoras en la estrategia realmente aumentan el valor a largo plazo.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-24 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//@version=6
//
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @author = Da_mENIZ
// © denis_zvegelj
// last change 20.Mar.2025
//
// Simple MA Crossover strategy that shows on the chart with Long/Short indicators. Feel free to use it to suit
// your needs
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
strategy("DZ Simple MA Crossover Strategy", shorttitle="DZ_MACross", overlay=true, calc_on_every_tick=true)
// Define the moving average lengths
i_src_price = input.source (open, "Price source", group="Main Settings")
i_shMA_len = input.int (9, "Short MA Length", minval=1, group="Main Settings")
i_loMA_len = input.int (21, "Long MA Length", minval=6, group="Main Settings")
// Calculate the moving averages
short_MA = ta.sma(i_src_price, i_shMA_len)
long_MA = ta.sma(i_src_price, i_loMA_len)
// Plot the moving averages on the chart
plot(short_MA, color=color.red, linewidth=2, title="Short MA")
plot(long_MA, color=color.blue, linewidth=2, title="Long MA")
// Generate the buy and sell signals
long_Cond = ta.crossover(short_MA, long_MA)
short_Cond = ta.crossunder(short_MA, long_MA)
// Place the orders based on conditions
if (long_Cond)
strategy.close("Short", immediately = true, comment = "Close")
strategy.entry("Long", strategy.long, comment = "Enter")
label.new(bar_index+1, open, "Long\n" + str.tostring(open), style=label.style_label_down, color=color.blue, textcolor=color.white, yloc=yloc.abovebar)
if (short_Cond)
strategy.close("Long", immediately = true, comment = "Close")
// strategy.entry("Short", strategy.short, comment = "Short\n" + str.tostring(open))
strategy.entry("Short", strategy.short, comment = "Enter")
label.new(bar_index+1, open, "Short\n" + str.tostring(open), style=label.style_label_up, color=color.red, textcolor=color.white, yloc=yloc.belowbar)