Cette stratégie utilise l'indicateur MACD pour déterminer la tendance de l'indicateur RSI, générant des signaux de trading.
La stratégie repose sur deux indicateurs principaux:
Indice de résistance Calcule le RSI régulier de 14 périodes.
MACD du RSI Calcule les valeurs MACD sur le RSI, avec par défaut MA rapide 12, MA lent 26, ligne de signal 9.
Lorsque le MACD du RSI se croise vers le haut, le croix dorée du MA rapide et lent, il détermine une tendance haussière et va long.
Quand le MACD descend, le MAC rapide et lent se croisent, il détermine une tendance à la baisse et va court.
Les moyennes mobiles exponentielles du MACD aident à déterminer la tendance à long terme du RSI lui-même, ce qui donne des signaux plus précis.
Les risques peuvent être réduits par:
La stratégie peut être améliorée par:
Test des combinaisons de paramètres RSI et MACD
Ajout d'une confirmation secondaire lorsque le MACD signale
Par exemple, les modèles de chandeliers, le volume, les bandes de Bollinger, etc.
Optimisation des arrêts pour les arrêts de retard
Ajout de règles de réentrée
Rétablir les positions après avoir atteint des arrêts si la tendance se poursuit
Ajustement de la taille des positions en fonction de la volatilité
Taille plus petite en cas de volatilité élevée, plus grande en cas de volatilité faible
Cette stratégie combine les indicateurs RSI et MACD pour se vérifier les uns les autres pour une détection de tendance plus précise et stable. Mais les paramètres doivent être optimisés et des filtres techniques ou des règles de trading supplémentaires sont nécessaires pour la confirmation, évitant ainsi des événements soudains.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "MACD of RSI", overlay = false) //////////////////////// RSI /////////////////////////// src = close, len = input(14, minval=1, title="Length") up = sma(max(change(src), 0), len) down = sma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //////////////////////// RSI ////////////////////////// //////////////// MACD //////////////////////////// sourcemacd = rsi fastLength = input(12, minval=1), slowLength=input(26,minval=1) signalLength=input(9,minval=1) fastMA = ema(sourcemacd, fastLength) slowMA = ema(sourcemacd, slowLength) macd = fastMA - slowMA signal = ema(macd, signalLength) delta=macd-signal swap1 = delta>0?green:red plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20) p1 = plot(macd,color=blue,title='MACD Line') p2 = plot(signal,color=red,title='Signal') fill(p1, p2, color=blue) hline(0) /////////////////////////MACD ////////////////////////// // Conditions longCond = na sellCond = na longCond := crossover(delta,0) sellCond := crossunder(delta,0) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( sellCond ) strategy.close("BUY")