La stratégie de rupture fractale double est une stratégie de trading quantitative basée sur la reconnaissance technique des modèles.
L'idée de base de cette stratégie réside dans la théorie des fractals. L'émergence de points de basculement à court terme en forme de M ou en forme de W suggère un possible renversement de la tendance dominante. Plus précisément, les fractals inférieurs ou supérieurs se forment lorsque 5 barres consécutives créent des combinaisons particulières de hauts / bas de hauts / bas relatifs. Par exemple, un fractal supérieur se forme lorsque les prix les plus élevés des 2 premières barres sont supérieurs à ceux des 3 dernières barres.
La stratégie génère des signaux longs et courts lorsque les prix dépassent respectivement les fractales inférieurs et les fractales supérieurs, car ces écarts indiquent une probabilité plus élevée d'inversion de tendance.
L'avantage principal de cette stratégie est sa capacité à détecter les points de renversement de tendance potentiels, ce qui peut être très utile pour les systèmes de trading qui suivent la tendance.
Le risque majeur est que la détection fractale ne garantit pas les renversements de prix avec une pleine certitude. Parfois, les prix peuvent simplement faire des corrections à court terme sans changements de tendance réels. Des signaux incorrects peuvent entraîner des pertes inutiles dans de tels cas. Pour atténuer ce risque, d'autres indicateurs tels que les volumes de trading peuvent être utilisés pour vérifier la validité des signaux de renversement.
Les moyens possibles de renforcer cette stratégie sont les suivants:
Ajouter des filtres comme le volume pour éviter les faux retours.
Ajustement des paramètres pour détecter les fractales doubles de plus grand degré et capturer les grands virages de tendance.
Incorporer un stop loss mobile pour réduire les pertes liées aux mauvaises transactions.
La stratégie de rupture fractale double identifie les renversements de prix potentiels en détectant des modèles techniques spécifiques. En tant qu'approche basée sur des indicateurs techniques, elle peut suivre efficacement les tendances à court et à moyen terme sur le marché et fournir des résultats de risque-rendement respectables.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ceyhun strategy("Fractal Breakout Strategy", overlay=true) FUp = high[4] < high[2] and high[3] < high[2] and high[1] < high[2] and high < high[2] or high[5] < high[2] and high[4] < high[2] and high[3] <= high[2] and high[1] < high[2] and high < high[2] or high[6] < high[2] and high[5] < high[2] and high[4] <= high[2] and high[3] <= high[2] and high[1] < high[2] and high < high[2] or high[7] < high[2] and high[6] < high[2] and high[5] <= high[2] and high[4] <= high[2] and high[3] <= high[2] and high[1] < high[2] and high < high[2] or high[8] < high[2] and high[7] < high[2] and high[6] <= high[2] and high[5] <= high[2] and high[4] <= high[2] and high[3] <= high[2] and high[1] < high[2] and high < high[2] FractalUp = valuewhen(FUp, high[2], 1) plot(FractalUp, color=#0000FF,title="FractalUp") FDown = low[4] > low[2] and low[3] > low[2] and low[1] > low[2] and low > low[2] or low[5] > low[2] and low[4] > low[2] and low[3] >= low[2] and low[1] > low[2] and low > low[2] or low[6] > low[2] and low[5] > low[2] and low[4] >= low[2] and low[3] >= low[2] and low[1] > low[2] and low > low[2] or low[7] > low[2] and low[6] > low[2] and low[5] >= low[2] and low[4] >= low[2] and low[3] >= low[2] and low[1] > low[2] and low > low[2] or low[8] > low[2] and low[7] > low[2] and low[6] >= low[2] and low[5] >= low[2] and low[4] >= low[2] and low[3] >= low[2] and low[1] > low[2] and low > low[2] FractalDown = valuewhen(FDown, low[2], 1) plot(FractalDown, color=#FF0000,title="FractalDown") if crossover(close, FractalUp) strategy.entry("Long", strategy.long, comment="Long") if crossunder(close, FractalDown) strategy.entry("Short", strategy.short, comment="Short")