Stratégie combinée d'indicateurs d'oscillateur de relance de retournement


Date de création: 2023-11-02 16:43:41 Dernière modification: 2023-11-02 16:43:41
Copier: 1 Nombre de clics: 724
1
Suivre
1617
Abonnés

Stratégie combinée d’indicateurs d’oscillateur de relance de retournement

Aperçu

Cette stratégie est une stratégie combinée qui utilise une stratégie de revers et une stratégie de relance de l’indicateur d’oscillation afin d’obtenir des signaux de trading plus fiables.

Principe de stratégie

La stratégie est composée de deux volets:

  1. Stratégie de retournement

La stratégie inverse est tirée de la page 183 du livre Comment je double mon capital sur le marché à terme de Ulf Jensen. La stratégie est du type inverse, et la logique est la suivante:

  • Il est préférable de faire une entrée supplémentaire lorsque le prix de clôture est supérieur au prix de clôture du jour précédent pendant deux jours consécutifs et lorsque l’indicateur de Stoch ralenti est inférieur à 50 le 9e jour.

  • L’entrée en courte durée a lieu lorsque le cours de clôture est inférieur au cours de clôture de la journée précédente pendant deux jours consécutifs et lorsque l’indicateur Stoch rapide est supérieur à 50 le 9e jour.

  1. Une stratégie de relance des indicateurs de l’oscillation

L’indicateur de résurrection de l’oscillation calcule la différence des plus petites fluctuations du marché, dont la valeur oscille généralement entre -1 et 1. Plus la valeur de l’indicateur est élevée, plus la tendance est forte, qu’il s’agisse d’une tendance à la hausse ou à la baisse.

Lorsque l’indicateur atteint une valeur plus élevée, faites plus; lorsque l’indicateur atteint une valeur plus basse, faites moins. L’indicateur est adapté pour le day trading.

Enfin, lorsque deux signaux stratégiques sont synchronisés, c’est-à-dire que les transactions sont effectuées dans des directions correspondantes.

Analyse des avantages

  • La combinaison de stratégies de retournement et de stratégies de tendance permet de filtrer les faux signaux et d’améliorer la fiabilité des signaux de négociation.

  • Les stratégies de retournement permettent de capturer des occasions de retournement à court terme; les stratégies de réveil d’indicateurs d’oscillation permettent de capturer des tendances à moyen et long terme.

  • Les paramètres de l’indicateur Stoch sont optimisés pour filtrer efficacement les faux signaux des marchés sur le vif.

  • L’indicateur d’oscillation de la résurrection est plus sensible aux fluctuations du marché et permet de détecter les changements de tendance à l’avance.

Risques et solutions

  • Les stratégies de retournement sont facilement englouties par les retournements de tendances massives et peuvent être adaptées en fonction des paramètres ou utilisées en combinaison avec des stratégies de tendance.

  • Les stratégies d’indicateur sont susceptibles de générer trop de signaux de transaction, peuvent être ajustées en fonction des paramètres ou utilisées en combinaison avec d’autres indicateurs de filtrage.

  • Les deux signaux stratégiques peuvent entrer en conflit, et les paramètres peuvent être ajustés en fonction des données de retrospection historique pour optimiser la combinaison des deux.

  • Il est possible d’introduire des stratégies de stop-loss pour contrôler les pertes individuelles.

Direction d’optimisation

  • Testez différentes combinaisons de paramètres d’inversion pour trouver le paramètre optimal.

  • Testez différents paramètres de l’indicateur de résurrection et trouvez le paramètre optimal.

  • Essayez différentes méthodes d’optimisation des paramètres de l’indicateur, telles que les algorithmes génétiques, les forêts aléatoires, etc.

  • L’ajout d’autres indicateurs auxiliaires permettrait de filtrer davantage les signaux.

  • L’ajout de modèles d’apprentissage automatique améliore la précision du signal.

  • La mise en place de mécanismes de gestion des risques tels que le stop loss, la gestion des positions, etc.

Résumer

Cette stratégie, combinant une stratégie de revers et une stratégie d’indicateur d’oscillation de résurrection, exploitant les avantages de deux types de stratégies différentes, permet d’améliorer la qualité des signaux de négociation et de mieux fonctionner dans la rétroanalyse. En optimisant davantage les paramètres, en ajoutant d’autres indicateurs et en gérant les risques, la stratégie est susceptible d’obtenir de meilleurs résultats sur le terrain.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/10/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 value of Fractal Chaos Oscillator is calculated as the difference between 
// the most subtle movements of the market. In general, its value moves between 
// -1.000 and 1.000. The higher the value of the Fractal Chaos Oscillator, the 
// more one can say that it follows a certain trend – an increase in prices trend, 
// or a decrease in prices trend.
//
//   Being an indicator expressed in a numeric value, traders say that this is an 
// indicator that puts a value on the trendiness of the markets. When the FCO reaches 
// a high value, they initiate the “buy” operation, contrarily when the FCO reaches a 
// low value, they signal the “sell” action. This is an excellent indicator to use in 
// intra-day trading.
//
// 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

fractalUp(pattern) =>
    p = high[pattern+1]
    okl = 1
    okr = 1
    res = 0.0
	for i = pattern to 1
		okl := iff(high[i] < high[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(high[i] < high[i-1] and okr == 1, 1, 0)
	res := iff(okl == 1 and okr == 1, p, res[1])
    res

fractalDn(pattern) =>
    p = low[pattern+1]
    okl = 1
    okr = 1
    res = 0.0
	for i = pattern to 1
		okl := iff(low[i] > low[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(low[i] > low[i-1] and okr == 1, 1, 0)
	res := iff(okl == 1 and okr == 1, p, res[1])
    res

FCO(Pattern) =>
    pos = 0.0
    xUpper = fractalUp(Pattern) 
    xLower = fractalDn(Pattern)
    xRes = iff(xUpper != xUpper[1], 1, 
             iff(xLower != xLower[1], -1, 0))
    pos := iff(xRes == 1, 1,
             iff(xRes == -1, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Fractal Chaos Oscillator", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFCO = FCO(Pattern)
pos = iff(posReversal123 == 1 and posFCO == 1 , 1,
	   iff(posReversal123 == -1 and posFCO == -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 )