Stratégie de l'histogramme MACD du RSI

Auteur:ChaoZhang est là., Date: 2023-12-25 à 11h45
Les étiquettes:

img

Résumé

Cette stratégie génère des signaux de trading basés sur le MACD de l'indicateur RSI. Elle combine la capacité de l'indicateur RSI à juger des niveaux de surachat et de survente sur le marché, ainsi que l'avantage du MACD dans la détermination de la tendance du marché et des changements de momentum, pour concevoir une stratégie qui utilise plusieurs indicateurs pour fournir des signaux de trading.

La logique de la stratégie

L'indicateur RSI peut déterminer les conditions de surachat et de survente sur le marché, tandis que le MACD capte les changements de tendance et de dynamique du marché.

Plus précisément, la stratégie calcule d'abord l'indicateur RSI à 14 périodes. Ensuite, sur la base de l'indicateur RSI, l'indicateur MACD est calculé, y compris les EMA à 12 et 26 périodes, ainsi qu'une ligne de signal à 9 périodes. L'histogramme MACD est ensuite calculé.

Lorsque l'histogramme MACD dépasse 0, un signal d'achat est généré. Lorsque l'histogramme MACD dépasse 0, un signal de vente est déclenché.

Les avantages de la stratégie

Cette stratégie combine les forces des indicateurs RSI et MACD, permettant un jugement plus complet des conditions du marché, ce qui donne des signaux plus fiables.

  1. L'utilisation du RSI pour juger des niveaux de surachat/survente aide à la sélection des actions et à prévenir de fausses ruptures.

  2. Le jugement du MACD sur les changements de tendance et de dynamique rend les signaux commerciaux plus clairs.

  3. La combinaison du RSI et du MACD, avec des jugements basés sur plusieurs facteurs, aide à filtrer les faux signaux.

Risques liés à la stratégie

  1. Les paramètres du RSI et du MACD affectent les performances de la stratégie et nécessitent un ajustement et une optimisation.

  2. La combinaison de plusieurs indicateurs augmente la complexité de la stratégie et la probabilité d'erreurs.

  3. Les signaux de trading MACD peuvent être retardés et doivent être complétés par d'autres indicateurs.

Directions d'optimisation

  1. Optimiser les paramètres RSI et MACD pour trouver les meilleures combinaisons de paramètres.

  2. Incorporer d'autres indicateurs tels que KDJ, Bollinger Bands pour former un groupe d'indicateurs et améliorer la précision du signal.

  3. Incorporer des stratégies de stop loss pour contrôler les pertes par transaction.

  4. Optimiser la logique d'entrée et de sortie pour éviter les signaux contradictoires.

Conclusion

Cette stratégie utilise les forces combinées des indicateurs RSI et MACD pour former des signaux commerciaux, en jugeant les niveaux de surachat / survente tout en tenant compte des facteurs de tendance et de dynamique, filtrant efficacement les faux signaux et fournissant des signaux de qualité.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 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")

Plus de