Cette stratégie implémente la négociation d'actions intraday à l'aide de lignes Ichimoku Cloud. Elle appartient aux stratégies de négociation à court terme. Elle utilise la ligne de conversion, la ligne de base et les lignes de pointe de Ichimoku Cloud pour générer des signaux de négociation, et utilise Parabolic SAR pour le suivi des pertes d'arrêt, obtenant une double protection.
Le nuage Ichimoku se compose de la ligne de conversion, de la ligne de base, de la ligne 1 et de la ligne 2. La ligne de conversion est la moyenne du prix de clôture et des prix les plus élevés et les plus bas au cours des 9 derniers jours, reflétant l'état d'équilibre récent du prix de l'action. La ligne de base est la moyenne des prix les plus élevés et les plus bas au cours des 26 derniers jours, représentant l'état d'équilibre à moyen et long terme. La ligne 1 est la moyenne de la ligne de base et de la ligne de conversion, reflétant la tendance future. La ligne 2 est la moyenne des prix les plus élevés et les plus bas au cours des 52 derniers jours.
Lorsque le prix de clôture franchit la ligne de base vers le haut et est au-dessus de la ligne principale 2, un signal d'achat est généré. Lorsque le prix de clôture franchit la ligne de base vers le bas et est en dessous de la ligne principale 1, un signal de vente est généré.
Cette stratégie utilise la combinaison des lignes d'équilibre pour déterminer les tendances futures des prix et la durabilité de la tendance actuelle. Elle appartient aux stratégies typiques de suivi des tendances. Elle suit la tendance en négociant lorsque des signaux d'achat et de vente apparaissent. Pendant ce temps, le mécanisme SAR stop loss et take profit évite d'agrandir les pertes.
Les lignes d'équilibre contiennent des informations sur les prix de différentes périodes, reflétant les changements de tendance à l'avance.
SAR peut suivre de manière flexible le prix de l'action pour le stop loss. En combinaison avec les lignes d'équilibre, il permet un stop loss rapide après la prise de profit, évitant les pertes accrues.
Cette stratégie comporte des paramètres minimaux sans indicateurs techniques complexes tels que l'ajustement de la courbe, simple et pratique à mettre en œuvre.
Il identifie les signaux de négociation à partir des variations de prix intraday, adaptés au trading à court terme.
La tendance qui suit la négociation entraîne des retraits plus élevés.
Des signaux de négociation fréquents peuvent être générés sur les marchés à plage, ce qui est défavorable pour la rentabilité.
Les paramètres simples sont sujets à une optimisation excessive. Les performances réelles du trading peuvent ne pas être idéales. Des tests de robustesse doivent être effectués pour éviter une surajustement.
Le rendement dépend des instruments de négociation. Les actions à tendance avec des tendances claires doivent être choisies pour maximiser l'efficacité de la stratégie.
D'autres indicateurs comme les moyennes mobiles peuvent être ajoutés pour filtrer les signaux incertains et éviter les faux trades.
Les paramètres SAR peuvent être ajustés dynamiquement en fonction de la volatilité du marché, pour un stop loss plus souple.
Une optimisation plus systématique et des tests combinatoires peuvent trouver de meilleurs ensembles de paramètres pour améliorer les performances.
La taille des positions et l'effet de levier peuvent être ajustés dynamiquement en fonction des conditions du marché, telles que les tendances des indices, afin de contrôler les risques.
Cette stratégie utilise les signaux de trading d'Ichimoku Cloud
/*backtest start: 2023-01-01 00:00:00 end: 2023-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // // Based on the trading strategy described at // http://stockcharts.com/school/doku.php?id=chart_school:trading_strategies:ichimoku_cloud // // See Also: // - Backtesting and forwardtesting (of TradingView Strategies) <https://www.tradingview.com/wiki/Strategies#Backtesting_and_forwardtesting> // - 9 Mistakes Quants Make that Cause Backtests to Lie <https://blog.quantopian.com/9-mistakes-quants-make-that-cause-backtests-to-lie-by-tucker-balch-ph-d/> // - When Backtests Meet Reality <http://financial-hacker.com/Backtest.pdf> // - Why MT4 backtesting does not work <http://www.stevehopwoodforex.com/phpBB3/viewtopic.php?f=28&t=4020> // // // ----------------------------------------------------------------------------- // Copyright 2018 sherwind // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // The GNU General Public License can be found here // <http://www.gnu.org/licenses/>. // // ----------------------------------------------------------------------------- // strategy(title="Ichimoku Cloud Strategy", shorttitle="Ichimoku Strategy", overlay=true, pyramiding=3) conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=1, title="Displacement") usePSARTrailStop = input(true, title="Use Parabolic SAR for Trailing Stop") psarStart = input(0.02, title="Parabolic SAR Start") psarIncrement = input(0.02, title="Parabolic SAR Increment") psarMaximum = input(0.2, title="Parabolic SAR Maximum") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) leadLineDisp1 = leadLine1[displacement] leadLineDisp2 = leadLine2[displacement] psar = sar(psarStart, psarIncrement, psarMaximum) // BUY Signal: // close > leading span b and // leading span a > leading span b and // close crosses over base line and // close > parabolic sar buySignal = close > leadLineDisp2 and leadLineDisp1 > leadLineDisp2 and crossover(close, baseLine) and (usePSARTrailStop ? close > psar : not usePSARTrailStop) // Sell Signal: // close < leading span a and // leading span a < leading span b and // close crosses under base line and // close < psar sellSignal = close < leadLineDisp1 and leadLineDisp1 < leadLineDisp2 and crossunder(close, baseLine) and (usePSARTrailStop ? close < psar : not usePSARTrailStop) hasLong = strategy.position_size > 0 hasShort = strategy.position_size < 0 strategy.entry("ichimoku-long", strategy.long, when = buySignal) strategy.entry("ichimoku-short", strategy.short, when = sellSignal) strategy.exit("trailstop-long", "ichimoku-long", stop = psar, when = hasLong and usePSARTrailStop) strategy.exit("trailstop-short", "ichimoku-short", stop = psar, when = hasShort and usePSARTrailStop)