Estrategia de seguimiento de tendencia de media móvil RSI


Fecha de creación: 2023-11-23 17:13:06 Última modificación: 2023-11-23 17:13:06
Copiar: 0 Número de Visitas: 626
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencia de media móvil RSI

Descripción general

La estrategia RSI de seguimiento de tendencias es una estrategia de negociación automática de acciones que utiliza al mismo tiempo el análisis de tendencias y el indicador de sobreventa y sobreventa. La estrategia utiliza una media móvil simple para determinar la dirección de la tendencia del mercado y, en combinación con un indicador RSI relativamente fuerte, emite una señal de negociación para determinar y seguir la tendencia.

Principio de estrategia

La estrategia tiene tres partes principales:

  1. Determinación de la tendencia: Calcula el promedio móvil simple de 200 días de la tendencia a largo plazo, calcula el promedio móvil simple de 30 y 50 días de la tendencia a corto plazo. Cuando el promedio móvil a corto plazo cruza el promedio móvil a largo plazo como señal de alza, y baja como señal de baja, determina la tendencia a largo plazo del mercado.

  2. Juízo de sobreventa: Calcula el RSI de 14 días, el RSI superior a 80 es el área de sobreventa y el inferior a 20 es el área de sobreventa. Se emite una señal de negociación cuando el RSI cae desde el área de sobreventa o sube desde el área de sobreventa.

  3. Entradas y salidas: cuando se juzgan las señales de sobreventa y sobreventa, la entrada es más / vacía si coincide con la dirección de la señal de juicio de tendencia. Cuando se produce un cruce de oro entre el promedio móvil a corto plazo y el largo plazo, se juzga la reversión de la tendencia, en este momento la salida de la posición.

Con esta estrategia, se puede ingresar a tiempo en el momento en que el precio de las acciones se invierte, al tiempo que se filtra parte de las operaciones de ruido combinadas con el juicio de tendencias, y es relativamente bueno en el control de retiros.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Combinado con un indicador de tendencia y de sobreventa y sobrecompra, filtra el ruido y identifica los puntos de inflexión.
  2. Al mismo tiempo, se considera la dirección de la tendencia en los períodos de tiempo largo y corto, lo que permite un juicio más preciso.
  3. Utilizando una media móvil como método de stop loss, se puede establecer un punto de stop loss en función de la volatilidad del mercado.
  4. Las condiciones de ingreso son estrictas, lo que ayuda a evitar falsos allanamientos.

Riesgos y soluciones

La estrategia también tiene sus riesgos:

  1. La solución es agregar más condiciones de filtración para evitar transacciones inútiles.
  2. Existe un cierto riesgo de retraso temporal. La solución es reducir adecuadamente el parámetro de ciclo de la media móvil.
  3. El efecto de las señales del RSI se ve afectado por las acciones y los mercados. La solución es combinar más factores como la forma de la línea K para determinar el efecto.

Dirección de optimización

La estrategia también puede ser optimizada en los siguientes aspectos:

  1. Se añaden más condiciones de filtración, como el volumen de intercambio, la forma de la línea K, etc., para mejorar aún más la eficacia de la señal.
  2. Optimizar el ciclo de los parámetros de las medias móviles y el RSI para que se ajusten mejor a las características de las diferentes acciones.
  3. Establecer promedios móviles dinámicos que ajusten automáticamente los parámetros según la volatilidad del mercado y las preferencias de riesgo.
  4. La adopción de tecnologías más avanzadas como el aprendizaje automático para juzgar las tendencias del mercado y mejorar la precisión de los juicios.

Resumir

La estrategia RSI de seguimiento de tendencias es una estrategia muy práctica en general, y al mismo tiempo combina el análisis de tendencias y el indicador de sobrecompra y sobreventa para filtrar el ruido del mercado hasta cierto punto y hacer que las señales de negociación sean más precisas y efectivas. Mediante la optimización continua de los medios y parámetros, la estrategia puede convertirse en un sistema de negociación de largo plazo que sea constantemente rentable.

Código Fuente de la Estrategia
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mattehalen

// INPUT per TIMEFRAME
// 5min     = Legnth = 9, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 4, LongMA = 10
// 30min    = Legnth = 7, Source = ohlc4,MaxLoss = 1000 TrendMA = 200, ShortMA = 10, LongMA = 20

strategy("Mathias & Christer Timeframe RSI", shorttitle="M&C_RSI",overlay=true, process_orders_on_close = true, default_qty_type =  strategy.percent_of_equity, default_qty_value = 100)
len = input(9, title="Length", type=input.integer)
src = input(ohlc4, title="Source", type=input.source)
//show4h = input(true, title="show 4h", type=input.bool)
maxLoss = input(3000)

rsiCurrent = rsi(src, len)
//rsi4h = security(syminfo.ticker, "240", rsi(src, len))
rsi4h   = rsi(src, len)

//--------------------------------------------------
//MA
trendMAInput = input(200, title="trendMA", type=input.integer)
shortMAInput = input(30, title="shortMA", type=input.integer)
longMAInput = input(50, title="longMA", type=input.integer)

trendMA = ema(close,trendMAInput)
shortMA = ema(close,shortMAInput)
longMA  = ema(close,longMAInput)
plot(trendMA, color=color.black, linewidth=5)
plot(shortMA, color=color.red, linewidth=2)
plot(longMA, color=color.green, linewidth=2)
bgcolor(crossunder(shortMA,longMA) ? color.black : na, transp=10)

//--------------------------------------------------
//RSI
BuySignalBarssince = barssince(rsi4h[1]<rsi4h[0] and rsi4h[1]<20)
BuySignal       = (rsi4h[1]<rsi4h[0] and rsi4h[1]<20 and BuySignalBarssince[1]>10)
BuySignalOut   = crossunder(longMA[1],shortMA[1])
bgcolor(BuySignal ? color.green : na, transp=70)
bgcolor(BuySignalOut ? color.green : na, transp=10)



SellSignalBarssince = barssince(rsi4h[1]>rsi4h[0] and rsi4h[1]>80)
SellSignal      = (rsi4h[1]>rsi4h[0] and rsi4h[1]>80 and SellSignalBarssince[1]>10)
SellSignalOut   = crossunder(shortMA[1],longMA[1])
bgcolor(SellSignal ? color.red : na, transp=70)
bgcolor(SellSignalOut ? color.red : na, transp=10)


if BuySignal
    strategy.close("short", comment = "Exit short")
    strategy.entry("long", true)
    strategy.exit("Max Loss", "long", loss = maxLoss)

if BuySignalOut
    strategy.close("long", comment = "Exit Long")
if SellSignal
    // Enter trade and issue exit order on max loss.
    strategy.close("long", comment = "Exit Long")
    strategy.entry("short", false)
    strategy.exit("Max Loss", "short", loss = maxLoss)
if SellSignalOut
    // Force trade exit.
    strategy.close("short", comment = "Exit short")
    
//--------------------------------------------------
//ATR
MyAtr = atr(10)
AtrFactor = 10
mySLBuy  = close[BuySignalBarssince]
mySLSell = close[SellSignalBarssince]

plotchar(BuySignal, "BuySignal", "⬆", location.belowbar, color.lime,size =size.huge )
plotchar(BuySignalOut, "BuySignalOut", "█", location.belowbar, color.lime,size =size.small)
plotchar(SellSignal, "SellSignal", "⬇", location.abovebar ,color.red,size =size.huge)
plotchar(SellSignalOut, "SellSignalOut", "█", location.abovebar, color.red,size =size.small)