La idea principal de esta estrategia es tomar posiciones por reversiones que prueban niveles de soporte / resistencia importantes alrededor de la media móvil ponderada.
Esta estrategia se basa en el indicador de promedio móvil ponderado. En primer lugar, calcula la WMA de una cierta longitud, y luego monitorea si el precio se rompe de la WMA por algún rango. Cuando la distancia de ruptura alcanza un umbral, traza una flecha y abre posiciones. Para ir largo, el precio necesita romperse primero por algún rango; Para ir corto, el precio necesita romperse primero por algún rango. Al formar señales de reversión a través de las rupturas y combinarse con los niveles de soporte / resistencia de WMA
La estrategia proporciona opciones entre stop loss de seguimiento y stop loss fijo a través del parámetro de seguimiento, por lo que los riesgos se pueden controlar ajustando el rango de stop loss. También bloquea ganancias parciales con órdenes límite. Además, los filtros de tiempo pueden restringir períodos de tiempo específicos para abrir posiciones.
La mayor ventaja radica en la combinación de configuraciones de reversión con promedios móviles para capturar puntos de inflexión clave del mercado para la apertura de posiciones. Las estrategias de reversión a menudo tienen una buena tasa de ganancia y una buena relación de riesgo-recompensa, con riesgos fáciles de controlar.
Como se basa en promedios móviles, hay un amplio margen disponible para la optimización de parámetros mediante el ajuste de valores como la longitud de la WMA, el rango de ruptura, etc. para probar la adaptabilidad en diferentes mercados.
El mayor riesgo son las reversiones fallidas. Si el precio no activa el stop loss o no obtiene ganancias después de formar señales de reversión, y sigue corriendo en la dirección original, incurriría en pérdidas flotantes considerables.
Además, depende en gran medida de la optimización de parámetros. La configuración inadecuada de parámetros puede perder fácilmente el tiempo de inversión de precios o generar señales falsas. Se requiere una comprensión adecuada del comportamiento del mercado y una evaluación prudente de las opciones de parámetros a través de pruebas de retroceso suficientes.
Se podrían introducir más indicadores para mejorar la calidad y precisión de la señal. Por ejemplo, antes de las reversiones de precios, se podrían verificar los valores incrementales en ciertos períodos recientes, especialmente los datos de incremento a corto plazo, para caracterizar los patrones de fluctuación de precios. O se podrían agregar ciertos factores cuantitativos para detectar el impulso de los precios, la volatilidad, etc. para el modelado multifactorial.
Los métodos de aprendizaje automático también podrían probarse para pronosticar el movimiento de los precios a corto plazo sobre la base de señales comerciales históricas y datos de precios, lo que ayuda a filtrar señales falsas y mejorar la calidad de la señal.
Además, se podrían implementar algunos mecanismos de optimización adaptativa. De acuerdo con los resultados reales del comercio, los parámetros o los pesos de las reglas podrían ajustarse dinámicamente para realizar la auto-optimización y la ENO de la estrategia.
El funcionamiento general de esta estrategia es estable. Dentro de un espacio de parámetros y entornos de mercado razonables, puede lograr rendimientos considerables. La mayor ventaja radica en los riesgos controlables y el potencial de optimización. Los próximos esfuerzos se centrarán en mejorar la calidad de la señal e incorporar capacidades de optimización adaptativa. Se cree que con mejoras persistentes, esta estrategia puede convertirse en una opción convincente en las carteras de inversión.
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-22 08:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="WMA Breakout",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02) len = input(20, minval=1, title="Length") src = input(close, title="Source") out = wma(src, len) price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001) price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001) trail = input(true, "Trailing Stop(checked), Market stop(unchecked)") stop = input(10, "Stop (in ticks)", step=1) limit = input(5, "Limit Out", step=1) //size = input(1, "Limit Position Size (pyramiding)", minval=1) timec = input(true, "Limit Time of Day (Buying Side)") //Time Session sess = input("1600-0500", "Start/Stop trades (Est time)") t = time(timeframe.period, sess) //plots plot(wma(src,len)) z = if low+price_drop<out (out-low) plotarrow(z, colorup=red) a = if high-price_climb>out (high-out) plotarrow(a, colorup=lime) av=wma(src,len) //Orders if(timec) strategy.entry("Enterlong", long=true, when=z and t>1) else strategy.entry("Enterlong", long=true, when=z) if(trail) strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Enterlong", profit=limit, loss = stop ) if(timec) strategy.entry("Entershort", long=false, when=a and t>1) else strategy.entry("Entershort", long=false, when=a) if(trail) strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Entershort", profit=limit, loss = stop )