
Esta estrategia es un sistema de trading cuantitativo basado en el análisis técnico de gráficos de velas, que identifica principalmente oportunidades comerciales potenciales mediante el análisis de la longitud total de las sombras superior e inferior de las velas. El núcleo de la estrategia es comparar la longitud total de las sombras calculadas en tiempo real con el promedio móvil ajustado por desplazamiento y generar una señal larga cuando la longitud de la sombra 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), lo que proporciona a los operadores un espacio flexible de selección de parámetros.
La lógica central de la estrategia incluye los siguientes pasos clave:
Esta estrategia analiza el indicador técnico clásico de la longitud de la sombra de la vela y lo combina con métodos comerciales cuantitativos modernos para construir un sistema comercial con una lógica clara y una fuerte practicidad. Las principales ventajas de la estrategia residen en su flexibilidad de parámetros y su control total del riesgo, pero también presenta limitaciones como una fuerte dependencia del entorno del mercado y la sensibilidad de los parámetros. Con la introducción de indicadores multidimensionales y la optimización de la gestión de posiciones, la estrategia aún tiene mucho margen de mejora. En general, se trata de una estrategia comercial cuantitativa con una base sólida y una lógica razonable, que es 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)")