Die Fisher Transform-Backteststrategie berechnet die Fisher-Transform der Preise, um Preisumkehrpunkte zu identifizieren und entsprechend Handelssignale zu generieren. Die Strategie verarbeitet Preise mit der Fisher-Transform-Formel, um nicht-gaussische Merkmale von Preisverteilungen zu entfernen, was zu einem standardisierten Indikator mit einer ungefähren Gauss-Verteilung führt. Die Strategie bestimmt Preisumkehrungen auf der Grundlage von Wendepunkten der Fisher-Transform-Kurve und erzeugt lange und kurze Signale.
Der Kern dieser Strategie besteht darin, die Preise mit der Fisher-Transformationsformel zu verarbeiten, um nicht-gaussische Merkmale natürlicher Preisverteilungen zu eliminieren.
y = 0,5 * ln (((1+x) / (((1-x))
Hier ist x der verarbeitete Preis, der ermittelt wird, indem zunächst die höchsten und niedrigsten Preise in den letzten Längeperioden mit den höchsten und niedrigsten Funktionen gefunden und dann wie folgt normalisiert werden:
x = (Preis - Mindestwert) / (Maximum - Mindestwert) - 0,5
Die auf diese Weise verarbeiteten Preise nähern sich einer Gauss-Verteilung. x wird dann in die Fisher-Transformationsformel eingefügt, um die Fisher-Transformationskurve zu erhalten.
Wenn sich die Fisher-Transformationskurve von positiv auf negativ dreht, wird ein Verkaufssignal erzeugt.
Die Fisher-Transformation entfernt nicht-gaussische Merkmale aus den Preisen, was zu besser verhaltenen, standardisierten Preisen und weniger falschen Signalen führt
Erfasst Preisumkehrpunkte und vermeidet Höhen und Tiefen
Flexible Parameteranpassung für die Stimmungsumkehrempfindlichkeit
Anpassungsfähige Richtungen, an verschiedene Marktumgebungen angepasst
Einfache Logik leicht zu verstehen und umzusetzen
Falsche Einstellungen der Parameter können Kurven verpassen oder falsche Signale erzeugen
Ein Ausrutschen im Live-Handel kann eine perfekte Signaldurchführung verhindern
Schwierig, Wende zu erkennen, wenn die Preise volatil sind
Schwierig bei Live-Handel umzusetzen und Umkehrungen zu bestätigen
Lösungen:
Optimieren von Parametern durch Anpassung der Länge
Eintrittskriterien entsprechend lockern, um Füllungen zu gewährleisten
Falschsignale, die andere Indikatoren kombinieren, filtern
Strenge Einhaltung der Vorschriften und Risikomanagement
Optimieren Sie den Parameter Länge, um die beste Kombination zu finden
Hinzufügen von Filtern, um falsche Signale zu vermeiden, z. B. gleitende Durchschnitte, Volatilitätsindikatoren usw.
Einbeziehung von Stop Loss in den Kontrollverlust pro Handel
Hinzufügen eines Wiedereintrittsmechanismus zur Verfolgung anhaltender Trends
Die Fisher-Transform-Backtest-Strategie identifiziert Preisumkehrpunkte, indem sie nicht-gaussische Preismerkmale entfernt. Es ist eine leicht umsetzbare Mittelumkehrstrategie. Ihre Vorteile liegen in flexiblen Parametern für das Einfangen von Kurven, während ihre Hauptschwäche die Schwierigkeit der Live-Implementierung mit der Notwendigkeit strenger Einstiegsregeln ist. Verschiedene Methoden können verwendet werden, um diese Strategie für die praktische Anwendbarkeit zu optimieren.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v2.0 22/12/2016 // Market prices do not have a Gaussian probability density function // as many traders think. Their probability curve is not bell-shaped. // But trader can create a nearly Gaussian PDF for prices by normalizing // them or creating a normalized indicator such as the relative strength // index and applying the Fisher transform. Such a transformed output // creates the peak swings as relatively rare events. // Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x)) // The sharp turning points of these peak swings clearly and unambiguously // identify price reversals in a timely manner. // // For signal used zero. // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Fisher Transform Indicator by Ehlers Backtest", shorttitle="Fisher Transform Indicator by Ehlers") Length = input(10, minval=1) reverse = input(false, title="Trade reverse") hline(0, color=blue) xHL2 = hl2 xMaxH = highest(xHL2, Length) xMinL = lowest(xHL2,Length) nValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1]) nValue2 = iff(nValue1 > .99, .999, iff(nValue1 < -.99, -.999, nValue1)) nFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1]) pos = iff(nFish > 0, 1, iff(nFish < 0, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nFish, color=green, title="Fisher") plot(nz(nFish[1]), color=red, title="Trigger")