La stratégie de trading de renversement à double confirmation combine le modèle de renversement 123 avec l'indicateur RSI stochastique pour créer un système de renversement moyen robuste.
La stratégie est composée de deux éléments:
Il utilise le modèle 123 pour identifier les renversements potentiels.
Long si la clôture < clôture précédente et clôture actuelle > clôture précédente et Stochastique lent de 9 jours < 50
Cours court si close > close précédent et close actuel < close précédent et 9-day Fast Stochastic > 50
Cela fournit un signal précoce d'inversions de prix.
Il applique l'indicateur stochastique sur le RSI pour une confirmation supplémentaire:
Calculer le RSI avec la longueur 14
Calculer le stochastique du RSI, avec des longueurs 14, pour obtenir K
Prenez 3 jours SMA de K pour obtenir D
Si K est supérieur à 80, c'est long. Si K est inférieur à 20, c'est court.
Un échange n'est déclenché que si les deux parties sont d'accord.
L'avantage principal de cette stratégie est la double confirmation, qui améliore la précision et réduit les échecs.
L'inversion de la tendance permet de détecter rapidement l'inversion de tendance
Le RSI stochastique confirme le signal de renversement
La combinaison améliore le taux de victoire et réduit les faux signaux
Les paramètres peuvent être optimisés pour différents marchés
Mise en œuvre simple et propre pour le trading en direct
Quelques risques à prendre en considération pour cette stratégie:
Le risque d'échec de l'inversion peut entraîner des pertes.
Le risque d'optimisation des paramètres. Les mauvais paramètres conduisent à de mauvaises performances.
Une optimisation excessive des données historiques.
Risque de fréquence de négociation élevée. Plus de signaux peuvent augmenter les coûts.
Risque d'erreur de codage, erreurs dans la logique de mise en œuvre.
Des solutions possibles:
Utilisez une taille de position prudente pour limiter les pertes.
Utilisez des méthodes d'optimisation de marche vers l'avant.
Concentrez-vous sur la stabilité des paramètres, pas sur les rendements élevés.
Adaptez les conditions pour réduire la fréquence des échanges.
Testez la logique du code.
La stratégie peut être améliorée dans les domaines suivants:
Paramètres ajustés pour des marchés spécifiques.
Ajout de filtres pour éviter les retours hâtifs.
Incorporer des mécanismes de stop loss.
Réduire la fréquence des échanges avec des filtres supplémentaires.
Mise en œuvre de la dimensionnement dynamique de la position.
Ajustement des coûts de transaction.
La stratégie d'inversion à double confirmation est un système stable et pratique pour l'inversion moyenne à court terme. Elle équilibre la sensibilité à la capture des inversions et la précision de la double confirmation. Avec une optimisation et des modifications appropriées, elle peut compléter efficacement un portefeuille de stratégie quantitative.
/*backtest start: 2023-10-14 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/08/2021 // 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 // This strategy used to calculate the Stochastic RSI // // 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 SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand) => pos = 0.0 Source = close rsi1 = rsi(Source, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) d_cross_80 = cross(d,TopBand) pos := iff(k > TopBand, 1, iff(k < LowBand, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Stochastic RSI", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- Stochastic RSI ----") TopBand = input(80, step=0.01) LowBand = input(20, step=0.01) lengthRSI = input(14, minval=1) lengthStoch = input(14, minval=1) smoothK = input(3, minval=1) smoothD = input(3, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posSRSI = SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand) pos = iff(posReversal123 == 1 and posSRSI == 1 , 1, iff(posReversal123 == -1 and posSRSI == -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 )