La stratégie
La stratégie utilise l'ATR pour ajuster dynamiquement les niveaux d'arrêt en fonction de l'évolution de la volatilité du marché.
En utilisant un SMA, la stratégie filtre les entrées en assurant l'alignement avec la tendance globale du marché.
L'indicateur MACD sert de filtre de dynamique, confirmant les entrées de transaction en s'assurant qu'elles coïncident avec la dynamique prédominante.
L'intégration d'ATR, SMA et MACD dans la stratégie n'est pas simplement un mélange d'indicateurs. Au lieu de cela, chaque composant joue un rôle essentiel dans le processus de décision commerciale de l'entrée à la sortie.
La stratégie repose fortement sur des configurations d'indicateurs, un réglage inapproprié des paramètres peut entraîner des signaux incorrects. De plus, de faibles signaux SNR près des points d'inflexion de la tendance peuvent provoquer des coups de fouet. Pour atténuer ces risques, l'optimisation des paramètres est recommandée ainsi que l'intégration d'autres indicateurs de confirmation pour améliorer la robustesse.
La stratégie peut être optimisée de manière dynamique en introduisant des algorithmes d'apprentissage automatique pour ajuster les paramètres en fonction des conditions actuelles du marché. En outre, l'intégration de plus de sources de données telles que les événements d'actualité, les données des médias sociaux, etc. peut aider à juger des points tournants du marché et à réduire les entrées tardives. De plus, la stratégie peut être étendue sur plusieurs délais ou instruments pour saisir plus d'opportunités de trading.
La stratégie
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("trend_hunter", overlay=true) length = input(20, title="ATR Length") numATRs = input(0.75, title="ATR Multiplier") atrs = ta.sma(ta.tr, length) * numATRs // Trend Filter smaPeriod = input(32, title="SMA Period") sma = ta.sma(close, smaPeriod) // MACD Filter macdShortTerm = input(12, title="MACD Short Term") macdLongTerm = input(26, title="MACD Long Term") macdSignalSmoothing = input(9, title="MACD Signal Smoothing") [macdLine, signalLine, _] = ta.macd(close, macdShortTerm, macdLongTerm, macdSignalSmoothing) // Long Entry with Trend and MACD Filter longCondition = close > sma and close[1] <= sma[1] and macdLine > signalLine strategy.entry("Long", strategy.long, stop=close + atrs, when=longCondition, comment="Long") // Short Entry with Trend and MACD Filter shortCondition = close < sma and close[1] >= sma[1] and macdLine < signalLine strategy.entry("Short", strategy.short, stop=close - atrs, when=shortCondition, comment="Short") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_area)