Cet article analyse principalement la stratégie de trading quantitative développée par Ravikant_sharma basée sur des moyennes mobiles exponentielles multiples (EMA) et un indice de force relative (RSI).
La stratégie utilise 5 EMA avec des périodes différentes, y compris des lignes de 9 jours, 21 jours, 51 jours, 100 jours et 200 jours.
Une des conditions suivantes doit être remplie avant l'achat:
Dans le même temps, le RSI doit être supérieur à 65, ce qui indique une forte tendance à la hausse.
L'une des conditions suivantes doit être remplie avant la clôture de la position:
Il s'agit d'une tendance typique qui suit une stratégie qui présente les points forts suivants:
Il y a encore des risques:
La stratégie peut être encore optimisée de la manière suivante:
En conclusion, il s'agit d'une stratégie globale fiable et facile à mettre en œuvre. Avec le croisement EMA pour la direction de la tendance et le filtre RSI pour les faux signaux, de bons résultats de backtest fournissent une base solide pour une optimisation ultérieure des paramètres et du modèle afin d'obtenir des profits stables. Cependant, les traders doivent toujours être prudents face à des renversements brusques et à des paramètres inappropriés qui présentent des risques.
/*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')