EVWMA-basierte MACD-Handelstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-22 10:50:25
Tags:

img

Übersicht

Diese Strategie ist eine MACD-Handelsstrategie, die auf dem Elastic Volume Weighted Moving Average (EVWMA) basiert. Sie nutzt die Vorteile von EVWMA und entwirft eine Strategie mit klaren Handelssignalen und starker Praktikabilität.

Grundsätze

Der EVWMA-Indikator enthält Volumeninformationen in die Berechnung der gleitenden Durchschnitte, so dass gleitende Durchschnitte die Preisänderungen genauer widerspiegeln können. Die Berechnungen der schnellen Linie und der langsamen Linie in dieser Strategie basieren beide auf EVWMA. Die Parameter-Einstellungen der schnellen Linie sind empfindlicher, um kurzfristige Preisschwankungen zu erfassen; die Parameter-Einstellungen der langsamen Linie sind robuster, um etwas Rauschen auszufiltern. Der von den beiden EVWMAs gebildete MACD löst lange und kurze Signale beim Crossover aus, und das Histogramm bietet visuell verbesserte Handelsanfragen.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass durch die Nutzung der Leistung des EVWMA-Indikators die Parameter-Einstellungen der MACD-Strategie stabiler werden und die Handelssignale klarer werden. Im Vergleich zu einfachen gleitenden Durchschnitten kann EVWMA Markttrendänderungen besser erfassen. Dies macht die Strategie anpassungsfähiger, um in verschiedenen Marktumgebungen stabil zu arbeiten.

Risikoanalyse

Das Hauptrisiko dieser Strategie besteht darin, dass der MACD selbst eine gewisse Verzögerung hat und Preisumkehrungen nicht sofort erfassen kann. Darüber hinaus beeinflussen die Parameter-Einstellungen des EVWMA auch die Strategieleistung. Wenn die Parameter der schnellen und langsamen Linie nicht richtig eingestellt sind, werden die Handelssignale chaotisch sein und die Rentabilität beeinträchtigen.

Um Risiken zu mindern, sollten die Parameter entsprechend angepasst werden, um einen moderaten Unterschied zwischen den schnellen und langsamen Linien zu haben. Das Histogramm kann dabei helfen zu beurteilen, ob eine Parameteranpassung erforderlich ist. Darüber hinaus können Stop-Loss-Strategien auch entwickelt werden, um übermäßig große einzelne Verluste zu vermeiden.

Optimierungsrichtlinien

Zu den wichtigsten Aspekten für die Optimierung dieser Strategie gehören:

  1. Verwenden Sie adaptive Parameter-Einstellverfahren, um die EVWMA-Parameter automatisch an die Marktbedingungen anzupassen, um die Signalklarheit zu gewährleisten.

  2. Erhöhung der Stop-Loss-Mechanismen zur wirksamen Kontrolle einzelner Verluste.

  3. Einbeziehen Sie andere Indikatoren, um falsche Signale zu filtern, z. B. kombinieren Sie sie mit dem Volumen, um nur Signale bei signifikanten Preisänderungen auszulösen.

  4. Optimieren Sie die Einstiegspunktauswahl. Derzeit eröffnet die Strategie Positionen auf MACD-Nulllinie-Kreuzungen. Es kann untersucht werden, ob die Divergenz besser funktioniert.

Schlussfolgerung

Diese Strategie nutzt die Vorteile des EVWMA-Indikators, um eine einfache und praktische MACD-Strategie aufzubauen. Sie hat eine bessere Stabilität und Anpassungsfähigkeit. Gleichzeitig hat sie auch das dem MACD innewohnende Verzögerungsproblem. Wir können die Robustheit der Strategie durch adaptive Parameteroptimierung, Stop-Loss-Design, Signalfilterung und andere Aspekte verbessern.


/*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))

Mehr