Stratégie de rupture de tendance - Long Shadow


Date de création: 2023-11-15 16:43:17 Dernière modification: 2023-11-15 16:43:17
Copier: 2 Nombre de clics: 665
1
Suivre
1617
Abonnés

Stratégie de rupture de tendance - Long Shadow

Cette stratégie permet de déterminer la direction de la tendance actuelle en calculant le rapport de la longueur de l’ombre du soleil de la ligne K. Elle est utilisée pour identifier la tendance en fonction de l’amplitude réelle moyenne de l’ATR. Elle permet d’ouvrir des positions inversées au point de rupture, de définir des arrêts de perte et de capturer la tendance à court terme.

Principe de stratégie

La stratégie consiste principalement à calculer le rapport entre la longueur de l’ombre du soleil et la longueur de la ligne K pour déterminer la direction de la tendance actuelle, soit une tendance à la baisse lorsque la longueur de la ligne du soleil est trop longue, soit une tendance à la hausse lorsque la longueur de la ligne du soleil est trop longue.

La logique de la stratégie est la suivante:

  1. Calculer la longueur de l’ombre inférieure de la ligne K: close-low
  2. Calculer la longueur de l’ombre supérieure de la ligne K: high-open ((le prix le plus élevé - prix d’ouverture)
  3. Prenez la valeur maximale de l’ombre en dessous et de l’ombre en haut comme longueur d’ombre
  4. Calculer la longueur de l’entité de la ligne K: high-low (le prix le plus élevé - le prix le plus bas)
  5. Calculer le rapport entre la longueur de l’ombre et la longueur du corps
  6. Lorsque le ratio est supérieur à 0,5 et que l’ombre inférieure est supérieure à l’ombre supérieure, jugez-le comme une tendance à la baisse et définissez plusieurs entrées
  7. Lorsque le ratio est supérieur à 0,5 et que l’ombre supérieure est plus grande que l’ombre inférieure, jugez-le comme une tendance à la hausse et définissez une entrée vide
  8. En entrant dans le jeu, il faut déterminer simultanément si la longueur de l’entité de la ligne K est supérieure à 0,75 fois l’amplitude réelle moyenne de l’ATR, afin d’éviter une percée inefficace.
  9. Après l’entrée, le stop loss est réglé, le stop loss est le prix d’entrée multiplié par le facteur, le stop loss est le prix d’entrée multiplié par le facteur 2 pour obtenir un rapport de profit / perte de 2: 1

C’est la logique de base de la stratégie, qui consiste à ouvrir des positions inverses en identifiant les points de rupture de la tendance et à optimiser les gains après avoir défini un stop-loss.

Avantages stratégiques

  1. Le rapport entre le soleil et l’ombre pour déterminer la direction de la tendance, avec une grande précision
  2. Pour un jugement de rupture efficace en combinaison avec l’indicateur ATR, évitez les faux signaux
  3. Réglage de l’arrêt de perte pour un contrôle des risques
  4. Un ratio de profit/perte de 2:1, conforme aux critères de la transaction quantifiée
  5. Les transactions à courte échéance pour les actions à forte volatilité
  6. La logique de la stratégie est simple, claire et facile à comprendre.

Risque stratégique

  1. Les stops peuvent être franchis en cas de forte fluctuation des cours des actions, ce qui entraîne une augmentation des pertes.
  2. L’effet est étroitement lié à la définition des paramètres et nécessite une optimisation des paramètres
  3. La tendance à la reprise pourrait entraîner des pertes
  4. L’élargissement simultané des limites de stop-loss et d’arrêt augmente la probabilité de pertes
  5. La perte d’argent due à une faille dans la percée

Le risque peut être maîtrisé par un arrêt raisonnable, des paramètres d’optimisation et un arrêt rapide.

Optimisation de la stratégie

Les stratégies peuvent être optimisées dans les domaines suivants:

  1. Optimiser les paramètres de rapport d’ombre au soleil pour trouver la meilleure valeur
  2. Optimiser les paramètres ATR pour déterminer la meilleure longueur K
  3. Optimiser le coefficient de stop-loss pour obtenir le meilleur rapport risque/bénéfice
  4. Augmentation de la gestion des positions, par exemple une augmentation progressive des positions
  5. Augmentation de la traçabilité et protection des bénéfices
  6. Filtrage des signaux d’entrée en combinaison avec d’autres indicateurs
  7. Optimiser les périodes de rétro-évaluation pour tester l’efficacité des différentes phases du marché

L’efficacité de la stratégie peut être maximisée par des tests et des optimisations à plusieurs niveaux.

Dans l’ensemble, la stratégie est une stratégie de rupture de courte ligne qui est stable en termes d’efficacité. Une fois optimisée, elle peut devenir une partie essentielle du trading quantitatif.

Code source de la stratégie
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ondrej17

//@version=4
strategy("longWickstrategy", overlay=true )
 
// Inputs
st_yr_inp = input(defval=2020, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')
sltp_inp = input(defval=0.8, title='N - % offset for N*SL and (2N)*TP')/100
 
// Dates
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00)
canTrade = time >= start and time <= end
// Indicators Setup


 
// Strategy Calcuations
lowerWick = (open > close) ? close-low : open - low
upperWick = (open > close) ? high-open : high-close
wickLength = max(lowerWick,upperWick)
candleLength = high-low
wickToCandleRatio = wickLength / candleLength
entryFilterCandleLength = candleLength > 0.75*atr(48)


// Entries and Exits
 
longCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick > upperWick and canTrade and strategy.position_size == 0
shortCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick < upperWick and canTrade and strategy.position_size == 0

strategy.entry("pendingLong", strategy.long, limit=low+wickLength/2, when = longCondition)
strategy.entry("pendingShort", strategy.short, limit=high-wickLength/2, when = shortCondition)

longStop = strategy.position_size > 0 ? strategy.position_avg_price*(1-sltp_inp) : na
longTP = strategy.position_size > 0 ? strategy.position_avg_price*(1+2*sltp_inp) : na
shortStop = strategy.position_size < 0 ? strategy.position_avg_price*(1+sltp_inp) : na
shortTP = strategy.position_size < 0 ? strategy.position_avg_price*(1-2*sltp_inp) : na

strategy.exit("longSLTP","pendingLong", stop=longStop, limit = longTP)
strategy.exit("shortSLTP","pendingShort", stop=shortStop, limit = shortTP)  
 

plot(longStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(shortStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(longTP, color=color.green, style=plot.style_linebr, linewidth=2)
plot(shortTP, color=color.green, style=plot.style_linebr, linewidth=2)

plotLongCondition = longCondition ? high+abs(open-close) : na
plot(plotLongCondition, style=plot.style_circles, linewidth=4, color=color.green)
plotShortCondition = shortCondition ? high+abs(open-close) : na
plot(plotShortCondition, style=plot.style_circles, linewidth=4, color=color.red)