Une stratégie de rupture d'élan

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

Résumé

Il s'agit d'une stratégie de trading intraday qui utilise des indicateurs de dynamique et des niveaux de support / résistance clés pour le trading de rupture.

La logique de la stratégie

La stratégie utilise l'indice de Choppiness pour identifier les tendances. Les valeurs de Choppiness basses indiquent une tendance claire tandis que les valeurs élevées indiquent une consolidation. La stratégie ne se négocie que lorsque Choppiness est inférieur à 44.

Pour les signaux d'entrée, il calcule les principaux niveaux de support/résistance intraday, y compris H4, H5 etc. Il va long lorsque le prix se ferme au-dessus de H4 et court lorsque le prix se ferme en dessous de L4.

Plus précisément, il calcule les niveaux intrajournaliers suivants:

  • Pivot = (haut + bas + près) / 3
  • Range = haut - bas
  • H1-H6 = pivot + plage * rapport
  • L1-L6 = pivot - plage * ratio

Après avoir calculé ces niveaux, il utilise H4 et L4 comme niveaux de rupture clés.

Lorsque le prix dépasse H4, il indique une dynamique haussière croissante et la stratégie va long.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. L'utilisation de Choppiness pour identifier les tendances claires évite les problèmes de consolidation.

  2. Les niveaux de support/résistance calculés sont généralement significatifs.

  3. Les pauses de négociation de H4 et L4 qui sont proches du prix de clôture capturent des pauses intradiennes importantes.

  4. Les signaux de rupture ont un taux de gain très élevé.

  5. Une logique simple et claire, facile à comprendre et à mettre en œuvre pour les débutants.

Analyse des risques

Les risques de cette stratégie comprennent:

  1. S'appuyer sur Choppiness pour identifier les tendances peut échouer et mal interpréter les tendances.

  2. Les niveaux calculés peuvent ne pas tenir et le prix pourrait se briser, provoquant des arrêts.

  3. Les signaux de rupture peuvent être de fausses ruptures avec des retours rapides.

  4. Sans tenir compte de la tendance générale, les pertes peuvent s'accumuler sur les marchés instables.

  5. Aucun stop loss signifie une énorme perte unique possible dans les mouvements extrêmes.

Les solutions:

  1. Ajouter d'autres indicateurs pour la confirmation croisée et améliorer la précision.

  2. Mettre en œuvre un stop loss mobile pour contrôler les pertes d'une seule transaction.

  3. Incorporer un filtre de tendance à long terme pour éviter les transactions contre-tendance.

  4. Ajoutez un signal de rentrée pour éviter de poursuivre de fausses fuites.

Directions d'optimisation

Cette stratégie peut être encore optimisée par:

  1. Optimisation des paramètres de Choppiness pour trouver de meilleures valeurs.

  2. Je teste différents niveaux de rupture comme H3 et L3 pour une meilleure efficacité.

  3. Ajout d'un stop loss mobile pour la protection des bénéfices et le contrôle des risques.

  4. J'ajoute le signal de réentrée pour éviter les pertes de fausses fuites.

  5. L'intégration d'un filtre de tendance à long terme pour éviter les transactions contre-tendance.

  6. Optimisation des temps de négociation tels que les sessions de négociation aux États-Unis ou en Europe.

  7. Ajout de règles de dimensionnement des positions comme quantité fixe ou pourcentage fixe.

  8. J'analyse les données pour les paramètres.

Conclusion

En résumé, l'idée de base est de négocier des ruptures après avoir identifié la tendance. Il a une logique simple et des chances de gagner décentes. Mais les risques existent et des raffinements supplémentaires sont nécessaires pour contrôler les risques et améliorer la rentabilité. Avec l'ajustement des paramètres, le stop loss, le filtre de tendance, etc. il peut devenir un système de rupture intraday très pratique. Il fournit un cadre de rupture de momentum qui est une stratégie de trading intraday efficace.


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

//@version=4
//Created by AS
strategy(title="ASH1Strategy", shorttitle="AS_H1_Strategy", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,3)

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
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)
    


shortCondition = close <dtime_l4
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
    


Plus de