La stratégie quantitative d'inertie inversion de facteur double est une stratégie de trading quantitative qui combine des signaux d'inversion de prix et des signaux d'inertie du marché.
La stratégie est composée de deux parties principales:
La partie inversion de prix adopte l'idée proposée par Ulf Jensen dans son livre, en particulier: lorsque le prix de clôture augmente continuellement pendant 2 jours et que le Stochastique Lent de 9 jours est inférieur à 50, passez long; lorsque le prix de clôture tombe continuellement pendant 2 jours et que le Stochastique Rapide de 9 jours est supérieur à 50, passez court.
La partie de l'inertie du marché utilise l'indice de volatilité relative (RVI). La valeur de cet indicateur oscille entre 0 et 100. Au-dessus de 50 indique que la tendance à long terme du marché est à la hausse; en dessous de 50 indique que la tendance à long terme du marché est à la baisse.
En résumé, cette stratégie intègre des signaux d'inversion de prix et des signaux d'inertie du marché pour déterminer définitivement la direction actuelle du marché.
Le plus grand avantage de cette stratégie est qu'elle combine deux idées commerciales majeures
En outre, le mécanisme à double facteur peut améliorer la qualité du signal. Optimiser les paramètres stochastiques et lisser le RVI offre également une marge d'optimisation de la stratégie.
Les principaux risques auxquels cette stratégie est confrontée sont les suivants:
Le risque que les signaux d'inversion soient mal identifiés.
Le risque que les signaux d'inertie génèrent des signaux incorrects.
Le risque de manquer des opportunités de négociation en raison d'un mauvais alignement du timing des signaux à double facteur.
En outre, les stratégies d'inversion sont confrontées à un risque accru de perte sur les marchés en tendance.
La stratégie peut être optimisée dans les aspects suivants:
Optimiser les paramètres de l'indicateur stochastique pour améliorer la qualité et la rapidité d'identification des signaux de renversement.
Optimiser le paramètre de lissage de l'indicateur RVI pour augmenter la précision du jugement de l'inertie.
Essayez différentes périodes de rétention pour déterminer le cycle de rétention optimal.
Incorporer des mécanismes de stop-loss. Re-tester différents points de stop-loss pour trouver la position optimale de stop-loss.
Considérez l'incorporation d'autres signaux facteurs tels que les aberrations du volume de négociation pour former des stratégies axées sur plusieurs facteurs.
La stratégie de trading de l'inertie quantitative à double facteur d'inversion prend en compte de manière exhaustive les facteurs d'inversion et de tendance, en utilisant l'indicateur stochastique et l'indicateur RVI pour générer des signaux de trading. La stratégie présente des avantages tels que la conduite à deux facteurs, la capture des opportunités d'inversion et le filtrage des signaux. Elle peut être améliorée grâce à une optimisation multi-facettes des paramètres.
/*backtest start: 2023-12-12 00:00:00 end: 2024-01-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 27/11/2020 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // The inertia indicator measures the market, stock or currency pair momentum and // trend by measuring the security smoothed RVI (Relative Volatility Index). // The RVI is a technical indicator that estimates the general direction of the // volatility of an asset. // The inertia indicator returns a value that is comprised between 0 and 100. // Positive inertia occurs when the indicator value is higher than 50. As long as // the inertia value is above 50, the long-term trend of the security is up. The inertia // is negative when its value is lower than 50, in this case the long-term trend is // down and should stay down if the inertia stays below 50. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos Inertia(Period, Smooth) => pos = 0.0 nU = 0.0 nD = 0.0 xPrice = close StdDev = stdev(xPrice, Period) d = iff(close > close[1], 0, StdDev) u = iff(close > close[1], StdDev, 0) nU := (13 * nz(nU[1],0) + u) / 14 nD := (13 * nz(nD[1],0) + d) / 14 nRVI = 100 * nU / (nU + nD) nRes = ema(nRVI, Smooth) pos :=iff(nRes > 50, 1, iff(nRes < 50, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Inertia Strategy", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Period = input(10, minval=1) Smooth = input(14, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posInertia = Inertia(Period, Smooth) pos = iff(posReversal123 == 1 and posInertia == 1 , 1, iff(posReversal123 == -1 and posInertia == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )