Stratégie de négociation de renversement de l'indice des canaux de produits de base

Auteur:ChaoZhang est là., Date: 2024-01-29 16:18:35 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie identifie les caractéristiques cycliques et saisonnières du marché sur la base de l'indice des canaux de produits de base (ICC) pour détecter le début et la fin des cycles.

La logique de la stratégie

La valeur de l'indice de canal de marchandises (CCI) montre comment l'instrument est négocié par rapport à son prix moyen. Lorsque la valeur du CCI est élevée, cela signifie que les prix sont plus élevés que le prix moyen. Lorsque la valeur du CCI est faible, cela signifie que les prix sont inférieurs au prix moyen. La valeur du CCI ne tombe généralement pas en dehors de la plage de -300 à 300.

Cette stratégie utilise l'indicateur CCI de longueur 10 et ses moyennes mobiles simples de longueur 10 et 20.

Analyse des avantages

  • L'indicateur CCI peut identifier efficacement les caractéristiques cycliques et les points d'inflexion
  • Filtré par des moyennes mobiles doubles pour réduire les faux signaux
  • Permet de sélectionner la direction longue ou courte pour différents environnements de marché
  • Risques contrôlables avec des niveaux clairs de stop loss

Analyse des risques

  • Le CCI peut ne pas fonctionner correctement pour les actions présentant de fortes fluctuations de prix
  • Les moyennes mobiles sont en retard et peuvent manquer des points tournants
  • Aucune prise en compte des éléments fondamentaux, incapable de juger si le prix est sous-évalué ou surévalué
  • Le stop loss peut être brisé dans des délais plus longs

L'optimisation peut être effectuée en ajustant les paramètres CCI ou les périodes moyennes mobiles, ou en ajoutant d'autres indicateurs techniques pour juger des fondamentaux.

Directions d'optimisation

  • Optimiser les paramètres de l'ICC pour différents cycles et volatilité
  • Optimiser les périodes moyennes mobiles pour équilibrer le retard et le bruit
  • Ajoutez des indicateurs comme le volume pour juger de la vraie rupture
  • Déterminer l'évolution générale dans des délais plus longs

Résumé

Cette stratégie identifie les tendances à court terme en utilisant l'ICC et les moyennes mobiles doubles pour juger des caractéristiques cycliques. Ses avantages sont des règles simples et claires, un ajustement flexible des paramètres et des risques contrôlables.


/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/11/2016
// The Commodity Channel Index (CCI) is best used with markets that display cyclical or 
// seasonal characteristics, and is formulated to detect the beginning and ending of these 
// cycles by incorporating a moving average together with a divisor that reflects both possible 
// and actual trading ranges. The final index measures the deviation from normal, which indicates 
// major changes in market trend.
// To put it simply, the Commodity Channel Index (CCI) value shows how the instrument is trading 
// relative to its mean (average) price. When the CCI value is high, it means that the prices are 
// high compared to the average price; when the CCI value is down, it means that the prices are low 
// compared to the average price. The CCI value usually does not fall outside the -300 to 300 range 
// and, in fact, is usually in the -100 to 100 range.
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="CCI Strategy Reversed Backtest", shorttitle="CCI Strategy")
FastMA = input(10, minval=1)
SlowMA = input(20, minval=1)
reverse = input(true, title="Trade reverse")
hline(0, color=purple)
xCCI = cci(close, 10)
xSMA = sma(xCCI,SlowMA)
xFMA = sma(xCCI,FastMA)
pos = iff(xSMA < xFMA , 1,
	   iff(xSMA > xFMA, -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(pos == -1 ? red: pos == 1 ? green : blue)
plot(xSMA, color=red, title="CCI MA Slow")
plot(xFMA, color=blue, title="CCI MA FAST")


Plus de