Esta estrategia es un sistema de negociación integral que combina cruces de promedio móvil simple (SMA) con retrocesos de diferencia de valor justo (FVG). Utiliza el cruce de SMA de 8 períodos y 20 períodos para identificar posibles cambios de tendencia, mientras que utiliza FVGs para determinar puntos de entrada más precisos.
SMA Crossover: utiliza promedios móviles simples de 8 y 20 períodos. Una señal alcista se genera cuando la SMA a corto plazo cruza por encima de la SMA a largo plazo, y una señal bajista cuando la SMA a corto plazo cruza por debajo de la SMA a largo plazo.
Diferencia de valor justo (FVG): se forma cuando el máximo de la vela actual es mayor que el máximo de la vela anterior, y el mínimo de la vela actual es menor que el mínimo de la vela anterior.
Condiciones de entrada:
Condiciones de salida: cierre de posiciones cuando se produce un cruce de SMA opuesto.
Combina el seguimiento de tendencias y los retrocesos: al integrar los cruces de SMA y los retrocesos de FVG, la estrategia puede capturar las tendencias principales mientras entra a niveles de precios más favorables.
Reduce las señales falsas: esperar a que el precio se retire al FVG puede filtrar algunas señales falsas potenciales de cruce, mejorando la precisión del comercio.
Gestión del riesgo: el uso de FVG como puntos de entrada proporciona naturalmente colocaciones de stop-loss más ajustadas, lo que ayuda a controlar el riesgo.
Adaptabilidad: La estrategia puede adaptarse a diferentes entornos de mercado e instrumentos de negociación ajustando los períodos de SMA y los parámetros de FVG.
Objetividad: se basa en indicadores técnicos claros y en la acción de los precios, reduciendo el impacto de los juicios subjetivos.
Riesgo de mercado alterado: en los mercados de rango limitado o alterados, los cruces frecuentes de la SMA pueden conducir a operaciones y pérdidas excesivas.
Lag: como indicador de retraso, las SMA pueden perder algunas oportunidades al comienzo de las tendencias.
Riesgo de ruptura falsa: el precio puede romper brevemente el FVG y luego retroceder, causando señales falsas.
Riesgo de brecha de mercado: en mercados volátiles, el precio puede diferir sobre el área de FVG, lo que conduce a oportunidades comerciales perdidas.
Sensibilidad de parámetros: el rendimiento de la estrategia puede ser sensible a los períodos SMA y a los parámetros de definición de FVG, lo que requiere una optimización cuidadosa.
Periodos de SMA dinámicos: considerar el ajuste dinámico de los períodos de SMA en función de la volatilidad del mercado para adaptarse a las diferentes condiciones del mercado.
Filtros adicionales: introducir indicadores técnicos adicionales (como el RSI o el MACD) para confirmar las tendencias y reducir las señales falsas.
Mejorar la definición de FVG: trate de utilizar varias velas para definir FVG, o considere el volumen para validar la eficacia de FVG.
Optimizar la estrategia de salida: Implementar paradas posteriores o paradas dinámicas basadas en la volatilidad para proteger mejor las ganancias.
Añadir filtros de tiempo: Considere el tiempo de formación de los FVG, estableciendo potencialmente una ventana de tiempo para garantizar la validez de los FVG.
Optimización de la gestión del riesgo: ajustar dinámicamente los tamaños de las posiciones en función de la volatilidad del mercado para un control del riesgo más refinado.
El
/*backtest start: 2023-07-25 00:00:00 end: 2024-07-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("8 SMA and 20 SMA with FVG Pullback", overlay=true) // Input parameters smaShortLength = input.int(8, title="Short SMA Length") smaLongLength = input.int(20, title="Long SMA Length") // Calculate SMAs smaShort = ta.sma(close, smaShortLength) smaLong = ta.sma(close, smaLongLength) // Plot SMAs plot(smaShort, title="8 SMA", color=color.blue) plot(smaLong, title="20 SMA", color=color.red) // Identify SMA crossovers longCondition = ta.crossover(smaShort, smaLong) shortCondition = ta.crossunder(smaShort, smaLong) // Fair Value Gaps (FVG) logic var float fvgHigh = na var float fvgLow = na if (ta.valuewhen(high[1] < high and low[1] > low, high, 0) and ta.valuewhen(high[1] < high and low[1] > low, low, 0)) fvgHigh := high fvgLow := low plot(fvgHigh, title="FVG High", color=color.purple, linewidth=1, style=plot.style_line) plot(fvgLow, title="FVG Low", color=color.orange, linewidth=1, style=plot.style_line) // Entry conditions if (longCondition) if (low <= fvgLow) strategy.entry("Long", strategy.long) if (shortCondition) if (high >= fvgHigh) strategy.entry("Short", strategy.short) // Exit conditions (optional, you can modify these as per your risk management strategy) if (ta.crossunder(smaShort, smaLong)) strategy.close("Long") if (ta.crossover(smaShort, smaLong)) strategy.close("Short")