Stratégie quantitative de renversement de double opportunité


Date de création: 2023-11-14 13:42:47 Dernière modification: 2023-11-14 13:42:47
Copier: 0 Nombre de clics: 676
1
Suivre
1617
Abonnés

Stratégie quantitative de renversement de double opportunité

Aperçu

La stratégie de double opportunité est une stratégie combinant le 123 revers et le RSI stochastique. La stratégie détermine d’abord si le prix a été inversé, puis confirme à nouveau le signal de revers avec l’indicateur RSI stochastique.

Principe de stratégie

La stratégie est composée de deux volets:

  1. 123 retour en arrière

Cette section utilise la forme 123 pour juger de l’inversion des prix. La logique est la suivante:

  • Si le prix de clôture est inférieur au prix de clôture d’hier et que le prix de clôture actuel est supérieur au prix de clôture d’hier et que le Slow Stochastic du 9 est inférieur à 50, faites plus

  • Si le prix de clôture est supérieur au prix de clôture d’hier et que le prix de clôture actuel est inférieur au prix de clôture d’hier, et que le Fast Stochastic du 9 est supérieur à 50, un short est fait

Il est donc possible de détecter les premiers signes d’une inversion des prix.

  1. Stochastic RSI

Cette section analyse à nouveau le RSI à l’aide de l’indicateur stochastique pour juger de la confirmation inverse:

  • Calculer le RSI avec une longueur de 14.

  • Appliquer l’analyse stochastique au RSI, longueur 14, pour obtenir une valeur K

  • Calculer la valeur de K pour la SMA de 3 jours D

  • Si la valeur de K est supérieure à 80, vous verrez plus, si la valeur de K est inférieure à 20, vous verrez moins.

Les positions ne sont ouvertes que lorsque les deux stratégies sont activées simultanément.

Analyse des avantages

Le principal avantage de cette stratégie est l’utilisation d’une méthode de double confirmation, qui permet de filtrer efficacement les signaux de fausse alerte et d’améliorer la stabilité. Les avantages spécifiques sont les suivants:

  1. 123 inversion permet de détecter plus tôt la tendance à la reprise des prix

  2. Le RSI stochastique fournit une confirmation de retournement pour éviter de manquer le point de retournement

  3. La combinaison de ces deux facteurs peut améliorer les chances de victoire et réduire la probabilité de faux rapports.

  4. Optimisation par combinaison de paramètres permettant d’ajuster les paramètres pour différents marchés

  5. L’implémentation programmatique est simple, claire et facile à appliquer sur le disque

Analyse des risques

Cette stratégie comporte également des risques à prendre en compte:

  1. Risque d’échec du renversement. Le marché peut avoir un faux renversement qui entraîne des pertes.

  2. Risques liés à l’optimisation des paramètres. Des combinaisons inappropriées de paramètres peuvent entraîner une mauvaise efficacité de la stratégie.

  3. Risque d’optimisation excessive. Paramètres sur-optimisés pour les données historiques, les effets futurs ne peuvent pas être reproduits.

  4. Risque d’une fréquence de transaction trop élevée. Les doubles signaux peuvent augmenter la fréquence de transaction, entraînant une augmentation des coûts de glissement.

  5. Risque de mise en œuvre du code. La présence de failles dans le code peut entraîner des anomalies dans l’effet du disque dur.

La réponse:

  1. Adapter la taille de la position de manière appropriée pour contrôler les pertes ponctuelles.

  2. L’optimisation des paramètres est effectuée par la méthode walk-forward.

  3. L’accent est mis sur la stabilité des paramètres et non sur la recherche de gains élevés.

  4. Adapter les conditions d’ouverture des positions pour réduire la fréquence des transactions.

  5. Le code est testé avec soin pour s’assurer que la logique est correcte.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Paramètres d’optimisation. Vous pouvez modifier des paramètres tels que Stochastic pour optimiser pour un marché spécifique.

  2. Optimiser les conditions d’ouverture des positions. Vous pouvez ajouter d’autres facteurs de jugement pour éviter le renversement impulsif.

  3. Optimisation des mécanismes d’arrêt des pertes. Vous pouvez définir des modes d’arrêt de mouvement, d’arrêt de temps, etc.

  4. Réduction de la fréquence des transactions. Les conditions de filtrage des transactions peuvent être ajoutées pour réduire la fréquence des transactions.

  5. Augmentation de la gestion des positions. Adaptation de la taille des positions en fonction des conditions du marché.

  6. Prendre en compte les frais. Adapter les paramètres de la stratégie en fonction des frais réels.

Résumer

La stratégie de quantification de la rétro-inversion à double chance est globalement une stratégie de rétro-inversion à ligne courte stable et pratique. Elle possède à la fois la sensibilité de la capture de la rétro-inversion et la stabilité du double filtrage.

Code source de la stratégie
/*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 )