La CCI suit une double tendance en termes de calendrier

Auteur:ChaoZhang est là., Date: 2023-11-24 10:53:07 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de suivi des tendances basée sur l'indicateur CCI. Elle génère des signaux de trading en surveillant le croisement entre deux CCI de délais différents. Elle détecte en particulier si un CCI de courte durée traverse un CCI de plus longue durée et détermine les positions longues ou courtes en fonction de la direction de la percée.

La logique de la stratégie

La logique de base de cette stratégie est la suivante:

  1. Définir deux CCI, ci1 comme 14 périodes, ci2 comme 56 périodes
  2. Quand le ci1 dépasse le ci2, allez long.
  3. Quand ci1 dépasse ci2, passez à court.
  4. Utiliser les valeurs de ci1 et ci2 pour déterminer les sorties après le déclenchement des signaux

Règles longues spécifiques:

  1. ci1 dépasse ci2, la CCI de courte durée dépasse la CCI de longue durée
  2. Condition d'arrêt des pertes: ci1 <-50 et taux de variation < 0 ou ci1 se décompose sous -100

Règles courtes spécifiques:

  1. ci1 dépasse ci2, la CCI de courte durée inférieure à la CCI de longue durée
  2. Condition d'arrêt des pertes: ci1 > 100 et taux de variation > 0 ou ci2 dépasse 100

Comme nous pouvons le voir, cette stratégie tire parti de la sensibilité des indices CCI à courte durée et de la stabilité des indices CCI à plus longue durée pour identifier et suivre les tendances.

Les avantages

Les avantages de cette stratégie:

  1. Identifier efficacement les tendances en utilisant la force de l'indicateur CCI
  2. La conception du double CCI filtre certains métiers du bruit
  3. La combinaison d'indices à court et à long terme permet de contrôler le risque tout en suivant les tendances
  4. Des règles de stratégie simples et claires, faciles à comprendre et à mettre en œuvre
  5. Les conditions de mise en place de l'interrupteur de perte et les périodes CCI sont hautement configurables.

Les risques

Il y a aussi des risques:

  1. La capacité faible d'identifier les marchés à fourchette et les marchés volatils à l'aide de l'ICC
  2. Une divergence peut se produire entre les indices de rentabilité à long et à court terme, ce qui entraîne des signaux erronés
  3. Un mauvais paramètre de stop-loss peut entraîner des pertes énormes.
  4. L'ajustement inapproprié des paramètres a également une incidence importante sur la rentabilité de la stratégie

Les solutions:

  1. Incorporer d'autres indicateurs pour déterminer l'état du marché, éviter les transactions en période de volatilité
  2. Ajouter des filtres pour éviter les erreurs de divergence CCI
  3. Optimiser et tester différents niveaux de stop loss
  4. Trouver des ensembles de paramètres appropriés par le backtesting et le réglage

Directions d'optimisation

Les domaines dans lesquels la stratégie peut être encore optimisée:

  1. Ajouter plus d'indicateurs pour construire un système de négociation plus systématique
  2. Différence de rentabilité entre les jours de semaine et les séances
  3. Rechercher de meilleurs paramètres en utilisant l'apprentissage automatique
  4. Paramètres de réglage pour différents produits
  5. Optimiser les règles d'entrée et de sortie

Conclusion

En conclusion, il s'agit d'une stratégie de suivi de tendance simple basée sur le croisement CCI. Elle peut identifier efficacement la direction de la tendance et suivre les tendances. Pendant ce temps, elle contrôle le risque via un stop loss. Cette stratégie est simple, pratique, flexible dans le réglage des paramètres et peut servir de stratégie de quantité de démarrage. Elle peut être améliorée en un système plus puissant via une optimisation et une combinaison ultérieures.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="my work",calc_on_order_fills=true,currency=currency.USD, default_qty_type=strategy.percent_of_equity,commission_type=strategy.commission.percent)


source = close
shortlength=input(14)
longlength=input(56)
aa=input(2)
Ss=input(75)

//Cci part
ci1=cci(source,shortlength)   //4시간봉의 기본 cci
ci2=cci(source,longlength)   //4시간봉에서 12시봉의 cci 무빙측정

//오린간 선생님의 WT + ichimoku
len = input(10)
lenTurn = input(9)
lenStd = input(26)

wtm_e(so, l) =>
    esa = ema(so, l)
    d = ema(abs(so - esa), l)
    ci = (so - esa) / (0.015 * d)
    ema(ci, l*2+1)

alh(len) => avg(lowest(len), highest(len))
alh_src(src, len) => avg(lowest(src, len), highest(src, len))

wt = wtm_e(close,len)
turn = alh_src(wt, lenTurn)
std = alh_src(wt, lenStd)

cnt = 0
if wt > turn
    cnt:=cnt+1
if wt > std
    cnt:=cnt+1


//100,-100선
h0 = hline(100)
h1 = hline(-100)

//plot(ci,color=green)
// plot(k,color=green)
// plot(d,color=red)
plot(ci1,color=green)
plot(ci2,color=red)

plot(0,color=black)
plot(100,color=black)
plot(-100,color=black)

fill(h0,h1,color=purple,transp=95)

bgcolor(cnt==0 ? red : cnt==1 ? blue : cnt == 2 ? green : na, transp = Ss)

//기간조정

Fromday = input(defval=1, title="from day", minval=1, maxval=31)
FromMonth = input(defval=1, title="from month", minval=1, maxval=12)
FromYr = input(defval=2019, title="from yr", minval=1970)

Today = input(defval=13, title="to day", minval=1, maxval=31)
ToMonth = input(defval=12, title="to month", minval=1, maxval=12)
ToYr = input(defval=2019, title="to yr", minval=1970)

startDate = timestamp(FromYr, FromMonth, Fromday, 00, 00)
finishDate = timestamp(ToYr, ToMonth, Today, 00, 00)
Time_cond = true


/////롱

if  crossover(ci1,ci2) and change(ci2)>0 and Time_cond
    strategy.entry("go", strategy.long, comment="go")
    
strategy.close("go", (ci2<0 and ci1 <-50 and change(ci1)<0) or (crossunder(ci1,-100) and strategy.openprofit<0) and change(cnt)<0)



/////숏

if  (crossunder(ci1,ci2) and change(ci2)<0 and falling(ci1,aa)) and Time_cond
    strategy.entry("die", strategy.short, comment="die")
    
strategy.close("die", (ci2>0 and ci1 > 100 and change(ci1)>0) or (crossover(ci2,100) and strategy.openprofit<0) and change(cnt)>0)

Plus de