Stratégie de trading quantitative basée sur la régression linéaire RSI


Date de création: 2024-01-24 11:35:19 Dernière modification: 2024-01-24 11:35:19
Copier: 0 Nombre de clics: 770
1
Suivre
1617
Abonnés

Stratégie de trading quantitative basée sur la régression linéaire RSI

Aperçu

La stratégie est basée sur la conception de l’indicateur RSI à régression linéaire. La stratégie génère des signaux d’achat et de vente en calculant un croisement de la régression linéaire RSI et EMA. La stratégie offre simultanément deux options de logique d’achat, qui peuvent être sélectionnées selon les besoins.

Principe de stratégie

La stratégie commence par calculer une régression linéaire de 200 cycles de longueur, puis un RSI de 21 cycles basé sur les résultats de la régression linéaire. Ensuite, une EMA de 50 cycles de longueur est calculée. Un signal d’achat est généré lorsque le RSI franchit l’EMA et un signal de vente lorsque le RSI franchit l’EMA.

Cette stratégie offre deux logiques d’achat:

  1. L’EMA est achetée sur le RSI
  2. Achetez lorsque le RSI est supérieur à l’EMA et au-dessus de la ligne de vente

La logique d’achat peut être choisie en fonction de la situation du marché.

Analyse des avantages

La stratégie combine les avantages du RSI et de l’EMA en régression linéaire pour effacer efficacement une partie du bruit des prix et produire un signal de trading plus fiable.

La régression linéaire du RSI est un meilleur indicateur de la tendance, tandis que l’EMA aide à détecter les points de basculement. La combinaison de ces deux éléments permet de rechercher des opportunités de revers dans la tendance, formant ainsi une stratégie de réversion moyenne.

La stratégie offre deux logiques d’achat, qui peuvent être ajustées plus flexiblement en fonction de la phase du marché. Par exemple, la première logique peut être choisie lorsqu’une tendance est évidente et la seconde lorsqu’une secousse se produit.

Analyse des risques

Cette stratégie repose principalement sur la relation entre le RSI et l’EMA, et si la relation entre les deux change, cela peut entraîner une erreur de signal de trading. C’est le principal point de risque.

En outre, le RSI et l’EMA sont eux-mêmes un indicateur de retard, ce qui peut entraîner un certain retard dans les achats et les ventes et l’impossibilité de capturer parfaitement les points de basculement. Cela entraîne également un certain risque réel.

Pour réduire le risque, il est possible d’ajuster les paramètres de longueur du RSI et de l’EMA de manière appropriée, afin d’optimiser la combinaison entre les deux.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Optimiser les paramètres de longueur du RSI et de l’EMA pour trouver la meilleure combinaison de paramètres
  2. Ajout de filtres sur d’autres indicateurs, tels que MACD, bande de Brin, etc., pour améliorer la qualité du signal
  3. Adaptation de la gestion des positions combinée à des indicateurs de volatilité
  4. Optimiser automatiquement les paramètres à l’aide de l’apprentissage automatique

Résumer

Cette stratégie est basée sur une régression linéaire RSI et EMA, une stratégie de réversion moyenne est conçue pour trouver des opportunités de réversion dans la fourchette de couverture par le croisement du RSI et de l’EMA. Cette stratégie offre simultanément deux options de logique d’achat, ce qui permet de répondre de manière flexible à différentes conditions de marché.

Code source de la stratégie
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Linear RSI")

startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() => true

//inputs
length = input(defval=200, minval=1, title="LR length")
length2 = input(defval=21, minval=1, title="RSI length")
ema_fast = input(defval=50, minval=1, title="EMA")
lag = 0

overBought = input(50)
overSold = input(50)


//rsi
src = close
Lr = linreg(src, length, lag)
rsi = rsi(Lr, length2)
ema = ema(rsi, ema_fast)

plot(rsi, color = rsi > overBought ? color.green : rsi < overSold ? color.red : color.silver)
plot(overBought, color=color.purple)
plot(overSold, color=color.purple)
plot(ema, color=color.blue)

first_type = input(true, title="Use first logic?")
second_type =  input(false, title="Use second logic?")

long_condition = (first_type ? crossover(rsi, ema) and _testPeriod() : false) or (second_type ? rsi > ema and rsi > overBought and _testPeriod() : false)
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition = crossunder(rsi, ema)
strategy.close('BUY', when=short_condition)