Stratégie de rupture basée sur les canaux de la Camarilla

Auteur:ChaoZhang est là., Date: 2023-10-24 16h18h30
Les étiquettes:

img

Résumé

Cette stratégie utilise principalement des canaux Camarilla et des moyennes mobiles pour identifier les points de rupture sur le marché et ainsi mettre en œuvre le suivi des tendances.

La logique de la stratégie

  1. Calculer les niveaux de support et de résistance en utilisant les canaux Camarilla, y compris H4, L4 etc.

  2. Identifiez si le prix franchit ces lignes de canal. Par exemple, la fermeture au-dessus de H4 et l'ouverture au-dessous de H4 indiquent un signal de rupture.

  3. Ajouter un filtre de moyenne mobile pour une confirmation plus approfondie.

  4. Entrez dans une position longue avec un stop loss et profitez.

  5. La même logique s'applique aux positions courtes.

La logique est simple et facile à comprendre.

Les avantages

Les avantages de cette stratégie:

  1. Les canaux Camarilla localisent avec précision les supports et les résistances potentiels.

  2. Le filtre des moyennes mobiles aide à valider les vrais signaux de rupture.

  3. Le stop-loss de suivi prend des bénéfices tout en évitant les stops d'inversion.

  4. Les signaux sont clairs et faciles à suivre.

  5. Aucun ajustement fréquent n'est nécessaire pour le trading automatisé.

Risques et solutions

Il y a certains risques à prendre en compte:

  1. Les canaux camarilla ne peuvent pas identifier efficacement les points tournants.

    • Solution: ajouter des oscillateurs pour détecter un renversement de tendance.
  2. Un mauvais réglage des points d'arrêt des pertes peut entraîner une sortie prématurée ou une augmentation des pertes.

    • Solution: Optimiser et tester différents niveaux de stop loss.
  3. Les signaux de rupture peuvent s'avérer faux.

    • Solution: ajouter plus de filtres pour la confirmation, ou assouplir les critères de rupture.
  4. Beaucoup de fausses évasions peuvent se produire sur des marchés variés.

    • Solution: Évitez de négocier dans des périodes variables ou de détendre les critères.

Suggestions pour améliorer

La stratégie peut être encore améliorée par les aspects suivants:

  1. Ajouter plus d'indicateurs comme filtres pour augmenter la précision de l'éclatement, tels que KDJ, MACD, etc.

  2. Optimiser les sorties, telles que le stop loss dynamique, l'intégration de l'ATR, etc.

  3. Optimiser les paramètres pour différents produits afin d'accroître la robustesse.

  4. Ajouter un filtre de tendance plus élevé pour éviter les transactions contre-tendance.

  5. Concentrez-vous sur les éruptions à volume élevé pour confirmation.

  6. Développer une optimisation automatique des paramètres pour un réglage dynamique.

  7. Élargir à des stratégies d'arbitrage multi-produits.

Conclusion

La stratégie a une logique claire et simple avec une forte praticité. Elle identifie les supports et les résistances potentiels en utilisant Camarilla et confirme la direction de la rupture avec des moyennes mobiles. La méthode de sortie est également raisonnable. Il existe également un énorme potentiel d'amélioration, comme l'ajout de plus d'indicateurs, l'expansion de plusieurs produits, etc. Dans l'ensemble, c'est une stratégie prometteuse avec un bon potentiel.


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

//@version=2
//Created by CristianD
strategy(title="CamarillaStrategyV1", shorttitle="CD_Camarilla_StrategyV1", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,8)

//Camarilla
pivot = (high + low + close ) / 3.0 
range = high - low
h5 = (high/low) * close 
h4 = close + (high - low) * 1.1 / 2.0
h3 = close + (high - low) * 1.1 / 4.0
h2 = close + (high - low) * 1.1 / 6.0
h1 = close + (high - low) * 1.1 / 12.0
l1 = close - (high - low) * 1.1 / 12.0
l2 = close - (high - low) * 1.1 / 6.0
l3 = close - (high - low) * 1.1 / 4.0
l4 = close - (high - low) * 1.1 / 2.0
h6 = h5 + 1.168 * (h5 - h4) 
l5 = close - (h5 - close)
l6 = close - (h6 - close)

// Daily line breaks
//sopen = request.security(syminfo.tickerid, "D", open [1])
//shigh = request.security(syminfo.tickerid, "D", high [1])
//slow = request.security(syminfo.tickerid, "D", low [1])
//sclose = request.security(syminfo.tickerid, "D", close [1])
//
// Color
//dcolor=sopen != sopen[1] ? na : black
//dcolor1=sopen != sopen[1] ? na : red
//dcolor2=sopen != sopen[1] ? na : green

//Daily Pivots 
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) 
dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1]) 
dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1]) 
dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1]) 
dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1]) 
dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1]) 
dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1]) 
dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1]) 
dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1]) 
dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1]) 
dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1]) 
dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1]) 
dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1]) 

//offs_daily = 0
//plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2)
//plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2)
//plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2)
//plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2)
//plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3)
//plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2)
//plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2)
//plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3)
//plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2)
//plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2)
//plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2)

longCondition = close >dtime_h4 and open < dtime_h4 and EMA < close
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit ("Exit Long","Long",  trail_points = 140,trail_offset = 1, loss =170) 
    //trail_points = 40, trail_offset = 3, loss =70 and


shortCondition = close <dtime_l4 and open >dtime_l4 and EMA > close
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit ("Exit Short","Short", trail_points = 110,trail_offset = 1, loss =120)
    


Plus de