Estrategia de cruce de posiciones largas y cortas utilizando promedios móviles duales e indicadores RSI


Fecha de creación: 2024-02-01 11:48:51 Última modificación: 2024-02-01 11:48:51
Copiar: 0 Número de Visitas: 730
1
Seguir
1617
Seguidores

Estrategia de cruce de posiciones largas y cortas utilizando promedios móviles duales e indicadores RSI

Esta estrategia utiliza una combinación de dos medias móviles y el indicador RSI para construir una estrategia de comercio cruzado de varios espacios. Esta estrategia puede capturar tendencias de línea media y larga, mientras que se utiliza un indicador de línea corta para evitar fluctuaciones innecesarias.

Principio de estrategia

Esta estrategia utiliza dos grupos de medias móviles, las medias móviles rápidas (EMA 59 y EMA 82) y las medias móviles lentas (EMA 96 y EMA 95): hacer más cuando el precio cruza la media móvil rápida de abajo hacia arriba; y hacer un vacío cuando el precio cruza la media móvil rápida de arriba hacia abajo. Al mismo tiempo, las zonas de sobrecompra y venta del indicador RSI se utilizan para confirmar las señales de negociación y el stop loss.

Concretamente, cuando el EMA rápido se eleva por encima del EMA lento, se genera una señal de cabeza vacía. Si el RSI está por debajo de 30 (área de sobreventa), se realiza una entrada de cabeza vacía.

La ventaja de usar una media móvil doble es que se pueden identificar mejor los cambios en la tendencia de la línea media y larga. El indicador RSI puede filtrar el ruido de las transacciones causadas por algunas falsas rupturas.

Ventajas estratégicas

  • El uso de medias móviles dobles para capturar tendencias medias y largas
  • El RSI filtra el ruido de las transacciones
  • Combinación de seguimiento de tendencia y inversiones
  • La lógica de la transacción es simple y clara.

Análisis de riesgos

  • Las señales de negociación generadas por las medias móviles pueden ser engañadas en mercados con gran volatilidad
  • El RSI también puede fallar en ciertos mercados
  • La configuración del punto de parada debe ser prudente y evitar ser demasiado flexible o apremiante.

Dirección de optimización de la estrategia

  • Combinaciones de promedios móviles para pruebas de períodos más largos
  • Intentar ajustes de parámetros diferentes, como cambios en el rango de los indicadores de inflexión
  • Añadir condiciones adicionales de filtrado, como indicadores de volumen de transacciones
  • Optimización de las estrategias de parada de pérdidas, en combinación con la parada dinámica de indicadores como ATR

Resumir

Esta estrategia integra las tendencias de las medias móviles dobles que siguen el comercio inverso con el indicador RSI. El doble EMA sigue la dirección de la tendencia de la línea media larga, y el RSI se utiliza para confirmar la eficacia de las señales de negociación y el stop loss. Esta es una estrategia de cruce de varios horizontes sencilla y práctica que se puede adaptar a diferentes entornos de mercado mediante la adaptación y optimización de los parámetros.

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

//@version=2
strategy("Swing Hull/rsi/EMA Strategy", overlay=true,default_qty_type=strategy.cash,default_qty_value=10000,scale=true,initial_capital=10000,currency=currency.USD)

//A Swing trading strategy that use a combination of indicators, rsi for target, hull for overall direction enad ema for entering the martket.
// hull ma copied from syrowof HullMA who copied from mohamed982 :) thanks both
// Performance 

n=input(title="period",defval=500)

n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)



// RSi and Moving averages

length = input( 14 )
overSold = input( 70)
overBought = input( 30)
point = 0.0001
dev= 2

fastLength = input(59)
fastLengthL = input(82)
slowLength = input(96)
slowLengthL = input(95)
price = close

mafast = ema(price, fastLength)
mafastL= ema(price, fastLengthL)
maslow = ema(price, slowLength)
maslowL = ema(price, slowLengthL)
vrsi = rsi(price, length)
cShort =  (crossunder(vrsi, overBought))

condDown = n2 >= n1
condUp = condDown != true
closeLong =  (crossover(vrsi, overSold))
closeShort = cShort 


// Strategy Logic
longCondition = n1> n2
shortCondition = longCondition != true

col =condUp ? lime : condDown ? red : yellow
plot(n1,color=col,linewidth=3)


if (not na(vrsi))
    if shortCondition    
        if (price[0] < maslow[0] and price[1] > mafast[1]) //cross entry
            strategy.entry("SYS-SHORT", strategy.short, comment="short")
strategy.close("SYS-SHORT", when=closeShort) //output logic

if (not na(vrsi))
    if longCondition // swing condition          
        if (price[0] < mafast[0] and price[1] > mafast[1]) //cross entry
            strategy.entry("SYS-LONG", strategy.long, comment="long")
strategy.close("SYS-LONG", when=closeLong) //output logic


// Stop Loss 


sl = input(75)
Stop = sl * 10
Q = 100


strategy.exit("Out Long", "SYS-LONG", qty_percent=Q, loss=Stop)
strategy.exit("Out Short", "SYS-SHORT", qty_percent=Q, loss=Stop)



//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)