Estrategia de cruce de la media móvil del RSI

El autor:¿ Qué pasa?, Fecha: 2023-11-07 15:35:58
Las etiquetas:

img

Resumen general

La estrategia de cruce de promedio móvil del RSI es una estrategia que se utiliza principalmente para el comercio de criptomonedas. Aplica un promedio móvil al indicador RSI y las operaciones se basan en los cruces entre el RSI y su promedio móvil. También incluye el indicador del que está hecho.

Estrategia lógica

La estrategia primero calcula el indicador RSI. El indicador RSI refleja la fuerza del precio basada en los movimientos ascendentes y descendentes durante un cierto período de tiempo.

Luego, la estrategia aplica un promedio móvil al indicador RSI. El promedio móvil puede filtrar fluctuaciones aleatorias y determinar la dirección de la tendencia.

Cuando el RSI cruza por encima de su media móvil, se considera una señal de compra. Cuando el RSI cruza por debajo de su media móvil, se considera una señal de venta.

En el código, el indicador RSI con el período de duración se calcula primero. Luego se calcula el promedio móvil de 10 períodos ma de RSI. Cuando ma cruza por encima de rsi, comprará. Cuando ma cruza por debajo de rsi, venderá.

Además, el código traza el gráfico de líneas para rsi y ma, así como el gráfico de columnas para rsi-ma. Las líneas divisorias para rsi=70 y rsi=30 también se trazan. Las flechas de señal correspondientes se marcan en el gráfico al comprar o vender.

Análisis de ventajas

  • El RSI puede juzgar las condiciones de sobrecompra y sobreventa. El promedio móvil puede filtrar las fluctuaciones aleatorias. La combinación de los dos puede identificar puntos de inversión de tendencia.

  • El cruce de la media móvil RSI es una idea de estrategia comercial relativamente madura que puede filtrar algunas señales falsas.

  • El código de la estrategia es simple y claro, fácil de entender.

  • Esta estrategia funciona bien para las criptomonedas con tendencias relativamente obvias.

Análisis de riesgos

  • Los parámetros incorrectos del RSI y de la media móvil pueden generar demasiadas señales erróneas.

  • El análisis de tendencias debe combinarse.

  • Los costes de negociación pueden tener cierto impacto en las ganancias.

  • La volatilidad del mercado de criptomonedas es alta, hay que estar alerta para evitar pérdidas.

Para abordar los riesgos, los parámetros se pueden ajustar para optimizar los indicadores, los tamaños de las posiciones se pueden reducir, se puede establecer un stop loss y se puede utilizar el análisis de tendencias para filtrar las señales.

Direcciones de optimización

  • Investigue la combinación óptima de RSI y promedio móvil bajo diferentes parámetros de período.

  • Aumentar el tamaño de la posición cuando la tendencia es fuerte y reducir cuando la tendencia no es clara.

  • Configure el stop loss dinámico para seguir la tendencia.

  • Explorar la combinación de RSI con otros indicadores para formar nuevas señales comerciales.

  • Explorar modelos de aprendizaje automático basados en esta estrategia para mejorar la tasa de ganancia.

Resumen de las actividades

La estrategia de cruce de promedio móvil del RSI combina las ventajas de los indicadores de tendencia y filtrado, relativamente maduros y confiables. La lógica de la estrategia es simple y clara, y la implementación del código también es bastante completa. En general, es una estrategia de comercio de criptomonedas bastante buena. Pero cada estrategia necesita optimización. Requiere pruebas y ajustes constantes, combinados con el análisis de tendencias, para lograr un mejor rendimiento de la estrategia.


/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI w MA Strategy", shorttitle="RSI w MA Strategy", overlay=false, initial_capital=10000, currency='USD',process_orders_on_close=true)

//TIME FRAME AND BACKGROUND CONTROL/////////////////////////////////////////////
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(01, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2022, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   color.teal : na
//bgcolor(testPeriodBackgroundColor, transp=50)
testPeriod() => true
////////////////////////////////////////////////////////////////////////////////

src = close, len = input(27, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
window = input(10, "RSI MA Window")
ma = sma(rsi,window)
plot(rsi, color=color.orange)
colorr= ma > rsi ? color.red : color.green
plot(ma,color=colorr)
band1 = hline(70)
band0 = hline(30)
fill(band1, band0, color=color.purple, transp=90)
diff = rsi - ma

plot(diff,style= plot.style_columns,transp=50,color = colorr)

plotshape(crossunder(rsi,ma)?rsi:na,title="top",style=shape.triangledown,location=location.absolute,size=size.tiny,color=color.red,transp=0)
plotshape(crossover(rsi,ma)?rsi:na,title="bottom",style=shape.triangleup,location=location.absolute,size=size.tiny,color=color.lime,transp=0)

buySignal = crossover(rsi,ma)
sellSignal = crossunder(rsi,ma)

//TRADE CONTROL/////////////////////////////////////////////////////////////////
if testPeriod()
    if buySignal
        strategy.close("Short", qty_percent = 100, comment = "Close Short")
        strategy.entry("Long", strategy.long, qty=.1)

    if sellSignal
        strategy.close("Long", qty_percent = 100, comment = "Close Long")
        strategy.entry("Short", strategy.short, qty=.1)

////////////////////////////////////////////////////////////////////////////////













Más.