Übersicht
Diese Strategie verwendet mehrere harmonische gleitende Durchschnitte, um Handelssignale zu konstruieren. Sie berechnet zuerst die harmonischen gleitenden Durchschnitte von der 1. bis 6. Ordnung und kombiniert diese gleitenden Durchschnitte dann, um doppelte Long/Short-Handelssignale zu erstellen. Sie geht kurz, wenn die kurzfristige Signallinie unterhalb der langfristigen überschreitet, und geht lang, wenn die kurzfristige Signallinie überschreitet.
Strategie Logik
Die Strategie definiert zunächst eine harm_average-Funktion, um den harmonischen gleitenden Durchschnitt der n-Perioden zu berechnen. Dann berechnet sie die harmonischen gleitenden Durchschnitte von 1. bis 6. Ordnung, nämlich T1 bis T6. Unter ihnen ist T1 der 3-Perioden-harmonische gleitende Durchschnitt, T2 der 3-Perioden-harmonische gleitende Durchschnitt von T1 und so weiter.
Anschließend wird eine Balance-Kurve konstruiert, die synthetisch die Umkehrung der kubischen harmonischen gleitenden Durchschnitte von T1 bis T6 berücksichtigt.
Schließlich baut es nach T1 bis T6 doppelte Long/Short-Cross-Trading-Signale auf, wobei X1 das Minimum von T1, T2 und T3 und X2 das Maximum von T4, T5 und T6 annimmt.
Analyse der Vorteile
Die Verwendung mehrerer harmonischer gleitender Durchschnitte kann Marktlärm effektiv filtern und die Signalqualität verbessern
Das Aufbau von doppelten Long/Short-Handelssignalen kann Trendwendepunkte rechtzeitig erfassen
Die Balance-Kurve berücksichtigt synthetisch mehrere Zeitrahmen, die die Trendrichtung genau beurteilen können.
Die Einführung der Quadratdurchschnittswerte kann die Rolle der Zwischenvariablen weiter hervorheben und die Stabilität der Strategie verbessern
Risikoanalyse
Harmonische Durchschnitte selbst haben eine hohe Verzögerung, die kurzfristige Umkehrmöglichkeiten verpassen kann
Übermäßige Optimierung mit mehreren Durchschnittswerten kann die Robustheit der Strategie verringern
Bei Würfelrechnungen kann das mittlere Rauschen bis zu einem gewissen Grad verstärkt werden, was zu bestimmten falschen Signalen führt
Doppelkreuzungen haben eine gewisse Verzögerung und können keine Wendepunkte rechtzeitig erfassen.
Optimierungsrichtlinien
Es können mehrere Arten oder höhere Ordnungen harmonischer Durchschnitte erprobt werden.
Einführung dynamischer Anpassung der Durchschnittstage zur Optimierung des Durchschnittssystems
Verschiedene Leistungsparameter wie Quadrate und Logs testen
Einbeziehung weiterer Hilfsindikatoren zur Überprüfung der Signalqualität
Zusammenfassung
Diese Strategie verwendet ein mehrfaches harmonisches Durchschnittssystem, um doppelte Long/Short-Handelssignale zu konstruieren. Im Vergleich zu einzelnen Durchschnittssystemen kann diese Strategie Trends besser identifizieren und Lärm filtern. In der Zwischenzeit können die doppelten Kreuzungen auch Marktturnpunkte rechtzeitig erfassen. Allerdings führen die mehrfachen Durchschnitts- und Kubenberechnungen auch eine gewisse Verzögerung und Lärmverstärkung ein. In Zukunft kann die Einführung dynamischer Parameter-Tuning und mehr Hilfsindikatoren die Stabilität und Aktualität der Strategie verbessern.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Harmonic System Strategy", overlay=true) harm_average(x,y,z) =>3 / (1 / x + 1 / y + 1 / z) T1 = harm_average(close[1], close[2], close[3]) T2 = harm_average(T1, T1[1], T1[2]) T3 = harm_average(T2, T2[1], T2[2]) T4 = harm_average(T3, T3[1], T3[2]) T5 = harm_average(T4, T4[1], T4[2]) T6 = harm_average(T5, T5[1], T5[2]) Balance = 18 / (1 / T1 * 3 + 1 / T2 * 3 + 1 / T3 * 3 + 1 / T4 * 3 + 1 / T5 * 3 + 1 / T6 * 3) plot(T1,linewidth=2, color=color.green,title="T1") plot(T2,linewidth=1, color=color.blue,title="T2") plot(T3,linewidth=1, color=color.blue,title="T3") plot(Balance,linewidth=2, color=color.black,title="Balance") plot(T4,linewidth=1, color=color.blue,title="T4") plot(T5,linewidth=1, color=color.blue,title="T5") plot(T6,linewidth=2, color=color.red,title="T6") X1 = min(min(T1,T2),T3) X2 = max(max(T4,T5),T6) X3 = min(T1,T2) X4 = max(T3,T4) Buy=crossover(X1,X2) Sell=crossunder(X3,X4) if crossover(X1,X2) strategy.entry("Long", strategy.long, comment="Long") if crossunder(X3,X4) strategy.entry("Short", strategy.short, comment="Short")