La stratégie d'inversion de la CCI à 4 heures

Auteur:ChaoZhang est là., Date: 2023-10-13 15h29 et 05h
Les étiquettes:

Résumé

Il s'agit d'une stratégie de négociation inverse basée sur l'indicateur CCI. Elle ouvrira des transactions inversées lorsque l'indicateur CCI montre des niveaux de surachat ou de survente.

La logique de la stratégie

Premièrement, cette stratégie est basée sur l'indicateur CCI, dont la formule est:

Les taux d'intérêt de l'indicateur de change sont les taux d'intérêt de l'indicateur de change de l'indicateur de change.

Où? Prix typique = (plus haut + plus bas + plus bas) / 3 Moyenne mobile simple = Moyenne mobile du prix typique au cours des N derniers jours
Déviation type = racine carrée de la variance du prix typique au cours des N derniers jours

Cette stratégie utilise un indicateur CCI à 11 périodes et -150 est défini comme le niveau de survente et 150 comme le niveau de surachat.

À chaque fermeture de barre, l'indicateur CCI à 11 périodes sera vérifié. Si le CCI dépasse -150, un signal long est généré. Si le CCI dépasse 150, un signal court est généré.

Après réception du signal, l'ordre de marché sera utilisé pour ouvrir la position.

Analyse des avantages

  1. L'utilisation de l'indicateur CCI permet de saisir efficacement les opportunités d'inversion des prix
  2. Les paramètres CCI sont réglables pour optimisation
  3. L'objectif de profit fixe et le taux de stop loss contrôlent efficacement le risque
  4. Logie stratégique simple et claire, facile à comprendre et à mettre en œuvre

Analyse des risques

  1. L'indicateur CCI peut générer beaucoup de faux signaux, les signaux d'entrée peuvent ne pas être fiables
  • Solution: Optimiser les paramètres CCI, ajouter un filtre avec d'autres indicateurs
  1. L'objectif de profit fixe et le ratio de stop loss peuvent ne pas convenir à différents produits
  • Solution: ajouter une cible de profit dynamique et un stop loss
  1. La stratégie repose uniquement sur l'ICC, le risque d'inefficacité est élevé
  • Solution: combiner plusieurs indicateurs pour améliorer la robustesse
  1. Aucune contrepartie sur le coût de négociation, la performance en direct peut en souffrir.
  • Solution: ajouter un contrôle du glissement, réduire la fréquence de négociation

Directions d'optimisation

  1. Optimiser les paramètres CCI pour trouver de meilleures combinaisons de paramètres
  2. Ajouter d'autres indicateurs comme MACD, KDJ pour le filtrage du signal
  3. Développer un objectif de profit dynamique et un stop loss au lieu d'un ratio fixe
  4. Optimiser la stratégie pour réduire la fréquence des transactions, réduire l'impact des coûts de négociation
  5. Effectuer une optimisation de backtesting pour trouver la meilleure combinaison de paramètres pour le trading en direct

Résumé

La stratégie d'inversion CCI de 4 heures est une stratégie simple utilisant l'indicateur CCI pour le trading d'inversion. Elle présente l'avantage d'une logique claire et d'une mise en œuvre facile. Mais elle présente également des faiblesses telles que des signaux CCI peu fiables et un objectif de profit / stop loss inflexible. Des améliorations supplémentaires peuvent être apportées en optimisant les paramètres CCI, en ajoutant des indicateurs de filtre, en développant des sorties dynamiques, etc. Dans l'ensemble, cette stratégie fournit une idée basée sur CCI pour le trading quantitatif, mais nécessite une optimisation supplémentaire avant l'application en direct.


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

//@version=4
strategy("4H CCI Strategy", overlay=true)
length = input( 11 )
overSold = input( -150 )
overBought = input( +150 )
price1 = high
price2 = low
ucci = cci(price1, length)
dcci = cci(price2, length)
vcci = cci(ohlc4, 11)

resCustom = input(title="Timeframe", defval="15")
Length = input(16, minval=1)
xPrice = request.security(syminfo.tickerid, resCustom, hlc3)
xvnoise = abs(xPrice - xPrice[1])
nfastend = 0.666
nslowend = 0.0645
nsignal = abs(xPrice - xPrice[Length])
nnoise = sum(xvnoise, Length)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
nAMA = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
basis1 = nAMA
slope = change(basis1,1)

if (not na(vcci))
    if (crossover(dcci, overSold))
        strategy.entry("CCILE", strategy.long, comment="CCILE")
        strategy.exit("exit", "CCILE", profit = 0.01, loss = 0.005)
    if (crossunder(ucci, overBought))
        strategy.entry("CCISE", strategy.short, comment="CCISE")
        strategy.exit("exit", "CCISE", profit = 0.01, loss = 0.005)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Plus de