
La stratégie de régression linéaire inverse est une stratégie de négociation inverse basée sur les fluctuations des prix. Elle combine l’analyse de la régression linéaire et l’indicateur AVERAGE TRUE RANGE, qui définit les conditions d’une ligne K à la hausse ou à la baisse continue, et effectue une action inverse lorsque l’analyse de la régression linéaire juge que les prix sont inversés.
La stratégie commence par calculer la pente de la régression linéaire. Lorsque la pente de la régression linéaire est supérieure ou égale à 0, le prix est en hausse; lorsque la pente est inférieure ou égale à 0, le prix est en baisse. Le rapport entre le prix de clôture et le prix d’ouverture de la dernière ligne K est utilisé pour déterminer si la dernière ligne K est à la hausse ou à la baisse.
La fréquence des transactions peut être contrôlée en réglant le nombre de lignes K à la hausse et le nombre de lignes K à la baisse en continu. Un signal de vente est généré lorsque la courbe de régression linéaire est inférieure à 0 lorsque la ligne K à la hausse et à la baisse en continu atteint le nombre de lignes K à la hausse et la courbe de régression linéaire est supérieure à 0 lorsque la courbe de régression linéaire est supérieure à 0 lorsque la courbe de régression linéaire est supérieure à 0 et que la courbe de régression linéaire est supérieure à 0 lorsque la courbe de régression linéaire atteint le nombre de lignes K à la baisse et à la baisse.
Cette stratégie combine tendance et inversion, permettant d’opérer des inversions à proximité des points critiques, afin d’obtenir un avantage après un ajustement des prix. L’analyse de la régression linéaire fournit un moyen de juger de la tendance générale des prix, en évitant de faire zéro ou de faire plus de inversions lorsque les prix sont toujours en hausse ou en baisse.
Comparée à une simple stratégie de retournement, cette stratégie, combinant plusieurs indicateurs techniques, permet un contrôle plus précis du moment de la transaction, ce qui permet d’éviter efficacement le risque de fausses percées et d’améliorer la probabilité de réaliser des bénéfices.
La stratégie est principalement exposée au risque d’échec du renversement. Si le prix continue à fonctionner sur la tendance initiale après avoir détecté un signal de renversement, il y a un risque de perte. En outre, l’analyse de la régression linéaire et la configuration des paramètres de l’indicateur ATR peuvent également avoir un impact sur les gains de la stratégie.
Les pertes individuelles peuvent être contrôlées par des arrêts de perte. La fréquence des fluctuations du marché peut être évaluée de manière raisonnable, le nombre de lignes K successives peut être ajusté de manière appropriée, la fréquence des transactions peut être réduite. Les paramètres de cycle de régression linéaire et les paramètres ATR peuvent être optimisés pour mieux s’adapter aux caractéristiques des différentes variétés.
Cette stratégie peut être optimisée dans les domaines suivants:
L’ajout d’autres indicateurs techniques de jugement, combinés avec des indicateurs de différentes périodes de temps, améliore l’exactitude du jugement. Par exemple, l’ajout de MACD, Bollinger Band, etc.
Ajout d’un composant d’apprentissage automatique, optimisation automatique des paramètres par algorithme et adaptation dynamique des règles de négociation.
Adhérer à des mécanismes de gestion des risques, tels que la gestion des fonds, les stratégies de stop-loss, etc., pour contrôler les risques de transaction.
Optimiser le portefeuille, combiner la stratégie avec d’autres stratégies non pertinentes, réduire le retrait global et améliorer la stabilité.
Étendre à d’autres variétés, évaluer les paramètres de différentes variétés et rendre les stratégies plus universelles.
La stratégie de régression linéaire inverse, qui intègre plusieurs indicateurs techniques et effectue une action inverse pour déterminer le moment où le prix inverse, est une stratégie de trading inverse efficace. La stratégie peut élargir davantage l’espace de profit grâce à l’optimisation des paramètres et au renforcement de la gestion des risques, avec un grand potentiel d’amélioration.
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Reverse Up/Down Strategy", currency=currency.USD, initial_capital=1000, pyramiding=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100,overlay=true)
//User Options
consecutiveBarsUp = input(title="Sell after how many bars up?", type=input.integer, minval=1, defval=1)
consecutiveBarsDown = input(title="Buy after how many bars down?", type=input.integer, minval=1, defval=1)
atrLength = input(title="ATR Length", type=input.integer, minval=1, defval=14)
atrMult = input(title="ATR Multiplier", type=input.float, minval=0.1, defval=2.33)
//ATR Channel
adjustedATR = sma(atr(atrLength),atrLength) * atrMult
longATR = low - adjustedATR
shortATR = high + adjustedATR
plot(shortATR, title="Short ATR", color=color.red)
plot(longATR, title="Long ATR", color=color.lime)
// This is the true linear regression slope rather than an approximation given by numerical differentiation
src = hlc3
len = input(defval=14, minval=1, title="Slope Length")
lrc = linreg(src, len, 0)
lrc1 = linreg(src, len,1)
lrs = (lrc-lrc1)
//Check if last candle was up or down
priceOpen = open
priceClose = close
longCondition = priceOpen > priceClose
shortCondition = priceOpen < priceClose
ups = 0.0
dns = 0.0
ups := shortCondition ? nz(ups[1]) + 1 : 0
dns := longCondition ? nz(dns[1]) + 1 : 0
if (shortCondition)
strategy.close("buy", qty_percent=100, comment="Close")
if (ups >= consecutiveBarsUp and lrs <= 0)
strategy.entry("sell", strategy.short, comment="Sell")
if (longCondition)
strategy.close("sell", qty_percent=100, comment="Close")
if (dns >= consecutiveBarsDown and lrs >= 0)
strategy.entry("buy", strategy.long, comment = "Buy")