
La estrategia se basa en el indicador RSI y las dos líneas EMA de señales de cruce para determinar el punto de venta. Cuando el precio de cierre cae por debajo de EMA100 y EMA20, y el valor RSI es inferior a 30 generar una señal de compra; cuando el precio de cierre rompe EMA100 y EMA20, y el valor RSI es superior a 70 generar una señal de venta. La idea principal de la estrategia es utilizar el indicador RSI para determinar el exceso de compra y venta, mientras que la combinación de la línea EMA juicio de la tendencia, con el fin de capturar los mínimos y máximos de la fluctuación del mercado, para llevar a cabo la operación de compra y venta.
La estrategia de cuantificación de la señal cruzada RSI y doble EMA es una estrategia de negociación cuantitativa simple y práctica que, mediante la combinación de los indicadores RSI con la línea media de la EMA, puede capturar mejor los altos y bajos en situaciones de convulsión para hacer arbitraje por diferencia. Sin embargo, la estrategia también tiene algunas limitaciones y riesgos, como la invalidez en situaciones de tendencia, la falta de medidas de gestión de posiciones y control de riesgo, etc.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI-EMA100&20 Buy/Sell Signal", overlay=true)
// Input parameters
rsiLength = input.int(14, "RSI Length")
emaCloseLength = input.int(100, "EMA Length (Closing Price)")
emaLowLength = input.int(20, "EMA Length (Low Price)")
oversoldLevel = input.int(30, "Oversold Level")
overboughtLevel = input.int(70, "Overbought Level")
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Calculate EMA of closing price
emaClose = ta.ema(close, emaCloseLength)
// Calculate EMA of low price
emaLow = ta.ema(low, emaLowLength)
// Determine overbought and oversold conditions
isOversold = rsi <= oversoldLevel
isOverbought = rsi >= overboughtLevel
// Plot RSI and its EMAs
plot(rsi, color=color.blue, title="RSI")
plot(emaClose, color=color.green, title="EMA 100 (Closing Price)")
plot(emaLow, color=color.orange, title="EMA 20 (Low Price)")
// Strategy entry condition: Closing price is below both EMAs and RSI is less than or equal to oversold level
buySignal = close < emaClose and close < emaLow and isOversold
// Plot buy signals
plotshape(series=buySignal, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small)
// Strategy entry
if (buySignal)
strategy.entry("Buy", strategy.long)
// Strategy exit condition: Price crosses above both EMAs and RSI is greater than or equal to overbought level
sellSignal = close > emaClose and close > emaLow and isOverbought
// Plot sell signals
plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Strategy exit
if (sellSignal)
strategy.entry("Sell", strategy.short)
// Plot sell signals
plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Strategy exit
if (sellSignal)
strategy.entry("Sell", strategy.short)