Stratégie de trading pondérée EMA avec inversion de combinaison à double optimisation


Date de création: 2023-12-07 16:39:50 Dernière modification: 2023-12-07 16:39:50
Copier: 0 Nombre de clics: 579
1
Suivre
1619
Abonnés

Stratégie de trading pondérée EMA avec inversion de combinaison à double optimisation

Aperçu

Cette stratégie est une stratégie de négociation en double optimisation combinant les deux types de stratégies, la stratégie de rétrogradation et la stratégie pondérée par l’EMA, pour produire un signal de négociation plus fiable en déterminant si les signaux des deux stratégies sont cohérents.

Principe de stratégie

La partie inverse utilise la stratégie de 123 inversions. Cette stratégie juge la relation entre les prix de clôture des deux jours précédents et produit un signal avec une combinaison d’indicateurs aléatoires. Les règles spécifiques sont les suivantes:

  • Le prix de clôture d’aujourd’hui est supérieur à celui d’hier et le prix de clôture d’hier est inférieur à celui d’avant-hier; en même temps, lorsque la courbe de ralentissement aléatoire du 9 est inférieure à 50, faites plus;
  • Le prix de clôture d’aujourd’hui est inférieur à celui d’hier et le prix de clôture d’hier est supérieur à celui d’avant-hier; en même temps, la ligne rapide aléatoire du 9 est supérieure à 50 et la position est vide.

La partie pondérée de l’EMA utilise les moyennes mobiles de l’indice et la pondération de la quantité de transactions. La formule de calcul est la suivante:

xMAVolPrice = ema(volume * close, Length)
xMAVol = ema(volume, Length)  
nRes = xMAVolPrice / xMAVol

La règle de négociation est la suivante: lorsque l’indicateur nRes est inférieur ou supérieur au prix de clôture d’hier, faire plus ou moins.

Enfin, la stratégie juge si les signaux des deux parties sont cohérents, ce qui produit un signal de transaction réel.

Analyse des avantages

La stratégie combine deux types de stratégies différentes qui peuvent se vérifier mutuellement, améliorant la fiabilité du signal et réduisant les faux signaux. Dans le même temps, la partie inverse peut capturer les points de basculement et la partie pondérée EMA peut suivre la tendance, les deux pouvant atteindre des avantages complémentaires.

Analyse des risques

Cette stratégie présente un certain retard dans le temps et permet de manquer des opportunités de négociation sur des lignes courtes. De plus, l’EMA pondérée sur les fluctuations des prix n’a pas été très efficace sur le marché. De plus, la fiabilité des signaux de reprise doit être vérifiée.

Les paramètres peuvent être raccourcis de manière appropriée, accélérant la vitesse de réaction. Ajout d’un stop-loss pour contrôler le risque. Introduction de plus de facteurs pour vérifier le signal de retour.

Direction d’optimisation

  1. Testez plus de combinaisons de facteurs de retournement pour trouver le paramètre optimal.
  2. Essayez différents types de méthodes de pondération EMA.
  3. Il est possible d’ajouter un stop loss et de suivre le stop loss.
  4. Optimiser les paramètres pour une réaction plus rapide.

Résumer

Cette stratégie intègre les avantages de deux types de stratégies différentes, améliore la qualité du signal et surmonte dans une certaine mesure les inconvénients d’une seule stratégie. Cependant, il existe également un certain retard qui nécessite une optimisation supplémentaire.

Code source de la stratégie
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/10/2019
// 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 related article is copyrighted material from Stocks & Commodities 2009 Oct 
//
// 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

fFilter(xSeriesSum, xSeriesV, Filter) =>
    iff(xSeriesV > Filter, xSeriesSum, 0)

EMA_VW(Length) =>
    pos = 0.0
    xMAVolPrice = ema(volume * close, Length)
    xMAVol = ema(volume, Length)
    nRes = xMAVolPrice / xMAVol
    pos := iff(nRes < close[1], 1,
             iff(nRes > close[1], -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & EMA & Volume Weighting", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthEMA_VM = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA_VW = EMA_VW(LengthEMA_VM)
pos = iff(posReversal123 == 1 and posEMA_VW == 1 , 1,
	   iff(posReversal123 == -1 and posEMA_VW == -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 )