L'oscillateur stochastique combiné et la stratégie d'inversion 123

Auteur:ChaoZhang est là., Date: 2023-10-26 17h27
Les étiquettes:

img

Résumé

Cette stratégie combine le modèle de renversement 123 et l'oscillateur stochastique pour générer des signaux d'achat lorsque le prix montre un renversement vers le bas et que l'oscillateur stochastique est également renversé depuis le bas.

La logique de la stratégie

  1. 123 Stratégie d'inversion

    • Le signal d'achat est généré si le prix de clôture est supérieur au prix de clôture des 2 jours précédents et que la ligne rapide stochastique de 9 jours est inférieure à la ligne lente et inférieure à 50.

    • Le signal de vente est généré si le prix de clôture est inférieur au prix de clôture des 2 jours précédents et que la ligne rapide stochastique de 9 jours est au-dessus de la ligne lente et au-dessus de 50.

  2. Stratégie de l'oscillateur stochastique

    • Le signal d'achat est généré si la ligne stochastique %K est franchie au-dessus de la bande supérieure (défaut 20).

    • Le signal de vente est généré si la ligne stochastique %K est traversée en dessous de la bande inférieure (par défaut 80).

  3. Confirmation à deux reprises

    Le signal d'achat n'est généré que lorsque les deux stratégies 123 inversion et stochastique donnent un signal d'achat. Le signal de vente est similaire. Cette double confirmation peut filtrer les faux signaux et améliorer la précision.

Les avantages

  1. La double confirmation filtre le bruit et améliore la précision du signal.

  2. L'inversion 123 capte les inversions inférieures et supérieures, le stochastique évite les fausses ruptures.

  3. Le stochastique identifie efficacement le surachat et le survente, parfait match avec l'inversion 123.

  4. Haute flexibilité d'optimisation avec réglage des paramètres.

  5. Une logique simple, facile à comprendre, bonne pour les débutants.

Les risques

  1. La double confirmation peut faire perdre certaines opportunités et réduire la fréquence des transactions.

  2. Le stochastique peut générer de faux signaux, il faut l'examiner attentivement.

  3. Un réglage approprié des paramètres est nécessaire, des réglages incorrects affectent les performances.

  4. Ne fonctionne que pour les marchés avec un modèle d'inversion, pas pour les tendances persistantes.

  5. Suivez strictement les signaux stratégiques, évitez les préjugés de votre propre jugement.

Solutions aux risques: optimiser les paramètres, suivre strictement les signaux, ajuster les conditions du marché applicables.

Directions d'optimisation

  1. Optimisez les paramètres stochastiques pour plus de stabilité.

  2. Ajoutez une stratégie de stop-loss.

  3. Ajoutez des filtres comme la confirmation du volume pour améliorer la qualité du signal.

  4. Testez des combinaisons de différentes stratégies d'inversion et de stochastique.

  5. Utiliser l'apprentissage automatique pour former et optimiser les paramètres.

  6. Appliquer une stratégie sur différents marchés pour tester la robustesse.

  7. Explorez les combinaisons avec d'autres indicateurs.

Conclusion

Cette stratégie combine l'oscillateur stochastique et le modèle d'inversion 123, qui capte efficacement les opportunités d'inversion inférieure. Par rapport à un seul indicateur, la combinaison multi-indicateur améliore considérablement la qualité du signal et le taux de gain. Bien qu'il y ait encore place à l'amélioration, la logique globale est simple et facile à saisir, ce qui la rend idéale pour la pratique de trading en direct des débutants.


/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/07/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 back testing strategy generates a long trade at the Open of the following 
// bar when the %K line crosses up UpBand line.
// It generates a short trade at the Open of the following bar when the %K line 
// crosses down DownBand line.
//
// 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


Stochastic(Length,DLength,UpBand,DownBand) =>
    pos = 0.0
    vFast = stoch(close, high, low, Length)
    vSlow = sma(vFast, DLength)
    pos := iff(vFast > UpBand, 1,
	         iff(vFast < DownBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic", 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 ----")
LengthS = input(7, minval=1)
DLengthS = input(3, minval=1)
UpBand = input(20, minval=1)
DownBand = input(80, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posStochastic = Stochastic(LengthS,DLengthS,UpBand,DownBand)
pos = iff(posReversal123 == 1 and posStochastic == 1 , 1,
	   iff(posReversal123 == -1 and posStochastic == -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 )

Plus de