
La stratégie est basée sur le RSI et les signaux de croisement des deux lignes EMA pour déterminer le point d’achat et de vente. Un signal d’achat est généré lorsque le prix de clôture tombe en dessous des valeurs EMA100 et EMA20 et que le RSI est inférieur à 30; Un signal de vente est généré lorsque le prix de clôture franchit les valeurs EMA100 et EMA20 et que le RSI est supérieur à 70. L’idée principale de la stratégie est d’utiliser l’indicateur RSI pour déterminer une situation de survente et de survente, tout en combinant les jugements de tendance de la ligne EMA, afin de capturer les bas et les hauts de la volatilité du marché.
La stratégie de quantification des signaux croisés RSI et double EMA est une stratégie de négociation quantitative simple et pratique qui, en combinant l’indicateur RSI avec la moyenne EMA, permet de mieux capturer les hauts et les bas des conditions de choc pour effectuer un arbitrage différentiel. Cependant, la stratégie comporte également des limites et des risques, tels que l’inefficacité des conditions de tendance, le manque de gestion de position et de mesures de contrôle des risques, etc. Dans l’application réelle, il est donc nécessaire d’optimiser et d’améliorer la stratégie en fonction des caractéristiques du marché et des préférences personnelles.
/*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)