Fisher Transform Dynamische Schwelle Trend Tracking-Strategie


Erstellungsdatum: 2024-06-17 15:01:19 zuletzt geändert: 2024-06-17 15:01:19
Kopie: 0 Klicks: 590
1
konzentrieren Sie sich auf
1617
Anhänger

Fisher Transform Dynamische Schwelle Trend Tracking-Strategie

Überblick

Die Fisher-Conversion-Strategie verwendet die Fisher-Conversion, die Preise auf eine Standardskala einheitlicht, um potenzielle Trendwendepunkte leichter zu erkennen. Durch die dynamische Anpassung der Schwellen ist die Strategie in der Lage, sich an unterschiedliche Marktbedingungen anzupassen, was die Genauigkeit der Trenderkennung verbessert. Wenn die Fisher-Conversion-Werte über die positiven und negativen Schwellen hinausgehen, erzeugt die Strategie ein Kauf- und Verkaufssignal, um die Markttrends zu verfolgen.

Strategieprinzip

  1. Berechnung der Fisher-Transformation: Der aktuelle Preis wird anhand der historischen Höchst- und Tiefstpreise homogenisiert und ergibt eine Fisher-Transformation zwischen -0,999 und 0,999.
  2. Dynamische Abschwächung: Die Abschwächung des Kauf- und Verkaufssignals wird dynamisch angepasst, um den historischen Schwankungen des Fisher-Wechselwertes zu entsprechen.
  3. Trendbeurteilung: Beurteilung der Veränderung der Preisentwicklung durch Vergleich der aktuellen Fisher-Umrechnung mit den Werten der letzten beiden Perioden.
  4. Kauf- und Verkaufssignale: Wenn der Fisher-Wandel von unten nach oben über die negative Schwelle geht, erzeugt er ein Kaufsignal; wenn der Fisher-Wandel von oben nach unten über die positive Schwelle geht, erzeugt er ein Verkaufssignal.

Analyse der Stärken

  1. Dynamische Depreciation: Depreciation wird automatisch an Marktschwankungen angepasst, um die Genauigkeit der Trendbeurteilung zu verbessern.
  2. Trend-Tracking: Trends mit dem Fisher Conversion Indicator können besser auf Markttrends erfasst werden und ermöglichen Trend-Tracking-Trades.
  3. Verringerung des Preisrausches: Die Fisher-Transformation vereinheitlicht die Behandlung von Preisen und hilft, den Einfluss von Preisrauschen auf die Trendentscheidung zu verringern.
  4. Intuitive Grafikdarstellung: Die Strategie zeichnet die Fisher-Conversion-Kurve und die Schwellenlinie auf der Grafik, um den Händlern die Trends und Kauf- und Verkaufssignale intuitiv zu beobachten.

Risikoanalyse

  1. Parameteroptimierungsrisiken: Die Strategie ist abhängig von der Auswahl von Parametern, wie z. B. dem Fisher-Wechselzyklus oder der dynamischen Tiefstwertberechnung. Verschiedene Parameter können zu unterschiedlichen Handelsergebnissen führen.
  2. Trend-Erkenntnis-Lagerung: Der Fisher Conversion Index beurteilt die Preisentwicklung nachträglich und kann einen Teil der Trends übersehen.
  3. Schlechte Performance in einem wackligen Markt: In einem wackligen Marktumfeld können häufige Trendwechsel dazu führen, dass die Strategie mehr falsche Signale erzeugt und die Handelsleistung schlechter ist.
  4. Extremsituationsrisiken: In extremen Situationen (z. B. bei schnellen und starken Veränderungen) kann der Fisher-Conversion-Indikator fehlschlagen, was zu falschen Handelsentscheidungen in der Strategie führt.

Optimierungsrichtung

  1. Parameteroptimierung: Optimierung von Schlüsselparametern wie Fisher-Wechselzyklen und dynamischen Threshold-Berechnungsmethoden, um die Anpassungsfähigkeit der Strategie unter verschiedenen Marktbedingungen zu verbessern.
  2. Signalfilterung: Auf der Grundlage von Trenderkennung, Einführung von anderen technischen Indikatoren oder Marktstimmungsindikatoren, zweite Bestätigung von Handelssignalen, um die Signalsicherheit zu erhöhen.
  3. Stop-Loss-Stop: Setzen Sie angemessene Stop-Loss-Regeln, um das Risiko eines einzelnen Handels zu kontrollieren und die Risiko-Gewinn-Relation der Strategie zu verbessern.
  4. Positionsmanagement: Positionsgröße wird dynamisch angepasst, um das Risiko der Positionshaltung zu verringern, abhängig von Faktoren wie der Stärke der Markttrends und der Preisschwankungen.

Zusammenfassen

Die Strategie ist in der Lage, die Markttrends besser zu erfassen und Trends zu verfolgen. Der Vorteil der Strategie liegt in der Anpassung der dynamischen Schwellenwerte, der Verringerung der Preistromstörungen und der visuellen Darstellung der Grafik. Es gibt jedoch auch Parameteroptimierungsrisiken, die Trendrückstände, schwache Marktschwankungen und Risiken für extreme Verhaltensweisen identifizieren. Durch Maßnahmen wie Parameteroptimierung, Signalüberschreitung, Stop-Loss-Stop-Stop und Positionsmanagement können die Stabilität und Profitabilität der Strategie weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Qiuboneminer -  Fisher Transform", overlay=true)

// Parámetros
Len = input.int(10, minval=1)
mult1 = input.int(1, minval=1)
threshold = 2.6

// Función Fisher Transform
fish(Length, timeMultiplier) =>
    var float nValue1 = na
    var float nFish = na
    xHL2 = hl2
    xMaxH = ta.highest(xHL2, Length * timeMultiplier)
    xMinL = ta.lowest(xHL2, Length * timeMultiplier)
    nValue1 := 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
    nValue2 = if nValue1 > 0.99
        0.999
    else if nValue1 < -0.99
        -0.999
    else
        nValue1
    nFish := 0.5 * math.log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
    nFish

// Cálculo del Fisher Transform para mult1
Fisher1 = fish(Len, mult1)

// Condiciones de entrada y salida
longCondition = Fisher1 > nz(Fisher1[1]) and nz(Fisher1[1]) <= nz(Fisher1[2]) and Fisher1 < -threshold
shortCondition = Fisher1 < nz(Fisher1[1]) and nz(Fisher1[1]) >= nz(Fisher1[2]) and Fisher1 > threshold

// Estrategia de entrada
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Ploteo del Fisher Transform
plot(Fisher1, color=(Fisher1 > nz(Fisher1[1]) ? color.rgb(34, 255, 0) : color.rgb(255, 0, 212)), title="Fisher TF:1")

// Ploteo de líneas de umbral
hline(threshold, "Umbral Superior", color=color.rgb(255, 0, 0), linestyle=hline.style_dotted)
hline(-threshold, "Umbral Inferior", color=#008704, linestyle=hline.style_dotted)