Cette stratégie est basée sur les indicateurs RSI et MACD, combinés avec des niveaux de support/résistance pour le jugement des signaux commerciaux.
La stratégie repose principalement sur deux indicateurs - RSI et MACD. L'indicateur RSI juge les statuts d'achat / survente, tandis que l'indicateur MACD détermine les statuts de tendance haussière / baissière. Il calcule d'abord la valeur du RSI sur 14 périodes, et fixe le seuil d'achat en survente à 70 et le seuil de survente à 30.
En outre, la stratégie calcule également les prix les plus élevés et les plus bas au cours des 100 dernières périodes en tant que niveaux de support/résistance. Lorsqu'un signal d'achat est déclenché, le prix doit être proche du niveau de support, c'est-à-dire à moins de 1% du niveau de support, pour émettre réellement un ordre d'achat. De même, lorsqu'un signal de vente est déclenché, le prix doit être inférieur de 1% au niveau de résistance pour émettre réellement un ordre de vente.
La stratégie combine l'analyse des tendances et la détection des niveaux de surachat/survente pour éviter de faux signaux basés sur un seul indicateur. En introduisant un filtre de support/résistance, elle peut réduire les mauvais trades dus à des rebonds près des niveaux S/R clés. La combinaison du MACD et du RSI peut identifier avec précision les mouvements de prix et les statuts OB/OS. Par rapport aux stratégies simples de moyenne mobile, cette stratégie peut capturer les tendances des prix à long terme plus flexiblement.
Les principaux risques de cette stratégie sont les suivants:
Il peut manquer la plupart des bénéfices dans les tendances fortes, car il a tendance à entrer après la fin de l'inversion.
Des paramètres RSI et MACD inappropriés peuvent provoquer des signaux erronés.
Une logique de détection S/R simple peut surestimer ou sous-estimer les zones S/R réelles.
Incapable de contrôler efficacement les pertes dans des conditions de marché extrêmes.
Pour faire face à ces risques, des méthodes telles que le MACD adaptatif, l'optimisation des paramètres du RSI, l'amélioration de l'identification S/R, la modélisation du régime du marché, etc. peuvent être utilisées pour améliorer la stratégie.
La stratégie peut être améliorée à partir des dimensions suivantes:
Mettre en place des mécanismes de stop loss, par exemple CANVAS
Utiliser le MACD adaptatif pour l'ajustement des paramètres dynamiques
Introduction d'une reconnaissance des modèles de prix pour une identification plus scientifique des S/R
Incorporer plus de données pour établir une logique de détection de l'état du marché pour utiliser différents paramètres de manière adaptative
Utiliser des algorithmes d'apprentissage automatique pour optimiser la stratégie de bout en bout
Grâce à ces améliorations, nous pouvons encore réduire le recours et améliorer la stabilité de la stratégie.
La stratégie intègre les indicateurs RSI et MACD pour déterminer les statuts OB/OS, et les échanges autour des niveaux de support/résistance, représentant une approche de suivi de tendance. En incorporant un filtre de support/résistance, le risque est réduit. L'avantage réside dans des signaux stables et un risque contrôlable adapté à la détention à long terme.
/*backtest start: 2023-12-28 00:00:00 end: 2024-01-04 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI + MACD with Support and Resistance", shorttitle="RSI_MACD_SR", overlay=true) // Input for RSI and MACD values rsiOverbought = input(70, title="RSI Overbought Threshold") rsiOversold = input(30, title="RSI Oversold Threshold") macdFastLength = input(12, title="MACD Fast Length") macdSlowLength = input(26, title="MACD Slow Length") macdSignalSmoothing = input(9, title="MACD Signal Smoothing") // Calculating RSI and MACD rsiValue = ta.rsi(close, 14) [macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing) // Support and Resistance support = ta.lowest(100) resistance = ta.highest(100) // Drawing support and resistance lines // line.new(x1=bar_index[0], y1=support, x2=bar_index[-1], y2=support, color=color.green, width=1) // line.new(x1=bar_index[0], y1=resistance, x2=bar_index[-1], y2=resistance, color=color.red, width=1) // Buy Condition: If RSI is oversold and MACD line crosses above the signal line // Additionally, check if price is near the support line longCondition = ta.crossover(macdLine, signalLine) and rsiValue < rsiOversold and (close - support) < (close * 0.01) strategy.entry("Long", strategy.long, when=longCondition, comment="Buy") // Sell Condition: If RSI is overbought and MACD line crosses below the signal line // Additionally, check if price is near the resistance line shortCondition = ta.crossunder(macdLine, signalLine) and rsiValue > rsiOverbought and (resistance - close) < (close * 0.01) strategy.entry("Short", strategy.short, when=shortCondition, comment="Sell") // Plot values on the chart for visualization plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")