Estrategia de negociación de reversión de impulso

El autor:¿ Qué pasa?, Fecha: 2024-01-26 15:51:20
Las etiquetas:

img

Resumen general

Estrategia lógica

Análisis de ventajas

  • Utiliza la capacidad del RSI para juzgar la sobrecompra/sobreventa para identificar eficazmente las reversiones.
  • Visualización clara de los puntos de entrada con señales comerciales
  • Muestra el cambio porcentual desde la última señal para juzgar la eficacia de las reversiones
  • Los parámetros del RSI personalizables se adaptan a diferentes períodos y activos
  • Puede utilizarse solo o en combinación con otros indicadores para mejorar la estrategia

Análisis de riesgos

  • Probabilidad más alta de fallo del RSI en períodos de alta volatilidad

Direcciones de optimización

  • Añadir stop loss para controlar la pérdida de una sola operación
  • Añadir la gestión de posiciones para el crecimiento exponencial de las posiciones rentables

Resumen de las actividades


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

//@version=5
strategy("Improved RSI Strategy", overlay=true)

// Define RSI parameters
rsiLength = input(14, title="RSI Length")
rsiOversold = input(30, title="Oversold Threshold")
rsiOverbought = input(70, title="Overbought Threshold")

// Calculate RSI
rsiValue = ta.rsi(close, rsiLength)

// Define entry conditions
longCondition = ta.crossover(rsiValue, rsiOversold)
shortCondition = ta.crossunder(rsiValue, rsiOverbought)

// Plot RSI and thresholds
plot(rsiValue, title="RSI", color=color.blue)
hline(rsiOversold, title="Oversold Threshold", color=color.red)
hline(rsiOverbought, title="Overbought Threshold", color=color.green)

// Calculate percentage change since last signal
var float percentageChange = na
lastCloseValue = ta.valuewhen(longCondition or shortCondition, close, 1)

if longCondition or shortCondition
    percentageChange := (close - lastCloseValue) / lastCloseValue * 100

plot(percentageChange, color=color.blue, style=plot.style_histogram, linewidth=1, title="% Change since last signal")

// Execute strategy
if longCondition
    strategy.entry("RSI Long", strategy.long)
    
if shortCondition
    strategy.entry("RSI Short", strategy.short)

// Plot shapes and text for buy/sell signals
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")


Más.