Stratégie de négociation MACD basée sur EVWMA

Auteur:ChaoZhang est là., Date: 2024-01-22 10:50:25
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de trading MACD basée sur l'Elastic Volume Weighted Moving Average (EVWMA).

Principaux

L'indicateur EVWMA intègre des informations de volume dans le calcul des moyennes mobiles, permettant aux moyennes mobiles de refléter plus précisément les changements de prix. Les calculs de la ligne rapide et de la ligne lente dans cette stratégie sont tous deux basés sur l'EVWMA. Les paramètres de la ligne rapide sont plus sensibles pour capturer les fluctuations de prix à court terme; les paramètres de la ligne lente sont plus robustes pour filtrer un peu de bruit.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu'en tirant parti de la puissance de l'indicateur EVWMA, les paramètres de la stratégie MACD deviennent plus stables et les signaux de trading deviennent plus clairs.

Analyse des risques

Le principal risque de cette stratégie est que le MACD lui-même a un certain décalage et ne peut pas capturer rapidement les renversements de prix. En outre, les paramètres de paramètres de EVWMA affectent également la performance de la stratégie.

Pour atténuer les risques, les paramètres doivent être ajustés de manière appropriée pour avoir une différence modérée entre les lignes rapides et lentes. L'histogramme peut aider à juger si un ajustement des paramètres est nécessaire.

Directions d'optimisation

Les principaux aspects pour optimiser cette stratégie sont les suivants:

  1. Utiliser des techniques de réglage de paramètres adaptatifs pour ajuster automatiquement les paramètres EVWMA en fonction des conditions du marché afin d'assurer la clarté du signal.

  2. Améliorer les mécanismes de stop loss pour contrôler efficacement les pertes uniques.

  3. Incorporer d'autres indicateurs pour filtrer les faux signaux. Par exemple, combiner avec le volume pour déclencher uniquement des signaux lors de changements significatifs de prix.

  4. Optimiser les sélections de points d'entrée. Actuellement, la stratégie ouvre des positions sur les croisements de ligne zéro MACD.

Conclusion

Cette stratégie utilise les avantages de l'indicateur EVWMA pour construire une stratégie MACD simple et pratique. Il a une meilleure stabilité et adaptabilité. En même temps, il a également le problème de retard inhérent à MACD. Nous pouvons améliorer la robustesse de la stratégie grâce à l'optimisation adaptative des paramètres, la conception de stop loss, le filtrage des signaux et d'autres aspects.


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

//@version=4
strategy("QuantNomad - EVWMA MACD Strategy", shorttitle = "EVWMA MACD", overlay = false)

// Inputs
fast_sum_length = input(10, title = "Fast Sum Length",  type = input.integer)
slow_sum_length = input(20, title = "Slow Sum Length",  type = input.integer)
signal_length   = input(9,  title = "Signal Smoothing", type = input.integer, minval = 1, maxval = 50)

// Calculate Volume Period
fast_vol_period = sum(volume, fast_sum_length)
slow_vol_period = sum(volume, slow_sum_length)

// Calculate EVWMA
fast_evwma = 0.0
fast_evwma := ((fast_vol_period - volume) * nz(fast_evwma[1], close) + volume * close) / (fast_vol_period)

// Calculate EVWMA
slow_evwma = 0.0
slow_evwma := ((slow_vol_period - volume) * nz(slow_evwma[1], close) + volume * close) / (slow_vol_period)

// Calculate MACD
macd   = fast_evwma - slow_evwma
signal = ema(macd, signal_length)
hist   = macd - signal

// Plot 
plot(hist,   title = "Histogram", style = plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #EF5350) ), transp=0 )
plot(macd,   title = "MACD",      color = #0094ff, transp=0)
plot(signal, title = "Signal",    color = #ff6a00, transp=0)

// Strategy
strategy.entry("Long",   true, when = crossover(fast_evwma, slow_evwma))
strategy.entry("Short", false, when = crossunder(fast_evwma, slow_evwma))

Plus de