
La stratégie de négociation de rupture et de retrait de prix en plusieurs phases est un système de négociation basé sur l’action des prix, qui identifie principalement des modèles de prix spécifiques et effectue une entrée précise aux points de rupture. La stratégie surveille le graphique de la relation entre le prix d’ouverture, le prix le plus élevé, le prix le plus bas et le prix de clôture, en combinaison avec l’analyse de la différence de point, pour capturer le moment où la dynamique du marché change.
Le principe central de la stratégie est d’identifier et de tirer parti des opportunités de continuité après des fluctuations rapides des prix. En approfondissant l’analyse du code, nous pouvons voir que la stratégie suit les principes suivants:
Système de reconnaissance de position: La stratégie divise la logique de négociation en trois phases ((phase 1-3), qui déclenchent différentes conditions d’entrée selon les différentes phases.
Détection des conditions de rupturePour les transactions multi-acteurs, les principaux critères sont les suivants:
Retour à la logique: le trading à vide utilise une logique inverse parfaitement symétrique avec le trading à plusieurs têtes pour déterminer le moment d’entrée en surveillant la relation entre le prix d’ouverture et le prix minimum.
Paramètres de l’arrêt de perteLa stratégie utilise une stratégie de stop-loss à points fixes, avec un stop-loss à plusieurs têtes placé 301 points au-dessous du prix d’entrée et un stop-loss placé 301 points au-dessus du prix de clôture précédent; le contraire est le cas pour les transactions à vide.
Après une analyse approfondie du code, la stratégie présente les avantages suivants:
Mécanisme de jugement à plusieurs niveaux: La précision de l’admission a été améliorée en évitant les erreurs de jugement causées par une seule condition, grâce à trois phases différentes de jugement.
La direction et le retraitLa stratégie est axée à la fois sur la dynamique de la rupture des prix et sur les éventuelles retraites, en équilibrant l’attaque et la défense.
Les paramètres sont flexibles: La stratégie peut s’adapter à différents marchés et variétés avec des caractéristiques de volatilité différentes, en augmentant la portée de la stratégie avec des paramètres de valeur ponctuelle.
Travail à deuxLa stratégie implique une logique de trading bidirectionnelle, permettant de tirer le meilleur parti des opportunités du marché, sans être limité par une tendance unidirectionnelle.
Gestion intégrée des risquesLe risque et les bénéfices potentiels de chaque transaction sont clairement maîtrisés grâce à un seuil d’arrêt de perte prédéfini.
Malgré cette stratégie bien conçue, les risques potentiels sont les suivants:
Réglage du point fixeLa solution consiste à ajuster ces paramètres en fonction des caractéristiques de la variété et de la dynamique de volatilité du marché actuel.
Risque de fausse percée: Le marché peut présenter des phénomènes de faux-brèche qui se retirent rapidement après une brève percée, ce qui entraîne de faux signaux. Il est possible de réduire ce risque en ajoutant des indicateurs de confirmation tels que le volume de transactions ou d’autres indicateurs de dynamique.
Les pertes continues sont possibles: Dans un marché en tremblement de terre, les prix touchent fréquemment des niveaux de rupture mais ne forment pas de tendance, ce qui peut entraîner des pertes continues. La solution consiste à ajouter des filtres d’environnement de marché et à réduire ou suspendre les transactions dans un marché en tremblement de terre.
Effets des points de défilement: la stratégie repose sur un point de prix précis, il peut y avoir des problèmes de glissement dans les transactions réelles, en particulier dans les marchés moins liquides. Il est recommandé de simuler les situations de glissement lors de la rétro-évaluation et d’assouplir les conditions d’entrée en bourse de manière appropriée.
Complexité du suivi des positions: La conception multifasée, bien qu’améliorant la précision, augmente la complexité logique, ce qui peut entraîner des retards ou des erreurs dans l’exécution des transactions. Des vérifications régulières et des logiques simplifiées peuvent améliorer l’efficacité de l’exécution.
Voici quelques pistes d’optimisation possibles pour cette stratégie:
Ajustement des paramètres dynamiques: modifier les paramètres de points fixes en paramètres dynamiques basés sur les fluctuations du marché (par exemple, l’indicateur ATR) pour permettre à la stratégie de mieux s’adapter aux différents environnements du marché. Cela permet de réduire les seuils de déclenchement pendant les périodes de faible volatilité et d’augmenter les seuils pendant les périodes de forte volatilité, améliorant ainsi l’adaptabilité.
Augmenter le filtrage des conditions du marché: introduire des indicateurs de jugement de tendance (comme la direction des moyennes mobiles ou l’indicateur ADX), exécuter la stratégie uniquement dans un environnement de marché favorable et éviter de négocier dans des conditions défavorables.
Optimiser les paramètres de stop-lossIl est possible d’envisager d’utiliser un stop tracking au lieu d’un stop fixe, ce qui permet à un trading rentable d’avoir plus de marge de manœuvre tout en protégeant les profits réalisés.
Ajout de facteurs de confirmation: augmenter le volume de transactions, la structure du marché ou la confirmation d’autres indicateurs techniques lors du déclenchement du signal d’entrée, réduire l’impact des faux signaux.
Filtreur de temps: Ajout de filtres de fenêtres de temps de négociation, évitant les heures d’ouverture et de fermeture du marché où les fluctuations sont plus importantes mais où la direction n’est pas claire, en se concentrant sur les périodes de temps où la négociation est plus stable.
Logique simplifiée de la conversion en positionnement: Refonte de la logique de conversion de phase, réduction des vérifications d’état inutiles, simplification de la structure du code, amélioration de l’efficacité d’exécution.
La stratégie de négociation multiphase de rupture et de retrait de prix est un système de négociation bien structuré qui identifie les opportunités de négociation favorables grâce à une analyse multicouche du comportement des prix. Ses principaux avantages résident dans le mécanisme de jugement multiphase, la capacité de négociation bidirectionnelle et le système de gestion du risque intégré. Bien que des problèmes tels que l’adaptation des paramètres fixes et le risque de fausse rupture existent, la stabilité et la rentabilité de la stratégie sont susceptibles d’être considérablement améliorées par l’introduction de paramètres dynamiques, le filtrage de l’environnement du marché et des mesures d’optimisation telles que les facteurs de confirmation.
La stratégie est particulièrement adaptée aux traders à court et moyen terme, en particulier ceux qui surveillent les mouvements de prix et souhaitent intervenir au début des changements de dynamique. En ajustant soigneusement les paramètres et en ajoutant les conditions de filtrage appropriées, la stratégie peut évoluer en un système de trading fiable qui offre une source stable de revenus pour un portefeuille de transactions quantifié.
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("Custom Strategy", overlay=true, margin_long=1, margin_short=1, process_orders_on_close=true)
// 参数设置
point_value = input.float(0.0001, title="点值(例如:0.0001代表1个点)")
// 多单逻辑变量
var float long_ref_open = na
var float long_ref_high = na
var bool long_condition1 = false
var bool long_condition2 = false
var int long_phase = 0
// 空单逻辑变量
var float short_ref_open = na
var float short_ref_high = na
var bool short_condition1 = false
var bool short_condition2 = false
var int short_phase = 0
// 多单条件检查
// 多单第一条件检查
if not long_condition1 and not long_condition2
if high[1] - open[1] >= 300 * point_value
if low[1] <= high[1] - 50 * point_value
strategy.entry("Long", strategy.long)
else
long_ref_open := open[1]
long_ref_high := high[1]
long_phase := 1
else if close[1] - open[1] < 300 * point_value
long_phase := 2
// 多单第二条件检查
if long_phase == 1
if low <= long_ref_open + 250 * point_value
strategy.entry("Long", strategy.long)
long_phase := 0
if long_phase == 2
if high - close[1] >= 300 * point_value
if low <= high - 50 * point_value
strategy.entry("Long", strategy.long)
long_phase := 0
else
long_phase := 3
else
long_phase := 0
if long_phase == 3
if low <= open[2] + 250 * point_value
strategy.entry("Long", strategy.long)
long_phase := 0
// 空单条件检查(反向逻辑)
// 空单第一条件检查
if not short_condition1 and not short_condition2
if open[1] - low[1] >= 300 * point_value
if high[1] >= low[1] + 50 * point_value
strategy.entry("Short", strategy.short)
else
short_ref_open := open[1]
short_ref_high := low[1]
short_phase := 1
else if open[1] - close[1] < 300 * point_value
short_phase := 2
// 空单第二条件检查
if short_phase == 1
if high >= short_ref_open - 250 * point_value
strategy.entry("Short", strategy.short)
short_phase := 0
if short_phase == 2
if close[1] - low >= 300 * point_value
if high >= low + 50 * point_value
strategy.entry("Short", strategy.short)
short_phase := 0
else
short_phase := 3
else
short_phase := 0
if short_phase == 3
if high >= open[2] - 250 * point_value
strategy.entry("Short", strategy.short)
short_phase := 0
// 止损止盈逻辑
if strategy.position_size > 0
strategy.exit("Long Exit", "Long", stop = strategy.position_avg_price - 301 * point_value,limit = close[1] + 301 * point_value)
if strategy.position_size < 0
strategy.exit("Short Exit", "Short",stop = strategy.position_avg_price + 301 * point_value, limit = close[1] - 301 * point_value)