Estrategia de negociación de combinación de SMA y RSI

El autor:¿ Qué pasa?, Fecha: 2023-10-08 11:40:49
Las etiquetas:

Resumen general

Esta estrategia se basa en los indicadores Simple Moving Average (SMA) y Relative Strength Index (RSI). Se corta cuando el RSI cruza por encima de un nivel de entrada definido y el precio de cierre está por debajo del SMA, con un stop loss trasero o un stop loss desencadenado por el RSI. La estrategia combina indicadores de tendencia y sobrecompra / sobreventa, con el objetivo de capturar oportunidades de reversión en el marco de tiempo a mediano plazo.

Estrategia lógica

  1. Utilice el SMA (200 períodos) para determinar la dirección general de la tendencia. Busque la oportunidad de cortocircuito cuando el precio esté por debajo del SMA.

  2. Utilice el RSI (14 períodos) para identificar las condiciones de sobrecompra/sobreventa.

  3. Después de abrir una posición corta, establezca el stop loss trasero al precio de cierre más bajo.

  4. Hay tres tipos de stop loss: stop del precio, stop del RSI y stop del beneficio.

Los puntos fuertes

  1. La combinación de indicadores de tendencia y de sobrecompra/sobreventa mejora la precisión del tiempo de las entradas.

  2. El seguimiento del stop loss puede proteger las ganancias de acuerdo con el cambio de precio en tiempo real, evitando el stop loss rígido.

  3. El disparador bidireccional del RSI ayuda a bloquear las ganancias y evitar pérdidas de retroceso excesivas.

  4. El uso de indicadores sencillos con parámetros fijos facilita su aplicación para el comercio a medio plazo.

Los riesgos

  1. Es posible que los parámetros SMA y RSI no se adapten a todos los productos y plazos, lo que requiere una optimización.

  2. Los costos de negociación como el deslizamiento y las comisiones se ignoran, lo que afecta al PnL real.

  3. No se tienen en cuenta otros factores como el volumen y la estructura del mercado, lo que conduce a señales poco fiables.

  4. Confiar demasiado en los indicadores e ignorar la acción del precio en sí puede perder el momento de la reversión.

  5. El método de stop loss es relativamente rígido, incapaz de adaptarse a los grandes cambios del mercado.

Mejora

  1. Prueba y optimiza los parámetros de período SMA y RSI para encontrar la mejor combinación.

  2. Considere la posibilidad de añadir un indicador de volumen para evitar una falsa ruptura con un volumen bajo.

  3. Combinaciones de pruebas con otros indicadores como MACD, bandas de Bollinger, etc.

  4. Agregar algoritmos de aprendizaje automático, mejorando la precisión de la señal mediante el entrenamiento con datos históricos.

  5. Optimizar el stop loss para ser más flexible y adaptarse a los cambios del mercado.

  6. Adjunte la gestión del riesgo para controlar el importe de las pérdidas de una sola operación.

Conclusión

Esta estrategia integra los puntos fuertes de los indicadores SMA y RSI, filtrando algunas oportunidades de negociación ruidosas. Su lógica simple es fácil de implementar, pero aún requiere optimización de parámetros y reglas, junto con un control adecuado del riesgo para operar de manera estable a largo plazo.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © abdllhatn

//@version=5
// strategy("Alpha Short SMA and RSI Strategy", overlay=true, initial_capital=10000, default_qty_value=100)

// Inputs
sma_length = input(200, title="SMA Length")
rsi_length = input(14, title="RSI Length")
rsi_entry = input(51, title="RSI Entry Level")
rsi_stop = input(54, title="RSI Stop Level")
rsi_take_profit = input(32, title="RSI Take Profit Level")

// Indicators
sma_value = ta.sma(close, sma_length)
rsi_value = ta.rsi(close, rsi_length)

var float trailingStop = na
var float lastLow = na

// Conditions
shortCondition = ta.crossover(rsi_value, rsi_entry) and close < sma_value
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    trailingStop := na
    lastLow := na

if (strategy.position_size < 0)
    if (na(lastLow) or close < lastLow)
        lastLow := close
        trailingStop := close

if not na(trailingStop) and close > trailingStop
    strategy.close("Sell")

if (rsi_value >= rsi_stop)
    strategy.close("Sell")

if (rsi_value <= rsi_take_profit)
    strategy.close("Sell")

// Plot
plot(sma_value, color=color.red, linewidth=2)




Más.