Cette stratégie met en œuvre la tendance après la négociation sur l'indicateur MACD. Elle identifie la direction de la tendance à l'aide du MACD et avec un stop loss dynamique pour verrouiller les bénéfices.
Calculer l'indicateur MA rapide, MA lent et MACD. Le MA rapide utilise l'EMA à 12 périodes, le MA lent utilise l'EMA à 26 périodes.
Générer un signal d'achat lorsque le MACD traverse la ligne d'achat, générer un signal de vente lorsque le MACD traverse la ligne de vente.
Le stop loss initial est fixé à 95% du prix d'entrée et augmentera à mesure que le prix se déplace.
Position de fermeture lorsque le stop loss est déclenché ou que le signal de retour apparaît.
L'utilisation du MACD pour identifier la direction de la tendance peut suivre efficacement les tendances.
Le stop loss dynamique peut bloquer continuellement les bénéfices et éviter des pertes accrues.
La logique de la stratégie est simple et claire, facile à comprendre et automatisée pour le trading quantitatif.
Le MACD a un effet de retard, peut manquer un renversement de tendance à court terme.
Un stop-loss trop lâche peut manquer certains bénéfices, trop serré peut s'arrêter tôt.
Les paramètres MACD et les lignes d'achat/vente nécessitent des tests et une optimisation constants.
Il fonctionne mieux sur un marché tendance, peut avoir des pertes sur un marché houleux.
Optimiser les paramètres MACD pour trouver la meilleure combinaison.
Testez différentes méthodes de stop loss, comme les points fixes, basées sur ATR, etc.
Ajouter des conditions de filtrage à l'aide d'autres indicateurs pour éviter les faux signaux, par exemple les bandes de Bollinger, le RSI, etc.
Combiner avec les outils d'identification des tendances, ajuster dynamiquement les paramètres de stratégie basés sur la tendance par rapport au marché à fourchette.
La stratégie a une logique claire d'utiliser le MACD pour suivre les tendances et le stop loss dynamique pour verrouiller les bénéfices. Il peut effectivement suivre les marchés en tendance. Mais le MACD a un problème en retard et les points de stop loss doivent être optimisés. L'étape suivante consiste à tester davantage les paramètres, à optimiser le mécanisme de stop loss, à ajouter des filtres avec d'autres indicateurs, pour le rendre robuste dans différentes conditions de marché, améliorant la stabilité.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(shorttitle = "EURUSD MACD", title = "EURUSD MACD") fastMA = input(title="Fast moving average", defval = 12, minval = 7) slowMA = input(title="Slow moving average", defval = 26, minval = 7) lastColor = yellow [currMacd,_,_] = macd(close[0], fastMA, slowMA, 9) [prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9) plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red plot(currMacd, style = histogram, color = plotColor, linewidth = 3) plot(0, title = "Zero line", linewidth = 1, color = gray) //MACD // Getting inputs fast_length = input(title="Fast Length", defval=12) slow_length = input(title="Slow Length", defval=26) src = input(title="Source", defval=close) signal_length = input(title="Signal Smoothing", minval = 1, maxval = 50, defval =9) sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=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=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) ///END OF MACD //Long and Close Long Lines linebuy = input(title="Enter Long", type=float, defval=-0.0002) linesell = input(title="Close Long", type=float, defval=0.0001) //Plot Long and Close Long Lines plot(linebuy,color=green),plot(linesell,color=red) //Stop Loss Input sl_inp = input(0.05, title='Stop Loss %', type=float)/100 //Order Conditions longCond = crossover(currMacd, linebuy) exitLong = crossover(currMacd, linesell) stop_level = strategy.position_avg_price * (1 - sl_inp) //Order Entries strategy.entry("long", strategy.long, when=longCond==true) strategy.close("long", when=exitLong==true) strategy.exit("Stop Loss", stop=stop_level)