Estrategia long-short combinando RSI y MACD

RSI MACD
Fecha de creación: 2024-05-17 11:04:03 Última modificación: 2024-05-17 11:04:03
Copiar: 0 Número de Visitas: 778
1
Seguir
1617
Seguidores

Estrategia long-short combinando RSI y MACD

Descripción general

La estrategia combina dos indicadores técnicos, el índice de fuerza relativa (RSI) y el indicador de dispersión de la media móvil (MACD), para formar un conjunto completo de estrategias multi-espacio que utilizan el RSI para juzgar sobrecompras y sobreventa y la MACD para juzgar la dirección de la tendencia. Cuando el RSI emite una señal de venta, el MACD cruza la línea rápida y lenta para cerrar la posición superior; cuando el RSI emite una señal de compra, el MACD cruza la línea rápida y lenta para cerrar la posición inferior. La configuración del punto de parada se determina calculando la mitad de la caída promedio de la variedad.

Principio de estrategia

  1. El RSI es un indicador de compras y ventas excesivas:
    • Cuando el RSI es mayor que 70 y cruza la línea de 70 de arriba a abajo, emite una señal de venta
    • Cuando el RSI es menor que 30 y cruza la línea 30 de abajo hacia arriba, emite una señal de compra
  2. Calcular el indicador MACD para determinar la dirección de la tendencia:
    • Cuando la línea rápida de MACD cruza la línea lenta de abajo hacia arriba, emite una señal de venta de posición para la posición en posición baja
    • Cuando la línea rápida de MACD cruza la línea lenta de arriba a abajo, emite una señal de compra en posición de posición en posición baja
  3. La configuración del punto de parada:
    • Calcula el promedio de subidas y bajadas de la variedad, tomando la mitad como punto de parada

El uso de MACD para determinar la dirección de la tendencia, y la posición cerrada al comienzo de la tendencia, para poder capturar mejor la tendencia. Los dos indicadores se complementan entre sí, formando un sistema de negociación completo.

Ventajas estratégicas

  1. La combinación de las dos estrategias de sobrecompra y sobreventa y seguimiento de la tendencia, permite la intervención en el inicio de la reversión del mercado y la liquidación oportuna después de la formación de la tendencia, evitando de manera efectiva las pérdidas causadas por las repetidas sacudidas del mercado.
  2. La configuración de los puntos de parada está basada en las características de fluctuación de la variedad, lo que permite controlar la retirada y mejorar la eficiencia de la utilización de los fondos.
  3. La lógica del código es clara, utiliza una programación funcional, es fácil de entender y optimizar.

Riesgo estratégico

  1. La elección de los parámetros RSI y MACD tiene un gran impacto en el rendimiento de la estrategia, y puede ser necesario optimizar los parámetros para diferentes variedades y períodos.
  2. La estrategia puede sufrir un mayor retroceso en situaciones extremas del mercado, como los cambios rápidos en el rango causados por eventos inesperados.
  3. Las estrategias pueden no funcionar bien en mercados convulsionados, con transacciones frecuentes y costos de transacción más altos.

Dirección de optimización de la estrategia

  1. Optimización de los parámetros de RSI y MACD para encontrar la combinación de parámetros más adecuada para la variedad y el ciclo actuales, para mejorar la estabilidad y la rentabilidad de la estrategia.
  2. Se añaden más filtros, indicadores como volumen de operaciones, volatilidad, etc., para reducir la frecuencia de las operaciones y mejorar la calidad de la señal.
  3. Introducción de módulos de gestión de posiciones para ajustar posiciones de acuerdo con las tendencias del mercado y la dinámica de su propio rendimiento, control de retiros.
  4. Combinado con otras estrategias, como el seguimiento de tendencias, la respuesta media, etc., forma una combinación de múltiples estrategias para mejorar la adaptabilidad de las estrategias.

Resumir

La estrategia determina el exceso de compra y venta por el RSI y la dirección de la tendencia por el MACD, formando un sistema completo de operaciones multi-espacio. La lógica de la estrategia es clara, las ventajas son evidentes, pero también existe un cierto riesgo.

Código Fuente de la Estrategia
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="RSI & MACD Strategy", shorttitle="RSI & MACD", overlay=true)

// Définition des entrées
rsi_length = 14
rsi_overbought = 70
rsi_oversold = 30
macd_fast_length = 12
macd_slow_length = 26
macd_signal_length = 9

// Fonction pour calculer le RSI
calculate_rsi(source, length) =>
    price_change = ta.change(source)
    up = ta.rma(price_change > 0 ? price_change : 0, length)
    down = ta.rma(price_change < 0 ? -price_change : 0, length)
    rs = up / down
    rsi = 100 - (100 / (1 + rs))
    rsi

// Fonction pour calculer le MACD
calculate_macd(source, fast_length, slow_length, signal_length) =>
    fast_ma = ta.ema(source, fast_length)
    slow_ma = ta.ema(source, slow_length)
    macd = fast_ma - slow_ma
    signal = ta.ema(macd, signal_length)
    hist = macd - signal
    [macd, signal, hist]

// Calcul des indicateurs
rsi_value = calculate_rsi(close, rsi_length)
[macd_line, signal_line, _] = calculate_macd(close, macd_fast_length, macd_slow_length, macd_signal_length)

// Conditions d'entrée et de sortie
// Entrée en vente : RSI passe de >= 70 à < 70
sell_entry_condition = ta.crossunder(rsi_value, rsi_overbought)

// Sortie en vente : MACD fast MA croise au-dessus de slow MA
sell_exit_condition = ta.crossover(macd_line, signal_line)

// Entrée en achat : RSI passe de <= 30 à > 30
buy_entry_condition = ta.crossover(rsi_value, rsi_oversold)

// Sortie en achat : MACD fast MA croise en-dessous de slow MA
buy_exit_condition = ta.crossunder(macd_line, signal_line)

// Affichage des signaux sur le graphique
plotshape(series=sell_entry_condition, title="Sell Entry", location=location.belowbar, color=color.red, style=shape.triangleup, size=size.small)
plotshape(series=sell_exit_condition, title="Sell Exit", location=location.abovebar, color=color.green, style=shape.triangledown, size=size.small)
plotshape(series=buy_entry_condition, title="Buy Entry", location=location.abovebar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=buy_exit_condition, title="Buy Exit", location=location.belowbar, color=color.red, style=shape.triangledown, size=size.small)

// Entrées et sorties de la stratégie
if (sell_entry_condition)
    strategy.entry("Short", strategy.short)
    
if (sell_exit_condition)
    strategy.close("Short")

if (buy_entry_condition)
    strategy.entry("Long", strategy.long)
    
if (buy_exit_condition)
    strategy.close("Long")