
Cette stratégie permet de réaliser une stratégie de trading quantitative basée sur le suivi de la tendance en combinant deux indicateurs techniques, l’indice relativement faible ((RSI) et l’indice des moyennes mobiles ((EMA)). Cette stratégie s’applique principalement aux marchés tendancieux et permet de tirer profit de la tendance en entrant sur le marché lorsque les prix peuvent être inversés.
Regardez le signal d’entrée:
Nous faisons plus d’admission lorsque les deux conditions ci-dessus sont remplies simultanément.
Pour chaque transaction, nous limitons la perte maximale possible à 3% de la valeur nette du compte.
Calcul de la taille de la position à l’entrée: le montant de la perte maximale / (prix d’entrée - prix de Stop Loss) = la taille de la position
Le risque d’une seule transaction est ainsi efficacement maîtrisé.
Les signaux de plafonnement se produisent principalement dans les situations suivantes:
Nous partons immédiatement si ces conditions sont remplies.
Cette stratégie combine les avantages du suivi de la tendance et de la négociation de retournement. En déterminant la direction de la tendance majeure par l’EMA, puis en entrant dans le moment de la reprise dans la zone de survente, il est possible de suivre la tendance et d’avoir une chance de revenir en arrière, ce qui améliore la stabilité de la stratégie.
Le contrôle des risques permet de limiter les pertes maximales par transaction, ce qui permet de contrôler efficacement les risques liés à chaque transaction et de protéger les fonds du compte.
Cette stratégie est principalement adaptée aux marchés tendanciels. Si vous rencontrez des marchés complexes et changeants, l’utilisation de l’EMA pour déterminer l’effet de la tendance peut réduire. De plus, l’indicateur RSI est en retard et doit être analysé en combinaison avec la tendance réelle des prix.
Le paramètre de stop loss est essentiel pour la stratégie de profit et de perte. Il doit être ajusté en fonction de tests prudents sur différents marchés. Si le stop loss est trop élevé, les pertes individuelles peuvent s’étendre; si le stop loss est trop petit, il peut être compromis par le bruit du marché.
Il est possible d’essayer d’optimiser les paramètres du RSI pour s’adapter à plus d’environnements de marché. Il est possible de tester différents ratios de taille de position pour trouver le réglage optimal. Il est possible de tester l’ajout d’autres indicateurs techniques pour construire un système d’entrée et de sortie plus robuste.
La stratégie intègre les avantages du suivi de la tendance et du renversement des transactions, tout en jugeant les grandes tendances et en entrant sur le marché à des points de renversement possibles. L’optimisation des paramètres d’indicateurs tels que le RSI peut être adaptée à un plus grand nombre d’environnements de marché. Chaque transaction est un risque contrôlable, adapté à une opération stable à moyen et long terme.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Stratégie RSI et EMA avec Gestion du Risque", overlay=true)
// Paramètres de la stratégie
rsiLength = input(14, "Longueur du RSI")
rsiOverbought = input(70, "Niveau de Surachat RSI")
rsiOversold = input(30, "Niveau de Survente RSI")
// Calcul du RSI
rsiValue = rsi(close, rsiLength)
// Paramètres des EMA
ema20 = ema(close, 20)
ema50 = ema(close, 50)
ema200 = ema(close, 200)
// Paramètre du risque par trade
riskPerTrade = input(0.03, "Risque par Trade (3%)")
// Distance du stop-loss en pips (à ajuster selon votre stratégie)
stopLossPips = input(1, "Distance du Stop-Loss en pips")
// Calcul de la taille de position et du stop-loss
calculatePositionSize(entryPrice, stopLossPips) =>
stopLossPrice = entryPrice - stopLossPips * syminfo.mintick
riskPerTradeValue = strategy.equity * riskPerTrade
positionSize = riskPerTradeValue / (entryPrice - stopLossPrice)
positionSize
// Conditions d'entrée
longCondition = (rsiValue < rsiOversold) and (close > ema20 or close > ema50 or close > ema200)
if longCondition
strategy.entry("Long", strategy.long, qty=1)
// Conditions de sortie
exitCondition = (rsiValue > rsiOverbought) or (close < ema20 or close < ema50 or close < ema200)
if exitCondition
strategy.close("Long")
// Affichage des EMA et RSI sur le graphique
plot(ema20, color=color.red)
plot(ema50, color=color.green)
plot(ema200, color=color.blue)
hline(rsiOverbought, "Niveau de Surachat RSI", color=color.red)
hline(rsiOversold, "Niveau de Survente RSI", color=color.blue)
plot(rsiValue, "RSI", color=color.purple)