Esta estrategia es un sistema de negociación cuantitativo basado en el análisis técnico de las velas, identificando principalmente oportunidades de negociación potenciales mediante el análisis de la longitud total de las mechas superiores e inferiores de las velas. El mecanismo principal compara la longitud total de mecha calculada en tiempo real con un promedio móvil ajustado por desplazamiento, generando señales largas cuando la longitud de la mecha rompe el promedio móvil. La estrategia integra múltiples tipos de promedios móviles, incluidos el promedio móvil simple (SMA), el promedio móvil exponencial (EMA), el promedio móvil ponderado (WMA) y el promedio móvil ponderado por volumen (VWMA), proporcionando a los operadores opciones de selección de parámetros flexibles.
La lógica central incluye los siguientes pasos clave:
Esta estrategia combina los indicadores técnicos clásicos del análisis de la mecha de las velas con los métodos de negociación cuantitativos modernos, creando un sistema de negociación con lógica clara y una gran practicidad. Las principales ventajas se encuentran en la flexibilidad de los parámetros y el control integral del riesgo, aunque las limitaciones incluyen una fuerte dependencia del entorno del mercado y la sensibilidad de los parámetros. Existe un potencial de mejora significativo a través de la integración multidimensional de indicadores y la optimización de la gestión de posiciones. En general, representa una estrategia de negociación cuantitativa fundamentalmente sólida y lógicamente coherente adecuada para un mayor desarrollo y optimización.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Daytrading ES Wick Length Strategy", overlay=true) // Input parameters ma_length = input.int(20, title="Moving Average Length", minval=1) ma_type = input.string("VWMA", title="Type of Moving Average", options=["SMA", "EMA", "WMA", "VWMA"]) ma_offset = input.float(10, title="MA Offset (Points)", step=1) hold_periods = input.int(18, title="Holding Period (Bars)", minval=1) // Calculating upper and lower wick lengths upper_wick_length = high - math.max(close, open) lower_wick_length = math.min(close, open) - low // Total wick length (upper + lower) total_wick_length = upper_wick_length + lower_wick_length // Calculate the moving average based on the selected method ma = switch ma_type "SMA" => ta.sma(total_wick_length, ma_length) "EMA" => ta.ema(total_wick_length, ma_length) "WMA" => ta.wma(total_wick_length, ma_length) "VWMA" => ta.vwma(total_wick_length, ma_length) // Add the offset to the moving average ma_with_offset = ma + ma_offset // Entry condition: wick length exceeds MA with offset long_entry_condition = total_wick_length > ma_with_offset // Long entry if (long_entry_condition) strategy.entry("Long", strategy.long) // Automatic exit after holding period if strategy.position_size > 0 and bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) >= hold_periods strategy.close("Long") // Plot the total wick length as a histogram plot(total_wick_length, color=color.blue, style=plot.style_histogram, linewidth=2, title="Total Wick Length") // Plot the moving average with offset plot(ma_with_offset, color=color.yellow, linewidth=2, title="MA of Wick Length (Offset)")