Cette stratégie prend des décisions de trading basées sur la tendance de l'histogramme MACD

Auteur:ChaoZhang est là., Date: 2024-01-25 14h31 et 57 min
Les étiquettes:

img

Résumé

Cette stratégie prend des décisions commerciales basées sur la tendance de l'histogramme MACD. Elle utilise les tendances à la hausse et à la baisse de l'histogramme pour générer des signaux d'achat et de vente. Lorsque l'histogramme continue à augmenter ou à diminuer pendant une certaine période, des signaux correspondants sont générés.

La logique de la stratégie

La stratégie utilise la ligne rapide, la ligne lente et l'histogramme de l'indicateur MACD. Comptez d'abord l'EMA rapide et l'EMA lente. Soustrayez ensuite l'EMA lente de l'EMA rapide pour obtenir le MACD et soustrayez le signal qui est la moyenne mobile du MACD pour obtenir l'histogramme.

Lorsque l'histogramme continue à augmenter pour la période définie, un signal d'achat est généré. Cela indique que le MACD accélère pour franchir sa ligne de signal vers le haut, prédisant que les prix pourraient augmenter.

Lorsque l'histogramme continue de baisser pour la période définie, un signal de vente est généré. Cela indique que le MACD accélère pour franchir sa ligne de signal vers le bas, prédisant que les prix peuvent chuter.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. Utilisant la caractéristique de tendance de l'histogramme MACD, il peut capturer les points tournants des variations de prix et améliorer la rentabilité.

  2. En combinaison avec la condition d'une hausse ou d'une baisse consécutive de l'histogramme, certaines transactions bruyantes peuvent être filtrées pour réduire les pertes inutiles.

  3. Permettant la personnalisation des paramètres MACD et de la période de tendance de l'histogramme, il peut être ajusté pour s'adapter à différents produits et sessions de négociation.

  4. La logique de la stratégie est simple et claire, facile à comprendre et à modifier, et également pratique à combiner avec d'autres indicateurs ou stratégies.

Analyse des risques

La stratégie comporte également certains risques:

  1. Les indicateurs de tendance doivent être combinés pour filtrer.

  2. Après une hausse ou une baisse de l'histogramme, la ligne MACD peut ne pas réussir à franchir la ligne de signal, ne pouvant pas sortir avec profit.

  3. Le coût de négociation et le glissement ne sont pas pris en compte.

  4. Les paramètres doivent être optimisés pour les produits et les sessions.

Ces risques peuvent être contrôlés et réduits par des méthodes telles que la combinaison avec des indicateurs de tendance, la définition d'un mécanisme de stop loss, l'optimisation des paramètres, etc.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Combiner d'autres indicateurs pour déterminer la direction générale de la tendance, en évitant de négocier dans des fourchettes oscillantes.

  2. Ajoutez un mécanisme de stop loss, par exemple un stop loss lorsque le MACD rompt à nouveau la ligne de signal vers le bas.

  3. Optimiser les paramètres du MACD pour qu'ils s'adaptent aux produits de fréquences différentes, par exemple raccourcir les paramètres de période pour les données à haute fréquence.

  4. Optimiser la période minimale de hausse ou de baisse d'histogramme consécutif, équilibrant la fréquence et la fiabilité du signal.

  5. Essayez la logique des signaux de suivi après l'échec de l'évasion, c'est-à-dire le signal de suivi inverse après l'inversion d'histogramme.

  6. Combiner d'autres indicateurs tels que les indicateurs de volume ou de volatilité pour mesurer la chaleur du marché et filtrer les signaux.

Conclusion

En conclusion, la stratégie de tendance de l'histogramme MACD réalise le jugement des points tournants du changement de prix en capturant les changements de tendance de l'histogramme. La combinaison de l'optimisation des paramètres et des indicateurs de combinaison peut filtrer efficacement les mauvais signaux.


/*backtest
start: 2023-01-18 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//study(title="Histogram Strategy by Sedkur", shorttitle="Histogram Strategy by Sedkur")
strategy (title="Histogram Trends Strategy by Sedkur", shorttitle="Histogram Trends Strategy by Sedkur")


/// Getting inputs
dyear = input(title="Year", type=input.integer, defval=2017, minval=1950, maxval=2500)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
hist_length = input(title="Trend of Histogram Number", type=input.integer, defval=1, minval=1, maxval=100)
//buyh = input(title="Buy histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
//sellh = input(title="Sell histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

/// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
//plot(macd, title="MACD", color=col_macd, transp=0)
//plot(signal, title="Signal", color=col_signal, transp=0)

//bullish = hist[1] <= hist and buyh<=hist?true:false
//bearish = hist[1] >= hist and sellh>=hist?true:false
bull=0
bear=0


for i=0 to hist_length
    if (hist[i+1] <= hist[i])
        bull:=bull+1
bullish = bull==hist_length+1?true:false   

for j=0 to hist_length
    if (hist[j+1] >= hist[j])
        bear:=bear+1
bearish = bear==hist_length+1?true:false 



//bullish = hist[1] <= hist and hist[2] <= hist and hist[3] <= hist and hist[4] <= hist and hist[5] <= hist?true:false
//bearish = hist[1] >= hist and hist[2] >= hist and hist[3] >= hist and hist[4] >= hist and hist[5] >= hist?true:false

strategy.entry("buy", strategy.long, comment="buy", when = bullish and year>=dyear)
strategy.entry("sell", strategy.short, comment="sell", when = bearish and year>=dyear)


Plus de