Fisher-Transform-Backtest-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-04 13:43:05
Tags:

img

Übersicht

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.

Strategieprinzip

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.

Analyse der Vorteile

  1. Die Fisher-Transformation entfernt nicht-gaussische Merkmale aus den Preisen, was zu besser verhaltenen, standardisierten Preisen und weniger falschen Signalen führt

  2. Erfasst Preisumkehrpunkte und vermeidet Höhen und Tiefen

  3. Flexible Parameteranpassung für die Stimmungsumkehrempfindlichkeit

  4. Anpassungsfähige Richtungen, an verschiedene Marktumgebungen angepasst

  5. Einfache Logik leicht zu verstehen und umzusetzen

Risikoanalyse

  1. Falsche Einstellungen der Parameter können Kurven verpassen oder falsche Signale erzeugen

  2. Ein Ausrutschen im Live-Handel kann eine perfekte Signaldurchführung verhindern

  3. Schwierig, Wende zu erkennen, wenn die Preise volatil sind

  4. Schwierig bei Live-Handel umzusetzen und Umkehrungen zu bestätigen

Lösungen:

  1. Optimieren von Parametern durch Anpassung der Länge

  2. Eintrittskriterien entsprechend lockern, um Füllungen zu gewährleisten

  3. Falschsignale, die andere Indikatoren kombinieren, filtern

  4. Strenge Einhaltung der Vorschriften und Risikomanagement

Optimierungsrichtlinien

  1. Optimieren Sie den Parameter Länge, um die beste Kombination zu finden

  2. Hinzufügen von Filtern, um falsche Signale zu vermeiden, z. B. gleitende Durchschnitte, Volatilitätsindikatoren usw.

  3. Einbeziehung von Stop Loss in den Kontrollverlust pro Handel

  4. Hinzufügen eines Wiedereintrittsmechanismus zur Verfolgung anhaltender Trends

Schlussfolgerung

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")

Mehr