
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.
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.
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.
/*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)