123 Stratégie d'enveloppe de moyenne mobile inversée

Auteur:ChaoZhang est là., Date: 2023-10-20 16:05:43 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie 123 d'enveloppe moyenne mobile inverse est une stratégie de trading quantitative qui combine 123 techniques de trading inverse et indicateurs d'enveloppe moyenne mobile.

La logique de la stratégie

La stratégie se compose de deux parties:

La première partie est la stratégie d'inversion 123. Ses signaux de négociation proviennent de l'oscillateur KDJ. Plus précisément, si le prix de clôture est inférieur à la clôture précédente pendant deux jours de négociation consécutifs, et la ligne K lente de 9 jours est inférieure à 50, un signal d'achat est généré; si le prix de clôture est supérieur à la clôture précédente pendant deux jours de négociation consécutifs, et la ligne K rapide de 9 jours est supérieure à 50, un signal de vente est généré.

La deuxième partie est la stratégie d'enveloppe de moyenne mobile. Elle utilise des moyennes mobiles et des lignes d'enveloppe au-dessus et au-dessous des moyennes mobiles pour déterminer les tendances. Plus précisément, si le prix de clôture est supérieur à la bande supérieure, un signal d'achat est généré; si le prix de clôture est inférieur à la bande inférieure, un signal de vente est généré.

La stratégie combine les deux types de signaux de trading ci-dessus. Elle n'ouvrira de longues positions que lorsque les renversements 123 et les enveloppes moyennes mobiles donnent tous deux des signaux d'achat; elle n'ouvrira de courtes positions que lorsque les deux donnent des signaux de vente. Cela filtre certains signaux invalides et réduit la fréquence des transactions tout en améliorant la rentabilité.

Analyse des avantages

  • Combine l'inversion et la tendance pour améliorer la rentabilité

    La stratégie de renversement 123 excelle dans la capture des opportunités de renversement près des niveaux de support et de résistance clés.

  • Le double filtre réduit la fréquence des transactions

    Les transactions ne sont effectuées que lorsque les deux indicateurs donnent des signaux, ce qui évite l'interférence de signaux non valides excessifs provenant d'un seul indicateur et réduit ainsi la fréquence et les coûts des transactions.

  • Les paramètres personnalisables offrent une flexibilité

    Les paramètres réglables permettent aux utilisateurs d'adapter la stratégie aux conditions du marché et aux préférences personnelles pour une meilleure adaptabilité.

  • Les échanges unilatéraux simplifient les opérations

    La stratégie ne va que long ou court, sans positions inverses, ce qui simplifie la logique et réduit les risques d'être fouetté.

Analyse des risques

  • Des retours en arrière dans des tendances persistantes

    La stratégie repose principalement sur des retours en arrière pour les bénéfices.

  • L'optimisation des paramètres est difficile

    Les multiples paramètres réglables posent des problèmes d'optimisation.

  • Un chiffre d'affaires élevé augmente les risques commerciaux

    Les changements fréquents de position permettent de réaliser de petits bénéfices, mais ils augmentent également les coûts et les risques liés à la survente.

  • Aucune limite de prélèvement

    L'absence d'un stop loss signifie qu'il n'y a pas de limite au tirage maximum.

Directions d'optimisation

  • Ajouter le stop loss

    Mettre en œuvre un stop loss en mouvement ou en retard pour limiter les retraits.

  • Optimiser les paramètres

    Les tests arrière et avant permettent de trouver les paramètres optimaux pour une plus grande stabilité.

  • Ajouter des filtres de signal

    L'ajout de filtres tels que MACD et Bollinger Bands peut valider les signaux et améliorer encore la qualité tout en réduisant les transactions indésirables.

  • Réduire la fréquence des échanges

    L'assouplissement modéré des conditions d'inversion et l'ajustement des paramètres de la moyenne mobile en fonction d'un chiffre d'affaires inférieur peuvent réduire les coûts et les risques.

Conclusion

La stratégie d'enveloppe moyenne mobile inverse 123 combine les forces du trading inverse et du suivi de tendance pour une surperformance constante ajustée au risque. Des optimisations supplémentaires peuvent améliorer la robustesse des paramètres pour de meilleurs résultats.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/03/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
// Moving Average Envelopes are percentage-based envelopes set above and 
// below a moving average. The moving average, which forms the base for 
// this indicator, can be a simple or exponential moving average. Each 
// envelope is then set the same percentage above or below the moving average. 
// This creates parallel bands that follow price action. With a moving average 
// as the base, Moving Average Envelopes can be used as a trend following indicator. 
// However, this indicator is not limited to just trend following. The envelopes 
// can also be used to identify overbought and oversold levels when the trend is 
// relatively flat. 
//
// 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


MAE(Length,PercentShift) =>
    pos = 0.0
    xSMA = sma(close, Length)
    xHighBand = xSMA + (xSMA * PercentShift / 100)
    xLowBand = xSMA - (xSMA * PercentShift / 100)
    pos := iff(close > xHighBand, 1,
             iff(close <xLowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Moving Average Envelopes", 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, "---- MA Envelope ----")
LengthMA = input(18, minval=1)
PercentShift = input(0.2, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMAE = MAE(LengthMA,PercentShift)
pos = iff(posReversal123 == 1 and posMAE == 1 , 1,
	   iff(posReversal123 == -1 and posMAE == -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