Zeitreihe Adaptive dynamische Schwellenstrategie auf Basis von Eigenkapitaldaten

Schriftsteller:ChaoZhang, Datum: 2024-04-01 10:48:52
Tags:

img

Übersicht

Diese Strategie basiert auf den Zeitreihendaten des Nettovermögenswerts von Aktien oder anderen Finanzanlagen. Durch die dynamische Berechnung des Effizienzverhältnisses (ER) als Glättungsfaktor des exponentiellen gleitenden Durchschnitts (EMA) passt sie adaptiv die oberen und unteren Bands an, um Kauf- und Verkaufssignale auszulösen. Die Hauptidee dieser Strategie besteht darin, alle Informationen in den Nettovermögenswertdaten selbst zu verwenden, indem die Komplexität der Veränderungen des Nettovermögenswerts (ER) berechnet wird, um den EMA-Gleichungsfaktor dynamisch anzupassen und dann die dynamisch wechselnden oberen und unteren Bands zu erhalten. Wenn der Preis durch das obere Band bricht, öffnet er eine Long-Position, und wenn er durch das untere Band bricht, schließt er die Position.

Strategieprinzip

  1. Berechnen Sie die Effizienzquote (ER) der Daten zum Nettovermögenswert, d. h. das Verhältnis der Veränderung des Nettovermögenswerts zur Gesamtänderung. Je kleiner der ER-Wert, desto stabiler ändert sich der Nettovermögenswert; je größer der ER-Wert, desto dramatischer ändert sich der Nettovermögenswert.
  2. Verwenden Sie ER als Glättungsfaktor alpha der Pine_ema-Funktion, um dynamisch den EMA-Mittelwert und die absolute Abweichung des Nettovermögenswerts zu berechnen.
  3. Die absolute Abweichung vom EMA-Mittelwert wird addiert und abgezogen, um die dynamisch wechselnden oberen und unteren Bands zu erhalten.
  4. Wenn der aktuelle Vermögenswert den oberen Bereich überschreitet, eröffnen Sie eine Longposition und schließen Sie die Position, wenn er den unteren Bereich überschreitet.

Strategische Vorteile

  1. Es nutzt alle Informationen, die in den Zeitreihendaten des Nettovermögenswerts enthalten sind, vollständig, ohne dass Parameter festgelegt und optimiert werden müssen.
  2. Durch die dynamische Berechnung des ER zur Anpassung des EMA-Gleichungsfaktors kann es sich an die Komplexität der Veränderungen des Nettovermögenswerts anpassen und flexibel auf Marktveränderungen reagieren.
  3. Im Vergleich zur traditionellen EMA mit festen Parametern kann die dynamische EMA die Anzahl der Geschäfte und die Haltedauer wirksam reduzieren und damit die Transaktionskosten und -risiken senken.
  4. Im Vergleich zu Buy and Hold kann diese Strategie die maximale Auslastung um das 2- bis 3-fache reduzieren oder die Rendite bei gleicher Auslastung um das 2- bis 3-fache erhöhen.
  5. Es kann leicht auf die Kombination mehrerer Strategien angewendet werden, um den Zweck des automatischen Ein-/Ausschaltens von Strategien zu erreichen.

Strategische Risiken

  1. Diese Strategie basiert auf den Zeitreihendaten des Nettovermögenswerts. Bei Situationen, in denen sich die Kursentwicklung grundlegend umkehrt, kann die Geschwindigkeit, mit der die Schließung von Positionen ausgelöst wird, langsamer sein, was sich auf die Rendite auswirkt.
  2. Obwohl diese Strategie die Parameter anpassungsfähig anpassen kann, muss ihre Anpassungsfähigkeit an extreme Marktbedingungen weiter untersucht werden.
  3. Diese Strategie konzentriert sich derzeit hauptsächlich auf Long-Positionen und muss für Short-Positionen weiter verbessert werden.
  4. In der Praxis stellt diese Strategie höhere Anforderungen an die Qualität der ausgewählten Ziele und erfordert die Auswahl von Zielen mit langfristigen Aufwärtstrends.

Strategieoptimierungsrichtlinien

  1. Es sollte in Betracht gezogen werden, die Berechnungsmethode für die ER weiter zu optimieren, mehr Indikatoren einzuführen, die die Merkmale der Veränderungen des Nettovermögenswerts widerspiegeln, und die Robustheit und Wirksamkeit der ER zu verbessern.
  2. Die Eröffnungs- und Schlusskonditionen sollten weiter verfeinert werden, z. B. die Hinzufügung von Trailing-Stop-Loss, Prozentsatz-Stop-Loss usw. werden in Betracht gezogen, um die Rentabilität und Risikobereitschaft der Strategie zu verbessern.
  3. Für verschiedene Ziele und Marktumgebungen die Parameter optimieren und die Strategie anpassungsfähig anpassen, um die Vielseitigkeit der Strategie zu verbessern.
  4. Diese Strategie mit anderen Strategien (z. B. Trendverfolgung, Mittelumkehrung usw.) kombinieren, um die Vorteile verschiedener Strategien zu nutzen und die Robustheit und Rentabilität des Portfolios zu verbessern.

Zusammenfassung

Diese Strategie berechnet dynamisch die Effizienzquote (ER) als Glättungsfaktor des exponentiellen gleitenden Durchschnitts (EMA), passt die oberen und unteren Bands anpassungsfähig an und löst Kauf- und Verkaufssignale aus. Diese Strategie nutzt die Informationen in den Zeitreihendaten des Nettovermögenswerts voll aus, ohne dass zu viele Parameter-Einstellungen und -optimierungen erforderlich sind, die Methode ist einfach und natürlich und kann flexibel auf Marktveränderungen reagieren und Abzüge effektiv kontrollieren. Die Anpassungsfähigkeit dieser Strategie an extreme Marktbedingungen muss jedoch weiter untersucht werden, und die Auswahl von Zielen in praktischen Anwendungen sollte beachtet werden. In Zukunft können wir die Strategie aus den Aspekten der Berechnung, Eröffnungs- und Schließbedingungen, Parameteroptimierung, Kombinationsstrategie usw. weiter optimieren und verbessern, um die Robustheit und Rentabilität der Strategie zu verbessern.


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

//@version=4
strategy('Equity control', 'EC')
// study('Exponential bands', 'EB', overlay = true)


er(src) =>
    var start = src
    var total = 0.0

    total += abs(src - nz(src[1], src))
    net    = abs(src - start          )
    
    net / total

pine_ema(src, alpha) =>
    mean = 0.0
    dev  = 0.0

    mean := na(mean[1]) ? src : (1 - alpha) * mean[1] + alpha *     src
    dev  := na(dev [1]) ? 0   : (1 - alpha) * dev [1] + alpha * abs(src - mean)

    [mean, dev]


src = input(close)


a           = er      (src   )
[mean, dev] = pine_ema(src, a)

dev_lower = mean - dev
dev_upper = mean + dev


// plot(dev_lower, 'lower deviation', color.silver, 2, plot.style_stepline)
// plot(mean     , 'basis'          , color.purple, 1, plot.style_stepline)
// plot(dev_upper, 'upper deviation', color.silver, 2, plot.style_stepline)


if src > dev_upper
    strategy.entry('event', true, comment = 'on')
if src < dev_lower
    strategy.close('event', comment = 'off')


plot(strategy.equity)

//bigDope

Mehr