Stratégie de combinaison d'indicateurs multiples


Date de création: 2023-10-07 10:25:40 Dernière modification: 2023-10-07 10:25:40
Copier: 3 Nombre de clics: 669
1
Suivre
1617
Abonnés

Aperçu

La stratégie est composée de deux parties: la première utilise la stratégie 123 inversion et la deuxième utilise l’indicateur TEMA. Les signaux de négociation produits par les deux parties sont combinés pour filtrer les signaux erronés et améliorer la qualité du signal.

Principe de stratégie

La première partie utilise la stratégie de 123 inversion. Cette stratégie est basée sur l’indicateur stochastique, qui génère un signal d’achat ou de vente lorsque le cours de l’action est inversé (par exemple, lorsque le cours de la clôture de deux jours est inversé par une chute) et que l’indicateur stochastique affiche un signal de surachat ou de survente.

Plus précisément, si le prix de clôture est supérieur au prix de clôture du jour précédent et que la ligne stochastique est inférieure à 50, un signal d’achat est généré. Si le prix de clôture est inférieur au prix de clôture du jour précédent et que la ligne stochastique est supérieure à 50, un signal de vente est généré.

La deuxième partie utilise l’indicateur TEMA. TEMA représente une moyenne mobile à triple indice, calculée comme suit:

TEMA = 3*EMA(CLOSE, N) - 3*EMA(EMA(CLOSE, N), N) + EMA(EMA(EMA(CLOSE, N), N), N)

N est la longueur des paramètres. Si le prix de clôture est supérieur à la valeur de l’indicateur TEMA, un signal d’achat est généré. Si le prix de clôture est inférieur à la valeur de l’indicateur TEMA, un signal de vente est généré.

Enfin, un signal combinant deux indicateurs. Un signal de transaction réel n’est généré que lorsque les deux indicateurs produisent un signal cohérent (à la fois acheté et vendu).

Avantages stratégiques

  • En combinant plusieurs indicateurs, il est possible de filtrer certains signaux erronés et d’améliorer la qualité du signal.
  • 123 La stratégie de retournement est basée sur le retournement réel du cours de l’action, afin d’éviter les achats à la traîne et les ventes de panique.
  • TEMA réduit le bruit et produit un signal plus fiable grâce à un multifonctionnement.
  • La combinaison de deux types d’indicateurs différents assure une plus grande fiabilité des signaux de trading.

Risque et optimisation

  • La stratégie de revers présente en elle-même le risque de manquer une grande tendance à la hausse dans un marché haussier. Les paramètres de la stratégie de revers peuvent être adaptés de manière appropriée pour réduire la probabilité de manquer.
  • Comme TEMA est un indicateur de suivi de tendance, il est possible de générer de faux signaux. Les paramètres de TEMA peuvent être ajustés de manière appropriée pour optimiser la sensibilité de l’indicateur.
  • Les deux types d’indicateurs peuvent également entraîner des signaux trop rares si les paramètres sont mal choisis. Il est nécessaire d’ajuster les paramètres pour atteindre la fréquence de négociation appropriée.
  • On peut envisager d’ajouter des filtres et de désactiver les stratégies dans certains environnements de marché pour contrôler les risques.

Résumer

Cette stratégie améliore la qualité du signal de négociation grâce à une combinaison raisonnable de plusieurs indicateurs et est une stratégie de négociation quantitative très efficace. Cependant, il est nécessaire de surveiller le contrôle des risques, d’ajuster les paramètres de manière appropriée ou d’ajouter d’autres composants pour optimiser la stratégie afin qu’elle puisse fonctionner de manière stable sur différents marchés.

Code source de la stratégie
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-06 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/11/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 study plots the TEMA1 indicator. TEMA1 ia s triple MA (Moving Average),
// and is calculated as 3*MA - (3*MA(MA)) + (MA(MA(MA)))
//
// 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


TEMA(Length) =>
    pos = 0.0
    xPrice = close
    xEMA1 = ema(xPrice, Length)
    xEMA2 = ema(xEMA1, Length)
    xEMA3 = ema(xEMA2, Length)
    nRes = 3 * xEMA1 - 3 * xEMA2 + xEMA3
    pos := iff(close > nRes, 1,
             iff(close < nRes, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & TEMA1", 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, "---- TEMA1 ----")
LengthTEMA = input(26, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posT3A = TEMA(LengthTEMA)
pos = iff(posReversal123 == 1 and posT3A == 1 , 1,
	   iff(posReversal123 == -1 and posT3A == -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 )