Stratégie de négociation de l'oscillateur fractal chaos

Auteur:ChaoZhang est là., Date: 2023-09-18 15:10:09 Je vous en prie.
Les étiquettes:

Résumé

Cette stratégie utilise l'indicateur Fractal Chaos Oscillator (FCO) pour déterminer la direction de la tendance du marché pour suivre la tendance. FCO compare les changements dans les hauts et les bas locaux pour juger du mouvement des prix, avec des valeurs comprises entre -1 et 1.

La logique de la stratégie

Identifiez les hauts et les bas locaux en recherchant des modèles de bougies spécifiques. Comparez les changements entre les groupes adjacents de hauts / bas pour calculer l'indicateur FCO. Par exemple, si le dernier groupe haut / bas diffère du groupe précédent, FCO est 1, ce qui indique que la force de la tendance haussière augmente. Déterminez la direction de la tendance en fonction de la valeur FCO - allez long sur les valeurs plus élevées et court sur les valeurs plus faibles.

Les avantages

  • Le FCO juge efficacement la direction de la tendance simplement
  • Pas besoin de paramètres complexes, facile à utiliser
  • Rentable pour les opérations intraday à court terme
  • Flexibilité pour aller long ou court selon les besoins

Les risques

  • Identification du modèle non entièrement précise, peut manquer des virages
  • Ne peut pas déterminer avec précision l'inversion de tendance, risque des pertes
  • La fréquence des opérations intraday augmente les coûts de transaction

Les risques peuvent être réduits par l'optimisation des paramètres et l'ajout d'indicateurs d'inversion.

Des possibilités d'amélioration

  • Testez différentes périodes pour identifier les modèles
  • Optimiser les seuils longs/courts de l'OFC
  • Ajouter des moyennes mobiles, etc. pour déterminer l'inversion de tendance
  • Test de robustesse sur différents produits

Conclusion

La stratégie FCO simplifie le jugement de la direction de la tendance pour le trading à court terme. La performance peut être améliorée par l'ajustement des paramètres.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/02/2018
//   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.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
fractalUp(pattern) =>
    p = high[pattern+1]
    okl = 1
    okr = 1
	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
	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

strategy(title="Fractal Chaos Oscillator", overlay = false)
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
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))) 
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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )           
plot(xRes, color=blue, title="FCO")

Plus de