
La stratégie est un système de trading de revers de tendance basé sur le décalage de la dynamique de la colonne de la MACD. Elle capte les signaux de revers du marché en analysant la relation entre les changements de la forme de la ligne K et les changements de dynamique de la colonne de la MACD. L’idée centrale de la stratégie est de faire un revers de marché lorsque le marché montre des signes de déclin de la dynamique, de sorte que la disposition soit anticipée lorsque la tendance est sur le point de se retourner.
La logique de négociation de la stratégie est divisée en deux directions: Conditions de vide: lorsque la ligne de couleur est plus grande (prix de clôture supérieur au prix d’ouverture) et que l’entité est plus grande que la ligne K précédente, et que le diagramme en forme de colonne MACD présente une tendance à la baisse pendant 3 cycles consécutifs, indiquant que la dynamique ascendante s’affaiblit, le système émet un signal de vide. Lorsque la ligne négative est plus grande (le prix de clôture est inférieur au prix d’ouverture) et que son entité est plus grande que la ligne K précédente, et que le diagramme en forme de colonne MACD présente une tendance à la hausse pendant 3 cycles consécutifs, indiquant que la dynamique baissière s’affaiblit, le système émet un signal de multiplication. La gestion des positions utilise un mécanisme de liquidation des signaux de l’adversaire, c’est-à-dire que lorsque des signaux de transaction dans la direction opposée apparaissent, la position actuelle est liquidée. La stratégie ne définit pas de stop-loss et de stop-loss, et dépend entièrement des signaux pour gérer les positions.
La stratégie est caractérisée par une simplicité d’utilisation et une clarté de signal. Bien qu’il existe un certain risque, la stabilité et la rentabilité de la stratégie peuvent être considérablement améliorées grâce à des mesures d’optimisation et de gestion des risques raisonnables. La stratégie est particulièrement adaptée à un environnement de marché marqué par des tendances et peut constituer un élément important du système de négociation.
/*backtest
start: 2024-11-10 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("MACD Momentum Reversal Strategy", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === MACD Calculation ===
fastLength = input.int(12, "MACD Fast Length")
slowLength = input.int(26, "MACD Slow Length")
signalLength = input.int(9, "MACD Signal Length")
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength)
// === Candle Properties ===
bodySize = math.abs(close - open)
prevBodySize = math.abs(close[1] - open[1])
candleBigger = bodySize > prevBodySize
bullishCandle = close > open
bearishCandle = close < open
// === MACD Momentum Conditions ===
// For bullish candles: if the MACD histogram (normally positive) is decreasing over the last 3 bars,
// then the bullish momentum is fading – a potential short signal.
macdLossBullish = (histLine[2] > histLine[1]) and (histLine[1] > histLine[0])
// For bearish candles: if the MACD histogram (normally negative) is increasing (moving closer to zero)
// over the last 3 bars, then the bearish momentum is fading – a potential long signal.
macdLossBearish = (histLine[2] < histLine[1]) and (histLine[1] < histLine[0])
// === Entry Conditions ===
// Short entry: Occurs when the current candle is bullish and larger than the previous candle,
// while the MACD histogram shows fading bullish momentum.
enterShort = bullishCandle and candleBigger and macdLossBullish
// Long entry: Occurs when the current candle is bearish and larger than the previous candle,
// while the MACD histogram shows fading bearish momentum.
enterLong = bearishCandle and candleBigger and macdLossBearish
// === Plot the MACD Histogram for Reference ===
plot(histLine, title="MACD Histogram", color=color.blue, style=plot.style_histogram)
// === Strategy Execution ===
// Enter positions based on conditions. There is no stop loss or take profit defined;
// positions remain open until an opposite signal occurs.
if (enterShort)
strategy.entry("Short", strategy.short)
if (enterLong)
strategy.entry("Long", strategy.long)
// Exit conditions: close an existing position when the opposite signal appears.
if (strategy.position_size > 0 and enterShort)
strategy.close("Long")
if (strategy.position_size < 0 and enterLong)
strategy.close("Short")