Estrategia de cruce de líneas de promedio móvil y ruptura del nivel de resistencia

El autor:¿ Qué pasa?, Fecha: 2024-01-31 14:34:16
Las etiquetas:

img

Resumen general

Esta estrategia integra las técnicas de cruce de promedio móvil y ruptura de nivel de resistencia para configurar señales de compra y venta para el comercio automatizado. Cuando el promedio móvil a corto plazo cruza el promedio móvil a mediano plazo desde abajo y el precio de la acción rompe el nivel de resistencia, se genera una señal de compra. La estrategia establece el take-profit en un aumento del precio del 15% y el stop-loss en un descenso del precio del 3% para controlar los riesgos. Esta estrategia de trading cuantitativa madura puede identificar automáticamente las tendencias del mercado y entrar en posiciones cuando surgen señales técnicas, con una adecuada gestión del riesgo.

Principios de estrategia

La estrategia genera señales comerciales basadas principalmente en los siguientes indicadores técnicos y juicios:

  1. Técnica de cruce de media móvil: se calculan medias móviles simples de 20 y 44 días.

  2. Técnica de ruptura de nivel de resistencia: los niveles de precio que el precio de la acción ha alcanzado repetidamente pero no ha logrado romper se llaman niveles de resistencia. Romperlos indica que el precio está entrando en una nueva tendencia alcista. Esta estrategia considera una ruptura por encima del 0,7% del cierre anterior como una ruptura de resistencia.

  3. Oscilador RSI: Índice de fortaleza relativa, un indicador de impulso para identificar las condiciones de sobrecompra y sobreventa.

  4. Análisis del volumen: el volumen que excede la media de los últimos 10 días a menudo sugiere un mayor interés de compra o venta y un mayor impulso en el movimiento de los precios.

  5. Las señales de compra se activan cuando la SMA corta cruza la SMA media, con un valor RSI sobrecomprado y un volumen de operaciones superior al promedio, lo que indica una tendencia al alza.

  6. Las señales de venta: 15% de ganancia del precio de entrada, 3% de stop-loss.

Esta estrategia de negociación cuantitativa madura integra múltiples métodos de análisis técnico para identificar la estructura y la tendencia del mercado, generando automáticamente señales de negociación durante la formación de tendencias, con una gestión adecuada del riesgo.

Ventajas de la estrategia

  1. Captura las tendencias del mercado sin problemas con la técnica de promedio móvil.

  2. Evitar la apertura de posiciones durante las falsas rupturas mediante la incorporación de análisis de volumen.

  3. Control eficaz del riesgo mediante el establecimiento de stop-loss y take-profit, optimizando la relación riesgo-recompensa.

  4. En general, un excelente juicio sobre la estructura del mercado, reglas de negociación rigurosas y control de riesgos hacen de esta una estrategia de negociación cuantitativa sólida.

Riesgos de la estrategia

  1. Los sistemas de media móvil doble pueden ser sensibles a la regulación de parámetros para diferentes períodos.

  2. Los sistemas de seguimiento de tendencias no pueden responder rápidamente a eventos fundamentales repentinos, enfrentándose a riesgos de stop loss.

  3. Aunque con el stop loss establecido, la alta frecuencia de negociación conduce a un número inevitable de ejecuciones de stop loss, lo que resulta en niveles de ganancia desiguales.

  4. Las señales de los indicadores técnicos a menudo se quedan atrás de los mejores puntos de inversión de los mercados.

Direcciones de optimización

  1. Optimice parámetros como las longitudes de media móvil, el objetivo de stop loss / ganancia por métodos de ajuste de parámetros para encontrar lo óptimo.

  2. Añadir otros indicadores técnicos como bandas de Bollinger para la detección de rango, MACD para detectar divergencias, etc. para mejorar la precisión de la señal.

  3. Incorporar señales fundamentales y impulsadas por eventos para evitar el stop loss provocado por noticias negativas.

  4. Optimizar la gestión del dinero mediante métodos de cantidad fija y porcentaje fijo para controlar los riesgos por comercio.

Conclusión

Esta estrategia demuestra operaciones suaves, juicios precisos y reglas de negociación rigurosas, representando una de las técnicas de negociación cuantitativa más efectivas. Pero el análisis técnico por sí solo tiene limitaciones en la lectura de mercados, por lo que las mejoras adicionales se encuentran en la incorporación de más indicadores y señales fundamentales / de eventos, la optimización de los niveles de stop loss / take profit y los mecanismos de gestión de dinero. En resumen, esta estrategia ha alcanzado un alto nivel entre las estrategias de análisis técnico, pero debería dirigirse hacia las estrategias de negociación de ciclos fundamentales / impulsados por eventos en los próximos pasos.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Advanced Strategy with Conditional Stop Loss", overlay=true)

// Parameters
ma_length_20 = 20
ma_length_44 = 44
ma_length_100 = 100
rsi_length = 14
volume_length = 10
profit_target = 1.15 // 15% above the buy price
stop_loss_target = 0.97 // 3% below the buy price
wait_candles = 10 // Number of candles to wait after selling, unless MA cross condition met

// Indicators
moving_average_20 = ta.sma(close, ma_length_20)
moving_average_44 = ta.sma(close, ma_length_44)
moving_average_100 = ta.sma(close, ma_length_100)
rsi = ta.rsi(close, rsi_length)
volumeAvg = ta.sma(volume, volume_length)

// Variables to manage the wait period after a sell
var int last_sell_candle = 0

// Update last sell candle
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
    last_sell_candle := bar_index

// Trend identification
uptrend = close > moving_average_20
above_ma20_by_1_percent = close > moving_average_20 * 1.01
ma_cross = ta.crossover(moving_average_20, moving_average_44) or ta.crossunder(moving_average_20, moving_average_44)
close_near_high = (close >= high * 0.993) and (close <= high)

// Buy condition (only in uptrend, above 1% from 20-day MA, and respecting new filter)
can_buy_after_cross = ma_cross and close > high[1]
can_buy_after_wait = (bar_index - last_sell_candle) > wait_candles
buy_condition = (can_buy_after_cross or can_buy_after_wait) and uptrend and above_ma20_by_1_percent and close > moving_average_44 and close > moving_average_100 and close > high[1] and rsi > 50 and volume > volumeAvg and not close_near_high

// Entry
if (buy_condition and strategy.position_size == 0)
    strategy.entry("Buy", strategy.long)

// Exit conditions
if (strategy.position_size > 0)
    // Profit target
    profit_level = strategy.position_avg_price * profit_target
    strategy.exit("Take Profit", "Buy", limit=profit_level)

    // Dynamic Stop Loss - Check on every bar if the price has dropped 3% below the buy price
    stop_loss_level = strategy.position_avg_price * stop_loss_target
    if (low < stop_loss_level)
        strategy.close("Buy", comment="Stop Loss")

// Plotting
plot(moving_average_20, color=color.green, title="20-Day Moving Average")
plot(moving_average_44, color=color.blue, title="44-Day Moving Average")
plot(moving_average_100, color=color.red, title="100-Day Moving Average")


Más.