
La stratégie prend ses décisions de négociation en fonction de l’Histogramme de l’indicateur MACD. Elle utilise les tendances haussières et baissières de l’Histogramme pour générer des signaux d’achat et de vente.
La stratégie utilise les lignes rapides, lentes et histogrammes de l’indicateur MACD. On calcule d’abord l’EMA rapides et l’EMA lentes.
Un signal d’achat est généré lorsque l’Histogramme atteint sa période de tendance haussière, ce qui indique que le MACD est en train d’accélérer vers le haut pour franchir sa ligne de signal et prédire une hausse des prix.
Le histogramme génère un signal de vente lorsque la tendance baissière continue d’atteindre la période définie. Cela signifie que le MACD accélère vers le bas au-delà de sa ligne de signal et prédit que le prix pourrait baisser.
Cette stratégie présente les avantages suivants:
L’histogramme MACD utilise la tendance pour saisir les points de basculement des variations de prix et améliorer la probabilité de profit.
La combinaison de conditions cycliques avec une augmentation ou une diminution continue de l’histogramme permet de filtrer une partie de la transaction de bruit et de réduire les pertes inutiles.
Permet de personnaliser les paramètres MACD et les cycles de tendance de l’histogramme, qui peuvent être ajustés pour s’adapter à différentes variétés et périodes de négociation.
La logique de la stratégie est simple et claire, facile à comprendre et à modifier, et facile à utiliser avec d’autres indicateurs ou combinaisons de stratégies.
Cette stratégie comporte aussi des risques:
Les signaux erronés peuvent être générés lorsque le prix est dans la zone de choc et nécessitent un filtrage associé à des indicateurs de tendance.
Une fois que l’histogramme a augmenté ou diminué, la ligne MACD peut ne pas être en mesure de franchir la ligne de signal, ne pas être en mesure d’obtenir une sortie de profit, et un arrêt de perte est nécessaire pour contrôler le risque.
Les gains en temps réel peuvent être réduits sans tenir compte des coûts de transaction et des problèmes de transaction réelle tels que les points de glissement.
Des paramètres mal définis (par exemple, cycle MACD, cycle de tendance Histogram, etc.) peuvent entraîner une mauvaise efficacité de la stratégie, nécessitant une optimisation pour la variété et la période.
Ces risques peuvent être contrôlés et atténués par des méthodes telles que la combinaison avec des indicateurs de tendance, la mise en place de mécanismes de stop loss et l’optimisation des paramètres.
Cette stratégie peut être optimisée dans les directions suivantes:
Combinez avec d’autres indicateurs pour déterminer la direction générale de la tendance et éviter les zones de choc. Par exemple, la ligne 20 pour déterminer la tendance de la ligne moyenne et longue.
Augmentation des mécanismes d’arrêt des pertes. Par exemple, l’arrêt des pertes lorsque le MACD tombe à nouveau sur la ligne de signal.
Optimiser les paramètres MACD pour les variétés de différentes périodes. Par exemple, les paramètres de périodes peuvent être raccourcis pour les données à haute fréquence.
Optimiser le nombre minimum de cycles de montée ou de descente d’un Histogramme, équilibrant la fréquence et la fiabilité du signal.
La logique de la stratégie de suivi du signal après l’échec de la tentative de rupture.
Combiné avec d’autres indicateurs, tels que l’indicateur de quantité d’énergie, l’indicateur de volatilité, etc., pour juger de la chaleur du marché, filtrer les signaux.
La stratégie MACD Histogram Trend permet de juger les points de basculement des variations de prix en capturant les changements de tendance de l’histogramme. Combinée à l’optimisation des paramètres et au jugement des indicateurs combinés, elle permet d’éliminer efficacement les signaux erronés.
/*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)