Tendance du MACD à la suite de la stratégie

Auteur:ChaoZhang est là., Date: 2023-11-16 17:42:09 Je vous en prie.
Les étiquettes:

img

Résumé

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.

La logique de la stratégie

  1. 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.

  2. 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.

  3. Le stop loss initial est fixé à 95% du prix d'entrée et augmentera à mesure que le prix se déplace.

  4. Position de fermeture lorsque le stop loss est déclenché ou que le signal de retour apparaît.

Analyse des avantages

  1. L'utilisation du MACD pour identifier la direction de la tendance peut suivre efficacement les tendances.

  2. Le stop loss dynamique peut bloquer continuellement les bénéfices et éviter des pertes accrues.

  3. La logique de la stratégie est simple et claire, facile à comprendre et automatisée pour le trading quantitatif.

Analyse des risques

  1. Le MACD a un effet de retard, peut manquer un renversement de tendance à court terme.

  2. Un stop-loss trop lâche peut manquer certains bénéfices, trop serré peut s'arrêter tôt.

  3. Les paramètres MACD et les lignes d'achat/vente nécessitent des tests et une optimisation constants.

  4. Il fonctionne mieux sur un marché tendance, peut avoir des pertes sur un marché houleux.

Directions d'optimisation

  1. Optimiser les paramètres MACD pour trouver la meilleure combinaison.

  2. Testez différentes méthodes de stop loss, comme les points fixes, basées sur ATR, etc.

  3. Ajouter des conditions de filtrage à l'aide d'autres indicateurs pour éviter les faux signaux, par exemple les bandes de Bollinger, le RSI, etc.

  4. 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.

Résumé

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)

Plus de