Trendfolgende Langfriststrategie basierend auf SuperTrend und Fisher-Transformation


Erstellungsdatum: 2023-11-03 15:42:16 zuletzt geändert: 2023-11-03 15:42:16
Kopie: 0 Klicks: 732
1
konzentrieren Sie sich auf
1621
Anhänger

Trendfolgende Langfriststrategie basierend auf SuperTrend und Fisher-Transformation

Überblick

Die Strategie kombiniert die beiden Indikatoren SuperTrend und Fisher Conversion, um eine eher stabile Trend-Langlinie-Handelsstrategie zu erreichen. Die Strategie erzeugt ein Kaufsignal, wenn der SuperTrend-Indikator ein Kaufsignal ausgibt, während der Fisher Conversion-Indikator kleiner als -2.5 ist und steigt. Die Strategie verwaltet die Position in einer vernünftigen Stop-Loss- und Stop-Stop-Methode.

Strategieprinzip

  1. Der SuperTrend-Indikator wird verwendet, um die Richtung des Preistrends zu bestimmen. Wenn der Preis in die Oberbahn geht, ist dies ein bullish Signal; wenn der Preis in die Unterbahn geht, ist dies ein bearish Signal. Diese Strategie gibt ein Kaufsignal aus, wenn der SuperTrend als bullish gilt.

  2. Der Fisher-Conversion-Indikator spiegelt die Auswirkung von Preisschwankungen auf die Verbraucherpsychologie wider. Der Fisher-Wert in der Bandbreite [−2,5, 2,5] steht für Marktneutral, kleiner als 2,5 für Marktpanik, größer als 2,5 für Markteuphorie. Die Strategie sendet ein Kaufsignal aus, wenn der Fisher kleiner als 2,5 ist und steigt, um den Wendepunkt von Panik zu neutral zu erfassen.

  3. Die Strategie verwaltet die Position mit einem vernünftigen Stop-Loss-Stop. Der Stop-Loss-Punkt wird als die Multiplikation des Einstiegspreises abzüglich des ATR-Wertes mit dem ATR-Multiplikator festgelegt. Der Stop-Loss-Wert ist größer als der Stop-Loss-Wert.

  4. Es wird auch die Risikomanagement berücksichtigt. Die Positionsgröße wird nach ATR und Risikomanagement berechnet, so dass die Risikomenge pro Einheit nicht mehr als die eingestellte Risikomenge beträgt.

Analyse der Stärken

  1. Die Kombination von mehreren Indikatoren verhindert, dass ein einzelner Indikator zu häufigen Transaktionen führt. Der SuperTrend beurteilt die Richtung des Trends, der Fisher-Wechsel beurteilt die psychologische Seite des Marktes, die beide zusammen ein stabiles Handelssignal bilden.

  2. Ein vernünftiger Stop-Loss-Stopp kann dazu beitragen, Trends zu erfassen und die Longline zu halten, während gleichzeitig das Risiko kontrolliert wird.

  3. Risikomanagement und minimale Einheiten für den Handel, um das Risiko für jeden Handel zu kontrollieren und Verluste zu vermeiden, die größer sind als man sich leisten kann.

  4. Das Handelssignal ist stabil und geeignet für die Langzeithaltung. Die Fisher-Umstellung ist ein glatter Indikator, der dazu beiträgt, Marktlärm zu filtern und falsche Signale zu vermeiden.

  5. Es gibt viel Platz für die Optimierung der Indikatorparameter. Die ATR-Zyklen und Multiplikatorparameter des SuperTrend können je nach unterschiedlicher Periode der verschiedenen Sorten sowie die Gleitparameter der Fisher-Veränderung angepasst werden, um die optimale Kombination von Parametern zu finden.

Risikoanalyse

  1. Als Trend-Follow-Strategie werden kleine Verluste in der Phase der Erschütterung angesammelt. Es sollte eine Varietät und eine Strategie für die Zyklusführung gewählt werden, bei der der Trend deutlich ist.

  2. Fisher-Transformationen sind für Extremsituationen unwirksam. Wenn der Markt einen bestimmten Zustand über einen längeren Zeitraum aufrechterhält, weichen die Fisher-Werte ständig von der neutralen Zone ab, und die Strategie sollte unterbrochen werden.

  3. Wenn der Stop-Loss-Punkt zu nahe ist, kann dies zu häufigen Ausstiegs führen. Die ATR-Zyklus- und ATR-Multiplikatorparameter sollten vernünftigerweise so eingestellt werden, dass ein gewisser Pufferbereich zwischen den Stop-Loss-Distanzen besteht.

  4. Wenn die Transaktionskosten ignoriert werden, kann dies zu kleinen Gewinn- und Verlusttransaktionen führen. Die Transaktionskosten für die Sorte sollten berücksichtigt werden und die Stop-Margin sollte entsprechend angepasst werden.

  5. Es ist notwendig, lange Zeit am Markt zu sein, um strategische Vorteile zu erzielen. Es sollte sichergestellt werden, dass genügend Geld zur Unterstützung von Langzeitgeschäften vorhanden ist, und die Mentalität sollte stabil sein.

Optimierungsrichtung

  1. Anpassung der ATR-Zyklus- und ATR-Multiplikatorparameter zur Optimierung der Stop-Loss-Stopp-Marge. Die Parameter können durch Rückmessung der Daten optimiert werden, aber auch dynamisch optimiert werden.

  2. Versuchen Sie mit verschiedenen Fisher-Umstellungsparametern, wie z. B. der Gleitzeit, nach stabileren Handelssignalen. Sie können mit einer dynamischen Anpassung der Marktfluktuation kombiniert werden.

  3. In Kombination mit anderen Indikatoren als Filter, um Fehler zu vermeiden, wenn der Großhandel unsicher ist. Die Durchschnittslinie, die Volatilität und andere können verwendet werden, um den Großhandel zu beurteilen.

  4. Verschiedene Stopp-Strategien, wie beispielsweise mobile Stopps, Batch-Stopps, ATR-Stopps, werden getestet, um die Profitabilität zu verbessern.

  5. Optimierte Kapitalmanagementstrategien, wie z. B. das Verwalten von FPVs, die Kelly-Formel, führen zu höheren Gewinnen als Verlusten.

  6. Optimierung für die Transaktionskosten, um sicherzustellen, dass kleine Positionen nach dem Handel profitabel bleiben.

Zusammenfassen

Die Strategie integriert die Vorteile von Indikatoren wie SuperTrend und Fisher-Veränderungen, um einen stabilen Trend zu bilden, der der langen Handelsstrategie folgt. Durch Stop-Loss-Stopp-Management und Risikokontrolle kann eine bessere Risiko-Rendite erzielt werden. Die Strategie muss weiter optimiert werden, um eine stärkere Aktienleistung zu erzielen.

Strategiequellcode
/*backtest
start: 2023-10-26 00:00:00
end: 2023-11-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend and Fisher_LONG", overlay=true)

//This block is for  Fisher Transformation Calculation.
len = input.int(10, minval=1, title="Length") // Length is optional. 10 is good but is up to you.
high_ = ta.highest(hl2, len)
low_ = ta.lowest(hl2, len)
round_(val) => val > .99 ? .999 : val < -.99 ? -.999 : val
value = 0.0
value := round_(.66 * ((hl2 - low_) / (high_ - low_) - .5) + .67 * nz(value[1]))
fish1 = 0.0
fish1 := .5 * math.log((1 + value) / (1 - value)) + .5 * nz(fish1[1])
fish2 = fish1[1]

// Buy condition for Fisher transformation.
buy_signal = (fish1 < -2.5) and (fish1 > fish2)
durum = 0 //just for the situation.

if (buy_signal)
    durum := 1 // now it changes from 0 to 1.

// Supertrend indicator inputs and calculations (same as in the indicator)
Periods = input(title='ATR Period', defval=10) // period is 10, but you can change it
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=2) //atr multiplier is important. it is 2 for this strategy but you can find another for best performance 
RiskAmount = input.float(title='Risk Amount ($)', defval=10.0, minval=0.0, step=1.0) // ıf you use risk-reward method, risk is 10$ for each position. you can also change it
changeATR = input(title='Change ATR Calculation Method ?', defval=true)

atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// Calculate position size based on risk amount
riskPerContract = atr * Multiplier
contracts = RiskAmount / (riskPerContract * syminfo.mintick)

//short signal condition
buySignal = trend == 1 and trend[1] == -1 and durum == 1

plotshape(buySignal, title='Buy Signal', location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// variables
var float entryPrice = na
var float stopLoss = na
var float takeProfit = na
var float atr1 = na
var float takeProfit2 = na
var float takeProfit3 = na

//it calculates the stop level and reward profit levels using atr.
if (buySignal)
    entryPrice := close
    atr1 := atr
    stopLoss := entryPrice - atr1 * Multiplier
    contracts := entryPrice / (entryPrice - stopLoss) * RiskAmount / entryPrice
    takeProfit := entryPrice + atr1 * Multiplier
    takeProfit2 := entryPrice + 2 * atr1 * Multiplier
    takeProfit3 := entryPrice + 3 * atr1 * Multiplier

if (buySignal)
    strategy.entry("Buy", strategy.long, qty=contracts)

// 
if (close <= stopLoss)
    strategy.close("Buy", comment="Stop Loss Hit")
else if (close >= takeProfit)
    strategy.close("Buy", comment="Take Profit Hit")

// draw the stop, entry and profit levels
plot(stopLoss, title="Stop Loss", color=color.red, linewidth=1, style=plot.style_linebr)
plot(entryPrice, title="Entry Price", color=color.orange, linewidth=1, style=plot.style_linebr)
plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)
plot(takeProfit2, title="Take Profit 2", color=color.blue, linewidth=1, style=plot.style_linebr)
plot(takeProfit3, title="Take Profit 3", color=color.purple, linewidth=1, style=plot.style_linebr)