Ehlers stochastische Zyklus quantitative Handelsstrategie


Erstellungsdatum: 2024-01-17 16:03:30 zuletzt geändert: 2024-01-17 16:03:30
Kopie: 0 Klicks: 793
1
konzentrieren Sie sich auf
1617
Anhänger

Ehlers stochastische Zyklus quantitative Handelsstrategie

Überblick

Die Ehrersche Zufalls-Zyklus-Strategie ist eine quantitative Handelsstrategie, die Ehrersche Zufalls-Zyklus-Indikatoren verwendet, um Handelssignale zu erzeugen. Die Strategie kombiniert die Vorteile von Zufalls- und Zyklus-Indikatoren und zielt darauf ab, die periodischen Chancen in den Märkten zu nutzen.

Strategieprinzip

Die Strategie baut zunächst einen Smoothed-Zyklus-Indikator auf und baut dann einen Zufallsindikator auf dessen Basis auf. Die Erzeugung eines Handelssignals wird durch die Kreuzung eines Moving Averages dieses Zufallsindikator-Wertes bestimmt.

Die Berechnungsmethode für den Smoothed-Zyklus-Indikator ist:

smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6

Der src ist die Eingabe von Preisdaten, wie z. B. der Schlusskurs. Der Indikator kombiniert den aktuellen Preis mit den Preisen der letzten 3 Zeiträume, um ein glattes Zyklussignal zu erstellen.

Basierend auf diesem Smoothed-Index kann dann der Zufallsindex-Zyklus berechnet werden:

cycle := (1 - .5 * alpha) * (1 - .5 * alpha) * 
           (smooth - 2 * smooth[1] + smooth[2]) + 
           2 * (1 - alpha) * cycle[1] - 
           (1 - alpha) * (1 - alpha) * cycle[2]

Die Berechnungsformel enthält die Differentialdifferenz der Zwei-Phasen-Signale nach der Glättung und die Werte der beiden vorherigen Zyklen. α ist der Glättungsfaktor, der die Gewichtung der neuen und alten Zyklen regelt.

Schließlich wird ein Zufallswert von 0-100 (value1) aus diesem Zyklus berechnet und ein Signalwert auf Basis des 10-Tage-Moving Averages von value1 erstellt. Das Signal wird ausgegeben, wenn das Signal über oder unter dem Moving Average liegt.

Strategische Vorteile

Die Strategie kombiniert die Vorteile von Randomisierungs- und Periodisierungsindikatoren. Im Vergleich zu einfachen Trendstrategien wie Moving Averages kann die Strategie die periodischen Chancen besser erfassen und so bessere Ergebnisse erzielen.

Die wichtigsten Vorteile sind:

  1. Zyklische Indikatoren erkennen die Kreislaufmuster, und die Zufallsindikatoren bieten xFB-Trading-Zeitpunkte
  2. Dual-Meter-Design, um falsche Signale wirksam zu filtern
  3. Anpassbare Parameter für unterschiedliche Marktumgebungen

Strategisches Risiko

Diese Strategie birgt folgende Risiken:

  1. Unzureichende Parameter-Einstellungen können zu hohen Transaktionsfrequenzen führen und zu höheren Transaktionsgebühren und Slip-Point-Kosten führen.
  2. Die unzureichende Bewältigung der stark schwankenden Marktpreise könnte zu erheblichen Verlusten führen.
  3. Die Periodenzähler sind stark abhängig von der Kurvenanpassung, eine falsche Anpassung kann zu falschen Signalen führen

Die Risiken können durch Optimierung der Parameter-Einstellungen, die Einstellung von Stop-Loss-Punkten und in Kombination mit anderen Filterindikatoren kontrolliert werden.

Richtung der Strategieoptimierung

Die Strategie kann auch in folgenden Richtungen optimiert werden:

  1. Filterung von Signalen in Verbindung mit anderen technischen Indikatoren, wie Brin-Band, RSI, etc., um falsche Signale zu reduzieren
  2. Anpassung an den Anpassungs-Exit-Mechanismus und dynamische Anpassung der Stop-Loss-Punkte an die Marktschwankungen
  3. Automatische Optimierung von Parametern mithilfe von Machine-Learning-Methoden, um sie dynamisch an den Markt anzupassen
  4. Optimierung der Kapitalnutzung und Effizienz der Kapitalnutzung durch Leverage, Profitabilität usw.

Zusammenfassen

Die Ehrers Random Cycle Strategy nutzt die Vorteile von Random Indicators und Periodic Indicators, um Risiken durch eine Dual-Signal-Design effektiv zu steuern und bessere Erträge in stärker periodischen Märkten zu erzielen. Durch weitere Optimierung kann die Strategie zu einer empfehlenswerten quantitativen Handelsstrategie werden.

Strategiequellcode
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ehlers Stochastic Cyber Cycle Strategy",overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1)
src = input(hl2, title = "Source") 
alpha = input(.07, title = "Alpha")
lag = input(9, title = "Lag")
smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6
len = input(8, title = "Stochastic len")
cycle = na
if na(cycle[7])
    cycle := (src - 2 * src[1] + src[2]) / 4
else
    cycle := (1 - .5 * alpha) * (1 - .5 * alpha) * (smooth - 2 * smooth[1] + smooth[2]) + 2 * (1 - alpha) * cycle[1] - (1 - alpha) * (1 - alpha) * cycle[2]

value1 = stoch(cycle, cycle, cycle, len) / 100
value2 = 2 * ((4 * value1 + 3 * value1[1] + 2 * value1[2] + value1[3]) / 10 - 0.5)

signal = value2
oppositeTrade = input(true)
barsSinceEntry = 0
barsSinceEntry := nz(barsSinceEntry[1]) + 1
if strategy.position_size == 0
    barsSinceEntry := 0
if (crossover(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossunder(signal, signal[1]))
    strategy.entry("Long", strategy.long)
    barsSinceEntry := 0
if (crossunder(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossover(signal, signal[1]))
    strategy.entry("Short", strategy.short)
    barsSinceEntry := 0
if strategy.openprofit < 0 and barsSinceEntry > 8
    strategy.close_all()
    barsSinceEntry := 0
    
    
plot(0, title="ZeroLine", color=gray) 
plotSrc = signal
cyclePlot = plot(plotSrc, title = "CyberCycle", color = blue)
triggerPlot = plot(plotSrc[1], title = "Trigger", color = green)
fill(cyclePlot, triggerPlot, color = plotSrc < plotSrc[1] ? red : lime, transp = 50)