Cette stratégie combine l'indicateur de convergence moyenne mobile (MACD) et l'indicateur de résistance relative (RSI) pour définir les conditions d'achat et de vente pour saisir les opportunités d'inversion.
Calculer l'indicateur MACD, y compris la ligne rapide, la ligne lente et la ligne de signal. Les croisements entre la ligne rapide et la ligne lente sont des signaux de trading.
Calculer l'indicateur RSI et définir les valeurs seuil de surachat et de survente.
Combinez les signaux croisés du MACD et les lectures de surachat/survente du RSI pour formuler les conditions d'achat et de vente:
Condition d'achat: la ligne rapide MACD franchit la ligne lente (croix dorée) tandis que l'indicateur RSI vient de reculer de la zone de surachat, signalant un renversement.
Condition de vente: la ligne rapide du MACD traverse la ligne lente (croix de mort) tandis que l'indicateur RSI pénètre dans la zone de surachat, signalant un renversement.
Cela permet d'utiliser les forces des deux indicateurs puissants pour acheter et vendre avec précision aux points de renversement.
Le MACD peut identifier les tendances et les opportunités de trading.
L'utilisation de deux indicateurs filtre les faux signaux qui peuvent se produire avec un seul indicateur.
Le MACD combiné avec le RSI permet d'acheter avant les renversements et de vendre après les renversements pour capturer les tours.
La stratégie a une fréquence modérée, suit les tendances et capte les retours en arrière de manière flexible.
Le MACD peut donner de faux signaux dans les marchés agités. Les paramètres du RSI doivent être optimisés pour éviter de faux signaux.
La volatilité à court terme peut entraîner l'arrêt des positions, ce qui entraîne des pertes.
Les paramètres RSI et MACD doivent être optimisés pour éviter trop ou trop peu de signaux.
Une gestion stricte des risques et de l'argent est cruciale pour le trading en direct.
Optimiser les paramètres de la ligne rapide/lente du MACD pour obtenir les meilleures combinaisons.
Optimiser les seuils de surachat/survente du RSI pour éviter les faux signaux.
Ajouter un stop loss pour contrôler le risque de transaction unique.
Considérez l'ajout de filtres tels que les bandes de Bollinger ou KDJ pour une confirmation supplémentaire.
Testez diverses stratégies d'entrée/sortie comme les ruptures ou les tendances suivantes.
Cette stratégie combine les atouts du MACD et du RSI pour les renversements. Mais l'ajustement des paramètres, le contrôle des risques et la gestion de l'argent sont essentiels pour la performance en direct. La flexibilité le rend adapté à différentes conditions de marché et vaut la peine d'être testé et suivi en direct.
/*backtest start: 2022-11-13 00:00:00 end: 2023-11-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // © sabirt strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI') //MACD Settings fastMA = input.int(title='Fast moving average', defval=12, minval=1) slowMA = input.int(title='Slow moving average', defval=26, minval=1) signalLength = input.int(9, minval=1) //RSI settings RSIOverSold = input.int(35, minval=1) RSIOverBought = input.int(80, minval=1) src = close len = input.int(14, minval=1, title='Length') up = ta.rma(math.max(ta.change(src), 0), len) down = ta.rma(-math.min(ta.change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought [currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength) [prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength) signal = ta.ema(currMacd, signalLength) avg_1 = math.avg(currMacd, signal) crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na avg_2 = math.avg(currMacd, signal) crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold) strategy.close('buy', when=crossoverBear and wasOverbought)