Una estrategia de inversión de tendencia basada en promedios móviles, patrones de precios y volumen

El autor:¿ Qué pasa?, Fecha: 2024-01-17 17:48:40
Las etiquetas:

img

Resumen general

Esta estrategia combina promedios móviles, patrones de precios y volumen para identificar posibles puntos de reversión de tendencia en el mercado.

Principios

La idea central de esta estrategia es utilizar una combinación de promedios móviles, patrones de acción de precios y volumen como señales para las reversiones venideras. Específicamente, las cruces de oro y las cruces de muerte de los promedios móviles pueden indicar cambios en la tendencia. Los patrones de engullida alcista / bajista generalmente implican reversiones a corto plazo. Los aumentos en el volumen de operaciones también a menudo significan reversiones de tendencia. Al combinar los tres tipos de señales, la estrategia tiene como objetivo capturar con precisión los puntos de inflexión de la reversión.

En términos lógicos, la estrategia primero calcula promedios móviles rápidos y lentos. Luego define condiciones para identificar patrones de engullida alcista / bajista. Los niveles de soporte y resistencia se incorporan junto con la expansión del volumen como condiciones adicionales. Las señales de compra se activan cuando el MA rápido cruza por encima del MA lento, aparece un patrón alcista, rompe la resistencia y aumenta el volumen. Las condiciones opuestas desencadenan señales de venta.

Ventajas

La mayor ventaja de esta estrategia es el uso de una combinación de múltiples señales para confirmar las reversiones, lo que ayuda a evitar señales falsas.

Además, esta estrategia utiliza tanto los conceptos de tendencia como de reversión. Las reversiones solo se buscan después de una tendencia existente. En otras palabras, la estrategia solo busca retrocesos de tendencia contraria dentro de los mercados de tendencia. Esto ayuda a reducir la aleatoriedad y aumenta la rentabilidad.

Los riesgos

El mayor riesgo de esta estrategia son las reversiones fallidas, donde el precio continúa moviéndose en contra de la dirección del comercio después de las señales de entrada.

Las soluciones incluyen ajustar los períodos de promedio móvil para definir mejores tendencias, usar pérdidas de parada más amplias e incorporar más factores de confirmación antes de negociar señales de reversión.

Mejoras

Las posibles vías de optimización para esta estrategia incluyen:

  1. Ajuste de los períodos de media móvil para identificar las tendencias óptimas a corto/largo plazo.

  2. Prueba de diferentes métodos de cálculo de soporte/resistencia como Pivot Points.

  3. Intentando otros indicadores de volumen como Chaikin Flujo de Dinero, Oscilador de Volumen.

  4. Incorporar más factores de confirmación de la reversión como patrones de gráficos a largo plazo, grandes picos de volumen, etc.

  5. Usando futuros de índices bursátiles para verificar las señales entre mercados.

A través de pruebas rigurosas de combinaciones de parámetros, se pueden lograr mejoras adicionales en el rendimiento.

Conclusión

Esta estrategia combina perfectamente los promedios móviles, la acción de los precios y el volumen de las inversiones comerciales solo en mercados de tendencia. Al optimizar los parámetros y agregar más confirmaciones de señales, puede convertirse en un sistema robusto para el comercio de contratrends a corto plazo.


/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Profit Table Strategy", overlay=true)

// Input parameters
fastLength = input(10, title="Fast MA Length")
slowLength = input(20, title="Slow MA Length")
takeProfitPercent = input(1, title="Take Profit (%)") / 100
stopLossPercent = input(1, title="Stop Loss (%)") / 100
trailingStopPercent = input(1, title="Trailing Stop (%)") / 100

// Price action conditions
bullishEngulfing = close > open and close > open[1] and open < close[1] and open[1] > close[1]
bearishEngulfing = close < open and close < open[1] and open > close[1] and open[1] < close[1]

// Support and resistance levels
supportLevel = input(100, title="Support Level")
resistanceLevel = input(200, title="Resistance Level")

// Volume conditions
volumeCondition = volume > ta.sma(volume, 20)

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Buy condition
buyCondition = (fastMA > slowMA) and (close > resistanceLevel) and bullishEngulfing and volumeCondition

// Sell condition
sellCondition = (fastMA < slowMA) and (close < supportLevel) and bearishEngulfing and volumeCondition

// Strategy logic
strategy.entry("Buy", strategy.long, when=buyCondition)
strategy.close("Buy", when=sellCondition)

// Calculate take profit, stop loss, and trailing stop levels
takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent)
stopLossLevel = strategy.position_avg_price * (1 - stopLossPercent)
trailingStopLevel = strategy.position_avg_price * (1 - trailingStopPercent)

// Plotting levels on the chart
plot(supportLevel, color=color.blue, style=plot.style_line, linewidth=2, title="Support Level")
plot(resistanceLevel, color=color.purple, style=plot.style_line, linewidth=2, title="Resistance Level")
plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit Level")
plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss Level")
plot(trailingStopLevel, color=color.orange, style=plot.style_line, linewidth=2, title="Trailing Stop Level")

// Plotting buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)


Más.