En la carga de los recursos... Cargando...

Estrategia de entrada avanzada basada en la media móvil, soporte/resistencia y volumen

El autor:¿ Qué pasa?, Fecha: 2024-06-14 15:40:46
Las etiquetas:

img

Resumen general

Esta estrategia combina tres indicadores técnicos: promedio móvil simple (SMA), niveles de soporte y resistencia, y aumento del volumen de operaciones para construir una estrategia comercial integral.

Principio de la estrategia

  1. Calcular los niveles de SMA, soporte y resistencia para un período especificado.
  2. Determinar si el volumen de operaciones actual ha aumentado en comparación con el período anterior.
  3. Condición de entrada larga: el precio de cierre actual es mayor que el precio de cierre del período anterior, mayor que el nivel SMA y de soporte, y el precio se encuentra a cierta distancia del nivel de resistencia, acompañado de un aumento del volumen de operaciones.
  4. Condición de entrada corta: el precio de cierre actual es inferior al precio de cierre del período anterior, inferior al nivel SMA y al nivel de soporte, y el precio se encuentra a cierta distancia del nivel de resistencia, acompañado de un aumento del volumen de operaciones.
  5. Condición de stop-loss: el precio de stop-loss largo es el precio de entrada multiplicado por (1 - porcentaje de stop-loss) y el precio de stop-loss corto es el precio de entrada multiplicado por (1 + porcentaje de stop-loss).

Análisis de ventajas

  1. La combinación de múltiples indicadores técnicos mejora la fiabilidad y estabilidad de la estrategia.
  2. Considerando tanto las rupturas de precios de la SMA como los niveles de soporte/resistencia, se permite una mejor captura de las oportunidades de tendencia.
  3. La introducción del indicador de volumen de negociación garantiza que las rupturas de precios vayan acompañadas de una participación suficiente en el mercado, mejorando la eficacia de las señales.
  4. El establecimiento de condiciones de stop-loss controla eficazmente el riesgo de negociación.

Análisis de riesgos

  1. El cálculo de los niveles de soporte y resistencia se basa en datos históricos y puede perder eficacia durante fluctuaciones significativas del mercado.
  2. El indicador de volumen de negociación puede experimentar fluctuaciones anormales, lo que conduce a señales falsas.
  3. El establecimiento de la condición de stop-loss puede no evitar por completo las pérdidas en situaciones de mercado extremas.

Dirección de optimización

  1. Considerar la introducción de otros indicadores técnicos, como el índice de fortaleza relativa (RSI) o la divergencia de convergencia de la media móvil (MACD), para validar aún más la fiabilidad de las señales de negociación.
  2. Optimizar el método de cálculo de los niveles de soporte y resistencia, por ejemplo adoptando un enfoque más dinámico para adaptarse a las diferentes condiciones del mercado.
  3. Para reducir el impacto de las fluctuaciones anormales en la estrategia, debe suavizar el indicador de volumen de operaciones.
  4. Optimizar la configuración de las condiciones de stop-loss, como el uso de un stop-loss de seguimiento o el ajuste dinámico del porcentaje de stop-loss basado en la volatilidad del mercado.

Resumen de las actividades

Esta estrategia combina el SMA, los niveles de soporte y resistencia, y los indicadores de volumen de negociación para construir una estrategia de negociación integral. La ventaja de la estrategia radica en su capacidad para capturar oportunidades de tendencia mientras controla el riesgo comercial. Sin embargo, la estrategia también tiene ciertas limitaciones, como su adaptabilidad a situaciones extremas de mercado necesita mejora. En el futuro, la estrategia puede mejorarse introduciendo otros indicadores técnicos, optimizando el método de cálculo de los niveles de soporte y resistencia, suavizando el indicador de volumen de negociación y optimizando las condiciones de stop-loss para mejorar su estabilidad y rentabilidad.


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

//@version=4
strategy("Advanced Entry Conditions with Support/Resistance, SMA, and Volume", overlay=true)

// Inputs
length = input(20, title="SMA Length")
stopLossPerc = input(1, title="Stop Loss Percentage", type=input.float) / 100
leftBars = input(15, title="Left Bars")
rightBars = input(15, title="Right Bars")
distanceThresh = input(1, title="Distance Threshold from Support/Resistance", type=input.float) / 100

// Calculations
smaValue = sma(close, length)
highUsePivot = fixnan(pivothigh(leftBars, rightBars)[1])
lowUsePivot = fixnan(pivotlow(leftBars, rightBars)[1])

// Volume Calculation
volumeIncrease = volume > volume[1]

// Entry Conditions
longEntryCondition = close[0] > close[1] and close[1] > smaValue and close[0] > smaValue and close[0] > lowUsePivot and close[1] > lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease
shortEntryCondition = close[0] < close[1] and close[1] < smaValue and close[0] < smaValue and close[0] < lowUsePivot and close[1] < lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease

// Calculate stop loss levels
longStopLoss = close * (1 - stopLossPerc)
shortStopLoss = close * (1 + stopLossPerc)

// Strategy Logic
strategy.entry("Long", strategy.long, when=longEntryCondition)
strategy.exit("Exit Long", "Long", stop=longStopLoss)

strategy.entry("Short", strategy.short, when=shortEntryCondition)
strategy.exit("Exit Short", "Short", stop=shortStopLoss)

// Plotting
plot(smaValue, color=color.blue, title="SMA")
plot(highUsePivot, color=color.red, linewidth=2, title="Resistance")
plot(lowUsePivot, color=color.green, linewidth=2, title="Support")

plotshape(series=longEntryCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Long Entry")
plotshape(series=shortEntryCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Entry")

// Background Color
bgcolor(longEntryCondition ? color.new(color.green, 90) : shortEntryCondition ? color.new(color.red, 90) : na)


Más.