
La estrategia es un sistema de negociación automático basado en el cruce y la filtración de la transacción a través de la media móvil simple (SMA). Utiliza cruces de SMA rápidas y lentas para generar señales de entrada, mientras que combina indicadores de transacción para confirmar la fuerza de la tendencia. La estrategia también incluye mecanismos de stop loss y stop loss dinámicos, así como condiciones de salida basadas en el tiempo, con el objetivo de optimizar la gestión de riesgos y mejorar la rentabilidad.
La estrategia se basa en los siguientes componentes clave:
La señal de cruce SMA:
Filtrado por cantidad de entregas:
El problema es que no se puede hacer nada para evitar que se produzca el daño.
La base de tiempo de salida:
Configuración durante la detección:
El seguimiento de tendencias se combina con el impulso: La combinación de SMA cruzado y filtración de volumen de transacción permite a la estrategia capturar tendencias fuertes y evitar el comercio frecuente en mercados débiles.
La gestión de riesgos es flexible: Los mecanismos de stop loss y stop-loss dinámicos permiten que las estrategias ajusten automáticamente la exposición al riesgo en función de la volatilidad del mercado, lo que ayuda a proteger los beneficios y limitar las pérdidas potenciales.
La mayoría de las personas tienen un perfil de riesgo de riesgo. La limitación de la duración máxima de la posición ayuda a evitar que la estrategia mantenga posiciones perdedoras durante un período prolongado en condiciones de mercado desfavorables y promueve el uso eficiente de los fondos.
Se puede personalizar: Varios parámetros ajustables (como el ciclo SMA, el porcentaje de stop loss, el tiempo máximo de tenencia, etc.) permiten que la estrategia se optimice según los diferentes mercados y estilos de negociación.
Apoyo visual: La estrategia traza las líneas SMA y las señales de negociación en los gráficos para facilitar la comprensión y el análisis del rendimiento de la estrategia.
El retraso: Los indicadores SMA son inherentemente retrasados, lo que puede ocasionar entradas tardías o oportunidades perdidas en un mercado de rápida inversión.
El riesgo de una falsa brecha: En los mercados de discusión horizontal, los cruces SMA pueden generar frecuentes señales de brechas falsas, lo que lleva a una sobrecambio y a un aumento de los costos de transacción.
El volumen de ventas depende de: La excesiva dependencia de los indicadores de volumen de transacciones puede conducir a una estrategia errónea en ciertas condiciones de mercado, especialmente durante períodos de baja liquidez o volúmenes de transacciones inusuales.
Porcentaje fijo de pérdidas/paradas: El uso de paros y paradas de porcentajes fijos puede no ser adecuado para todas las condiciones del mercado, especialmente en períodos de gran volatilidad.
La limitación de la salida en base temporal: El tiempo máximo fijo de mantenimiento de posiciones puede conducir a un cierre prematuro de posiciones cuando la tendencia favorable aún no ha terminado, lo que afecta a los beneficios potenciales.
Ajuste de los parámetros dinámicos: Realizar el ajuste dinámico de los ciclos SMA, el porcentaje de stop loss y el tiempo máximo de mantenimiento de la posición para adaptarse a diferentes ciclos y volatilidades del mercado.
incorporar filtros adicionales: La introducción de otros indicadores técnicos (como RSI, MACD, etc.) como condiciones de filtración adicionales para mejorar la precisión de las señales de negociación.
La adaptación al límite de los volúmenes de tráfico: Desarrollar un mecanismo de desvalorización del volumen de transacción adaptado dinámicamente para adaptarse mejor a las características del volumen de transacción en las diferentes fases del mercado.
Mejorar el mecanismo de salida: Explorar mecanismos de salida inteligentes basados en la estructura del mercado o en indicadores de dinámica, que reemplacen a las salidas de tiempo fijo y mejoren la adaptabilidad de las estrategias.
Ajuste de la volatilidad: Realizar ajustes dinámicos en los niveles de stop loss y stop loss basados en la volatilidad del mercado para gestionar mejor el riesgo y capturar ganancias.
Análisis de marcos de tiempo múltiples: Integración de análisis de datos de varios marcos de tiempo para mejorar la capacidad de la estrategia para identificar tendencias y reversiones en el mercado.
Optimización del aprendizaje automático: Utiliza algoritmos de aprendizaje automático para optimizar dinámicamente los parámetros de la estrategia y mejorar el rendimiento de la estrategia en diferentes entornos de mercado.
La “estrategia de parada de pérdidas dinámicas adaptativas con filtración de SMA cruzada y transacción” es un sistema de negociación integral que combina el seguimiento de tendencias, el análisis de transacciones y la gestión de riesgos. Utilizando la cruz de SMA y la filtración de transacciones, la estrategia apunta a capturar tendencias de mercado fuertes, mientras que su mecanismo de parada de pérdidas dinámicas y su función de salida basada en el tiempo ofrecen un control de riesgo flexible. A pesar de algunas limitaciones inherentes, como el retraso de la señal y la dependencia de parámetros fijos, la estrategia ofrece varias direcciones de optimización, que incluyen el ajuste dinámico de parámetros, la introducción de indicadores técnicos adicionales y la utilización de técnicas de aprendizaje automático.
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple_CrossOver_Bot_V1_EBO", overlay=true)
// INPUTS
dateStart_Year = input.int(2018, title="Start Year", minval=2000)
dateStart_Month = input.int(1, title="Start Month", minval=1, maxval=12)
dateStart_Day = input.int(1, title="Start Day", minval=1, maxval=31)
dateEnd_Year = input.int(2019, title="End Year", minval=2000)
dateEnd_Month = input.int(1, title="End Month", minval=1, maxval=12)
dateEnd_Day = input.int(1, title="End Day", minval=1, maxval=31)
fast_SMA_input = input.int(7, title="SMA Fast")
slow_SMA_input = input.int(25, title="SMA Slow")
volume_SMA_input = input.int(20, title="Volume SMA")
stop_loss_percent = input.float(1.0, title="Stop Loss (%)", step=0.1) / 100
take_profit_percent = input.float(2.0, title="Take Profit (%)", step=0.1) / 100
max_bars_in_trade = input.int(50, title="Max Bars in Trade", minval=1)
// INDICATORS
fast_SMA = ta.sma(close, fast_SMA_input)
slow_SMA = ta.sma(close, slow_SMA_input)
volume_SMA = ta.sma(volume, volume_SMA_input)
// STRATEGY
LONG = ta.crossover(fast_SMA, slow_SMA) and fast_SMA > slow_SMA and volume > volume_SMA
SHORT = ta.crossunder(fast_SMA, slow_SMA) and fast_SMA < slow_SMA and volume < volume_SMA
// TRIGGERS
testPeriodStart = timestamp(dateStart_Year, dateStart_Month, dateStart_Day)
testPeriodEnd = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day)
timecondition = true
// Track bar index for entries
var int long_entry_bar_index = na
var int short_entry_bar_index = na
if timecondition
if LONG
strategy.entry(id="LONG", direction=strategy.long)
long_entry_bar_index := bar_index
if SHORT
strategy.entry(id="SHORT", direction=strategy.short)
short_entry_bar_index := bar_index
// Exit conditions for LONG
if not na(long_entry_bar_index) and bar_index - long_entry_bar_index >= max_bars_in_trade
strategy.close("LONG")
long_entry_bar_index := na
// Exit conditions for SHORT
if not na(short_entry_bar_index) and bar_index - short_entry_bar_index >= max_bars_in_trade
strategy.close("SHORT")
short_entry_bar_index := na
// Standard exits
if LONG
strategy.exit("Exit LONG", from_entry="LONG", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_percent))
if SHORT
strategy.exit("Exit SHORT", from_entry="SHORT", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_percent))
// PLOTS
plot(fast_SMA, color=color.green, linewidth=1, title="Fast SMA")
plot(slow_SMA, color=color.yellow, linewidth=1, title="Slow SMA")
plot(volume_SMA, color=color.blue, linewidth=1, title="Volume SMA")
plotshape(series=LONG, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=SHORT, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Uncomment the following lines for alerts
// alertcondition(LONG, title="LONG")
// alertcondition(SHORT, title="SHORT")