Stratégie de suivi de la tendance inverse des moyennes mobiles doubles croisées

Auteur:ChaoZhang est là., Date: 2024-01-04 15h48:
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de combinaison qui combine trois stratégies différentes pour générer des signaux de trading. Premièrement, elle utilise la stratégie de modèle d'inversion 123, qui génère des signaux de trading lorsque les prix forment des modèles spécifiques. Deuxièmement, elle utilise la stratégie de croisement de moyenne mobile, qui juge la tendance en comparant les croisements entre les moyennes mobiles et les moyennes mobiles exponentielles. Enfin, cette stratégie permet également de choisir de négocier à l'envers. La combinaison de ces trois stratégies peut capturer les points d'inversion de tendance tout en filtrant certains signaux de trading bruyants.

La logique de la stratégie

123 Stratégie d'inversion du modèle

Cette stratégie est basée sur la méthode proposée dans le livre d'Ulf Jensen How I Tripled My Money in the Futures Market. La stratégie est basée sur le prix de clôture des actions et l'indicateur d'oscillateur stochastique.

Lorsque le prix de clôture est supérieur au prix de clôture précédent et également supérieur au prix de clôture il y a deux jours, alors que le Stochastique lent de 9 périodes est inférieur à 50, passez long. Lorsque le prix de clôture est inférieur au prix de clôture précédent et également inférieur au prix de clôture il y a deux jours, alors que le Stochastique rapide de 9 périodes est supérieur à 50, passez court.

Ainsi, il peut saisir les opportunités d'inversion lorsque les prix forment de nouveaux sommets ou de nouveaux bas de trois jours tout en se combinant avec les signaux de survente ou de surachat de l'indicateur stochastique.

Stratégie de croisement des moyennes mobiles

Cette stratégie utilise le croisement entre la moyenne mobile simple de la période de longueur MA et la moyenne mobile exponentielle de la période de longueurEMA pour générer des signaux de trading.

Lorsque la moyenne mobile exponentielle dépasse la moyenne mobile simple, passez long.

En outre, la moyenne mobile exponentielle est plus sensible aux changements de prix et peut émettre des signaux de trading plus tôt.

Commerce à contrepartie

Cette stratégie permet de choisir de négocier à l'envers. Si le trading inverse est sélectionné, les signaux longs deviennent des signaux courts, et vice versa. Cela peut être plus bénéfique pour certains traders qui croient fermement qu'il y a souvent des comportements trompeurs sur le marché.

Les avantages de la stratégie

Cette stratégie combinée hérite dans une certaine mesure des avantages de différentes stratégies individuelles, qui peuvent atténuer les risques d'une seule stratégie et augmenter les rendements.

Plus précisément, la stratégie de modèle d'inversion 123 peut capturer en temps opportun les virages lorsque les prix montrent des signes d'inversion; la stratégie de croisement des moyennes mobiles peut déterminer la direction de la tendance; permettre le trading inverse peut réduire la probabilité d'être piégé.

En général, cette stratégie est sensible, suit bien les tendances et peut être personnalisée pour s'adapter à différents environnements de marché.

Risques liés à la stratégie

Le risque le plus important de cette stratégie est que la stratégie de combinaison elle-même est assez compliquée, ce qui rend difficile la détermination des raisons de l'échec/du succès et défavorable à l'optimisation de la stratégie.

En outre, comme toute autre stratégie d'analyse technique, cette stratégie est également confrontée à des risques tels que le piège et l'échec du stop-loss. Plus précisément, elle est encline à générer de faux signaux lorsque les prix fluctuent fortement. De plus, les lignes de stop-loss ont tendance à être brisées dans une tendance persistante et violente.

Pour atténuer ces risques, nous pouvons ajuster de manière appropriée les paramètres pour rendre les indicateurs plus stables, assouplir raisonnablement les lignes de stop-loss ou utiliser des méthodes telles que le volume stop-loss.

Optimisation

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

  1. Ajoutez des conditions de filtrage telles que le volume des transactions et la volatilité pour filtrer les signaux non valides.

  2. Optimiser les paramètres pour trouver les meilleures combinaisons de paramètres.

  3. Essayez différents indicateurs croisés de moyenne mobile pour trouver ceux qui correspondent le mieux au marché actuel.

  4. Augmenter les modèles d'apprentissage automatique pour optimiser automatiquement les paramètres à l'aide de technologies d'IA.

Résumé

En tant que stratégie combinée, cette stratégie combine les avantages de diverses stratégies individuelles et peut effectivement suivre les inversions de tendance. Elle convient aux opérations à moyen et long terme. Avec une optimisation appropriée, une gestion des risques, etc., sa performance peut être considérablement améliorée. Elle mérite une recherche approfondie, une application et une amélioration par les praticiens du trading quantitatif.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/06/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 Moving Average Crossover trading strategy is possibly the most popular
// trading strategy in the world of trading. First of them were written in the
// middle of XX century, when commodities trading strategies became popular.
// This strategy is a good example of so-called traditional strategies. 
// Traditional strategies are always long or short. That means they are never 
// out of the market. The concept of having a strategy that is always long or 
// short may be scary, particularly in today’s market where you don’t know what 
// is going to happen as far as risk on any one market. But a lot of traders 
// believe that the concept is still valid, especially for those of traders who 
// do their own research or their own discretionary trading. 
// This version uses crossover of moving average and its exponential moving average.
//
// 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

MACross(LengthMA,LengthEMA) =>
    pos = 0
    xMA = sma(close, LengthMA)
    xEMA = ema(xMA, LengthEMA)
    pos := iff(xEMA < xMA , 1,
	       iff(xEMA > xMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & EMA & MA Crossover", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthMA = input(10, minval=1)
LengthEMA = input(10,minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMACross = MACross(LengthMA,LengthEMA)
pos = iff(posReversal123 == 1 and posMACross == 1 , 1,
	   iff(posReversal123 == -1 and posMACross == -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