Elastische Volumen-gewichtete Kreuzstrategie für gleitende Durchschnitte

Schriftsteller:ChaoZhang, Datum: 2023-09-18 22:07:14
Tags:

Übersicht

Diese Strategie verwendet zwei EVWMA-Linien mit unterschiedlichen Perioden, um Crossovers zu generieren und Kauf- und Verkaufssignale zu erzeugen.

Strategie Logik

Die Strategie identifiziert Trendänderungen durch Berechnung und Kreuzung zweier EVWMA-Linien mit unterschiedlichen Perioden.

Insbesondere berechnet er zunächst zwei EVWMA-Linien:

  1. Kurzfristlinie m1, mit Periodenlänge1, Standard auf 5

  2. Langfristige Linie m2 mit Periodenlänge 2 bei Standard 40

Anschließend wird mit Hilfe der Crossover- und Crossunder-Funktionen die Crossover-Situation zwischen m1 und m2 ermittelt:

  • Wenn m1 über m2 kreuzt, erzeugt es ein Kaufsignal und führt eine lange Operation aus

  • Wenn m1 unter m2 fällt, erzeugt es ein Verkaufssignal und führt einen Kurzbetrieb aus.

Es ist zu beachten, dass die EVWMA den jüngsten Daten gegenüber dem einfachen gleitenden Durchschnitt mehr Gewicht verleiht.

data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume_price/nb_floating_shares)

Wo nz ((data[1]) der EVWMA-Wert des vorherigen Zeitraums ist, nb_floating_shares das Gesamtvolumen des Zeitraums, Volumen ist das Volumen des aktuellen Zeitraums und Volumen_Preis ist der Umsatz des aktuellen Zeitraums. Dies erreicht den Effekt der Zuweisung höherer Gewichte an die jüngsten Daten.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. EVWMA reagiert schneller auf Preisänderungen und verbessert die Gewinnchancen

  2. Übergang von doppelten EVWMA-Linien identifiziert Wendepunkte rechtzeitig

  3. Einfache Logik und einfache Umsetzung

  4. Anpassungsfähige Zeitrahmen zur Anpassung an unterschiedliche Marktbedingungen

  5. Keine komplexe Optimierung der Parameter erforderlich und einfach für den Live-Handel

Risiken und Lösungen

Diese Strategie birgt auch einige Risiken:

  1. Crossovers können übermäßige ungültige Signale erzeugen, ohne Marktlärm zu filtern

    • Lösung: Kombination mit Lautstärke oder anderen Indikatoren, um Signale zu filtern
  2. Schwierige Erkennung von Trendumkehrpunkten und Risiken fehlender Umkehrungen

    • Lösung: Periodenparameter anpassen oder andere Umkehrindikatoren hinzufügen
  3. Keine Stop-Loss- oder Gewinnsperre, keine effektive Risikokontrolle

    • Lösung: Festlegen Sie eine angemessene Stop-Loss- und Take-Profit-Ratio auf der Grundlage historischer Daten und Volatilität
  4. Unzureichende Parameteroptimierung führt zu falschen Perioden-Einstellungen

    • Lösung: Optimieren von Parametern durch Backtesting und Auswahl der richtigen Längen

Verbesserungsrichtlinien

Einige Richtungen zur Verbesserung der Strategie:

  1. Hinzufügen von Stop-Loss und Take-Profit zur strikten Risikokontrolle

  2. Optimieren Sie die Periodenlängen, um die besten Parameter zu finden

  3. Volumenfilter hinzufügen, um ungültige Trades zu reduzieren

  4. Kombination mit Umkehrindikatoren, um fehlende Umkehrungen zu vermeiden

  5. Dynamische Optimierung von Parametern auf Basis von Marktveränderungen

  6. Unterscheidung zwischen Bullen- und Bärenmärkten und Verwendung verschiedener Parameter

  7. Einführung von Modellen für maschinelles Lernen zur Bestimmung des Handelszeitpunkts auf der Grundlage von Big Data

Schlussfolgerung

Zusammenfassend kann diese EVWMA-Kreuzstrategie Trendschwankungen effektiv identifizieren und Handelssignale erzeugen, indem sie doppelte EVWMA-Linien berechnet und überquert. Die Logik ist einfach, aber es gibt Risiken und Verbesserungsrichtungen. Durch die Optimierung von Stop Loss, Parameterwahl, Integration anderer Indikatoren usw. kann die Strategie für den Live-Handel gestärkt werden. Insgesamt ist dies eine vorteilhafte Erforschung von gleitenden Durchschnitts-Kreuzstrategien und lohnt sich für weitere Forschung und Anwendung.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-08-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy("Elastic Volume Weighted Moving Average Cross Strategy", shorttitle="EVWMA Cross", overlay=true)
length1=input(5, title="EVWMA Short")
length2=input(40, title="EVWMA Long")

nbfs1=sum(volume, length1)
nbfs2=sum(volume, length2)

medianSrc=close

calc_evwma(price, length, nb_floating_shares) => 
    data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume*price/nb_floating_shares)
    data
    

m1=calc_evwma(medianSrc, length1, nbfs1)
m2=calc_evwma(medianSrc, length2, nbfs2)

if (crossover(m1, m2))
    strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE")

if (crossunder(m1, m2))
    strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE")

p1=plot(m1,color=orange,linewidth=2, title="evwma")
p2=plot(m2,color=orange,linewidth=2, title="evwma")

Mehr