
Cette stratégie est une stratégie de trading quantitative à long terme basée sur la théorie de la rupture. Elle détermine si une rupture a eu lieu en calculant le prix de clôture le plus élevé des 100 derniers jours de négociation. Si le prix de clôture du dernier jour dépasse le prix de clôture le plus élevé des 100 jours précédents, un signal d’achat est émis.
La logique centrale de la stratégie est basée sur la théorie des pics de rupture dans l’analyse technique. La théorie des pics de rupture considère que lorsque les prix dépassent les hauts ou les bas de la période précédente, cela représente un revirement du marché qui peut entrer dans une nouvelle tendance haussière ou baissière.
Plus précisément, la stratégie consiste à appeler une fonction intégrée de Pine Scriptta.highest(), calculer le prix de clôture maximal des 100 derniers bars. Ensuite, comparer si le prix de clôture de la ligne K actuelle est supérieur à ce prix de clôture maximal. Si le prix de clôture dépasse le prix de clôture maximal des 100 derniers jours, une rupture se produit dans la direction de la hausse.
Une fois que la position est entrée dans la position de tête, la stratégie définit une condition de stop-loss pour la position de tête. Par appelta.barssince()La fonction statistique entre dans le nombre de barres après avoir effectué un plus, et force le stop loss placement lorsque le nombre de barres est supérieur à 25.
La logique de cette stratégie peut être résumée comme suit:
Le plus grand avantage de cette stratégie est de capturer les points de basculement de la tendance des prix et d’avoir un taux de réussite de transactions en cours élevé. De plus, le paramètre de la logique de stop-loss permet également de contrôler efficacement les pertes individuelles.
Les avantages concrets sont les suivants:
1. Les transactions en cours ont un taux de réussite plus élevé
La théorie de la rupture considère que les prix dépassent une zone de prix clé et représentent une nouvelle tendance. La stratégie est conçue sur la base de cette théorie, il y a donc une plus grande probabilité de capturer le moment où les prix se retournent et de réaliser une transaction en hausse.
2. Des risques maîtrisés et des mécanismes de prévention
La stratégie a mis en place un mécanisme d’arrêt et de sortie après 25 jours de négociation, permettant de limiter les pertes individuelles à une certaine plage, d’éviter les pertes importantes et de contrôler le risque global.
3. Convient pour la détention d’une position sur une ligne moyenne et longue
La durée de détention par défaut de la stratégie est de 25 jours de négociation, soit environ un mois. C’est une plage de temps de détention plus appropriée pour les stratégies de ligne moyenne et longue, qui ne provoque pas de whipsaw trop court et ne augmente pas le risque trop longtemps.
4. Moins de paramètres et plus facile à optimiser
Les principaux paramètres de cette stratégie sont les périodes de fenêtres de rupture et les périodes de tenue de position. Les paramètres sont moins faciles à tester et à optimiser pour trouver les paramètres optimaux, et les coûts d’exploitation du disque dur sont faibles.
5. Commutation entre plusieurs variétés
La stratégie n’utilise pas d’indicateur unique pour une variété particulière, sa logique de négociation s’applique à plusieurs variétés, telles que les indices boursiers, les devises, les marchandises et les crypto-monnaies, et peut être basculée entre les différentes variétés en fonction des conditions du marché, ce qui augmente l’adaptabilité de la stratégie.
Malgré les avantages mentionnés ci-dessus, cette stratégie présente des risques dans la pratique, notamment:
1. Le risque d’être piégé
La stratégie ne dispose pas d’un stop mobile ou d’un mécanisme de suivi des stops. Si la tendance d’entrée ne se forme pas ou si la rupture est en fait une fausse rupture, il est facile d’être piégé jusqu’au point d’arrêt.
2. Les paramètres peuvent nécessiter une optimisation
Le paramètre par défaut n’est pas nécessairement le paramètre optimal, et il peut être nécessaire de trouver une configuration de paramètres adaptée à une variété et à un environnement de marché spécifiques via une méthode d’optimisation dans le processus de disque dur, ce qui augmente le volume de travail d’ajustement et de suivi de la stratégie.
3. Une forte pertinence par rapport au marché
Cette stratégie est trop dépendante de la tendance, elle ne fonctionne pas bien dans les marchés de consolidation et elle est moins adaptée aux conditions de marché variées. Si le marché est volatile, elle est fréquemment ajustée ou déclenchée par des arrêts de perte et les gains et pertes peuvent être instables.
Afin de permettre une meilleure stabilité de la stratégie dans le monde réel, il est possible d’optimiser et d’améliorer les éléments suivants:
1. Augmentation du mécanisme de coupe mobile
L’ajout d’une logique de suivi des pertes en fonction de la taille des gains sur le papier de position et la mise en place d’un point de perte mobile permettent de limiter la perte maximale de chaque transaction. Cela réduit considérablement le risque individuel.
2. Adapter les paramètres en fonction des conditions du marché
On peut définir une plage ou une liste de valeurs pour les deux principaux paramètres de la stratégie (la fenêtre de rupture et le temps de maintien de la position) et définir dynamiquement la valeur des paramètres en fonction de la force relative du marché (par exemple, en calculant l’utilisation de l’indicateur ATR) pour optimiser davantage les paramètres.
3. Les règles de jugement combinées avec les tendances
Il est possible de combiner les résultats d’une analyse de tendance préalable (par exemple, un jugement visuel ou une analyse quantitative) et de participer à des transactions lorsque l’analyse détermine une tendance plus claire.
4. Tests sur différentes variétés et environnements de marché
Tester les paramètres et les règles de stratégie d’optimisation dans plusieurs variétés (par exemple, indices boursiers, marchandises, devises et crypto-monnaies) et dans différentes zones de négociation (par exemple, le cours du jour, 60 minutes, etc.), s’adapter à un environnement de marché plus large et augmenter la stabilité.
La stratégie de rupture d’arrêt et de reprise est simple à utiliser, a une forte capacité de jugement et de saisie de la tendance, permet de configurer efficacement des positions ouvertes et de rester rentable. Nous avons effectué une analyse de code pour identifier les points forts et les points de risque de la stratégie et nous avons donné des recommandations pour améliorer encore la stabilité et la pratique de la stratégie. Après optimisation et amélioration, nous sommes convaincus que la stratégie peut devenir un excellent modèle de base pour les investissements quantifiés.
/*backtest
start: 2023-01-29 00:00:00
end: 2024-02-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © All_Verklempt
//@version=5
strategy("Breakout Strategy", overlay=true)
// Input variable for breakout period
breakoutPeriod = input.int(100, title="Breakout Period", minval=1)
// Calculate the highest close of the past breakout period
highestClose = ta.highest(close, breakoutPeriod)
// Input variables for start and end dates
startYear = input.int(2022, title="Start Year", minval=1900)
startMonth = input.int(1, title="Start Month", minval=1, maxval=12)
startDay = input.int(1, title="Start Day", minval=1, maxval=31)
endYear = input.int(2023, title="End Year", minval=1900)
endMonth = input.int(12, title="End Month", minval=1, maxval=12)
endDay = input.int(31, title="End Day", minval=1, maxval=31)
// Convert start and end dates to timestamp
startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)
// Entry condition: Breakout and higher close within the specified date range
enterLong = close > highestClose[1] and close > close[1]
// Exit condition: Close the long position after twenty-five bars
exitLong = ta.barssince(enterLong) >= 25
// Strategy logic
if (enterLong)
strategy.entry("Long", strategy.long)
if (exitLong)
strategy.close("Long")