
Le présent article analyse principalement la stratégie de trading quantitative développée par Ravikant_sharma, basée sur des moyennes mobiles multi-indices (EMA) et des indices de force relative (RSI). La stratégie est basée sur le croisement de différentes périodes d’EMA et des valeurs du RSI, pour identifier les tendances de prix et déterminer les moments d’entrée et de sortie.
La stratégie utilise 5 EMA de différentes périodes, y compris la ligne 9, la ligne 21, la ligne 51, la ligne 100 et la ligne 200. Seuls les 4 premiers EMA sont tracés dans le code. Le paramètre RSI est défini sur 14.
La stratégie consiste à ouvrir plus de positions si l’une des conditions suivantes est remplie:
Le RSI doit également être supérieur à 65 pour indiquer une forte tendance à la hausse.
La stratégie de liquidation se termine lorsque l’une des conditions suivantes est remplie:
Il s’agit d’une stratégie de suivi de tendance typique qui présente les avantages suivants:
Cette stratégie comporte aussi des risques:
Cette stratégie peut également être optimisée dans les directions suivantes:
Cette stratégie est globalement une stratégie de suivi de tendance fiable et facile à mettre en œuvre. Elle utilise des EMA multi-cycles pour déterminer la direction de la tendance, puis combine les faux signaux de filtrage RSI pour optimiser les paramètres et l’optimisation des modèles sur la base d’un meilleur effet de rétroaction.
/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Ravikant_sharma
//@version=5
strategy('new', overlay=true)
start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2043, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)
rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))
//plot(ema4, '100', color.new(color.gray, 0))
//LongEntry = ( ta.crossover(ema0,ema3) or ta.crossover(ema0,ema2) or ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1)
if rsi2>65
LongEntry:=true
if ta.crossover(ema1,ema2)
if rsi2>65
LongEntry:=true
LongExit = ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)
if time >= start and time <= end
if(LongEntry and rsi2>60)
strategy.entry('Long', strategy.long, 1)
if(LongExit)
strategy.close('Long')