
Diese Strategie kombiniert die Verwendung von Supertrend-Indikatoren und Fischer-Schwankungen, um nach Short-Line-Gelegenheiten zu suchen, wenn sich der Markt umkehrt. Sie kann für verschiedene Kryptowährungen, Aktien und Märkte angewendet werden, indem die Parameter für Supertrends und Fischer-Schwankungen angepasst werden.
Die Strategie berechnet zunächst den Fischerwechsel über 10 Zyklen. Wenn die Fischerwechsellinie 2,5 von den Tiefen nach oben durchbricht, erzeugt sie ein Verkaufssignal. Gleichzeitig berechnet sie die durchschnittliche reale Breite über 10 Zyklen als Supertrendkanal.
Konkret berechnet es den aktuellen K-Line-Klossepreis unterhalb des Super-Channel-Oberrahmens der vorherigen Periode und beurteilt als Marktumkehr, wenn der vorherige Zyklus oberhalb des Kanal-Unterrahmens ist, was ein Verkaufssignal erzeugt. Gleichzeitig berechnet es den Preiswechsel-Indikator, wenn die Preiswechsel-Linie von dem Tiefpunkt 2,5 springt und der Preiswechsel der vorherigen Periode unterhalb des aktuellen Wertes ist, was als Trendwechsel beurteilt wird, was ein Verkaufssignal erzeugt.
Die Strategie muss also die beiden Bedingungen erfüllen, um ein letztes Verkaufssignal zu erzeugen, nämlich eine Umkehrung des Supertrends und eine Umkehrung des Fischer-Schwankens.
Die Strategie kombiniert die Supertrend-Kanäle mit dem Fischer-Wechsel-Indikator, um die Wendepunkte des Marktes genauer zu erfassen. Im Vergleich zur Verwendung von Supertrends oder Fischer-Wechseln allein kann die Strategie durch die Verringerung der Falschsignale verbessert werden und somit die Stabilität der Strategie verbessert werden.
Zusätzlich bietet die Strategie die Flexibilität, die Parameter für die Anpassung der Supertrend-Kanäle und der Fischer-Wechselung anzupassen. Der Benutzer kann die optimale Kombination von Parametern für verschiedene Märkte und Sorten auswählen, um die Märkte gezielt anzupassen.
Die Strategie bietet auch eine Risikomanagement. Der Benutzer kann die Risikokapitalmenge für jede Einheit einfach anpassen, um seine Risikomanagementanforderungen zu erfüllen. Gleichzeitig berechnet es automatisch die Stop-Loss- und Gewinnziele, um eine bessere Risikobereitschaft zu erzielen.
Die Strategie beruht hauptsächlich auf der Analyse der Marktstruktur der Supertrendkanäle. Die Superkanäle können ausfallen, wenn die Trendphase länger andauert. In diesem Fall sollten die Periodiparameter der Kanäle oder die ATR-Multiplikatoren angepasst werden.
Zusätzlich ist die Fischer-Wechsel relativ anfällig für Fehlsignale oder vorzeitige Signale. Wenn die Marktfluktuation groß ist, sollte die Periodiparameter der Fischer-Wechsel entsprechend angepasst werden, um einen Teil des Rauschs zu filtern.
Darüber hinaus kann die Gesamtgewinnrate der Umkehrstrategie relativ begrenzt sein. Es sollte eine Kombination von Trend-Tracking-Indikatoren verwendet werden, um zu vermeiden, Positionen zwischen den Schwankungen zu eröffnen oder nach einer klareren Tendenz wieder einzubeziehen.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Optimierung der ATR-Zyklen- und ATR-Multiplikatorzahl der Supertrend-Kanäle, Auswahl der optimalen Kombination von Parametern für verschiedene Sorten und Marktbedingungen
Optimierung der Periodenparameter für die Schneefehler-Wechselung, Geräuschminderung bei der Glättung der Kurve und Vermeidung von Fehlsignalen
Hinzufügen von Moving Averages oder Brinks als Hilfsindikatoren zur Vermeidung von Positionen bei Marktschocks
Fischer-Veränderungen in Verbindung mit verschiedenen Zeitzyklen für eine stabilere und zuverlässigere Umkehrung
Positionsmanagement-Module wie Leverage Ratio, Anzahl der Positionen, Aufschlagregeln usw. zur Risikokontrolle hinzugefügt
Automatische Optimierung von Parametern und Strategieanpassung in Kombination mit Methoden wie Machine Learning
Die Strategie kombiniert Supertrends mit Fischer-Wechsel-Indikatoren und bietet eine gewisse Flexibilität bei der Beurteilung von Marktumdrehungen und kann durch Parameter an verschiedene Sorten angepasst werden. Im Vergleich zu einem einzigen Indikator ermöglicht sie eine zuverlässigere Signalbeurteilung und Risikokontrolle. Durch kontinuierliche Optimierung wird die Strategie die Stabilität weiter verbessern und die Profitabilität verbessern.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-02-27 03:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend and Fisher_SHORT", 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]
// Sell condition for Fisher transformation.
sell_signal = (fish1 > 2.5) and (fish2 > fish1)
durum = 0 //just for the situation.
if (sell_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
sellSignal = trend == -1 and trend[1] == 1 and durum == -1
plotshape(sellSignal, title='Sell Signal', location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) //shows the signal.
// 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 (sellSignal)
entryPrice := close
atr1 := atr
stopLoss := entryPrice + atr1 * Multiplier
contracts := entryPrice / (stopLoss - entryPrice) * RiskAmount / entryPrice
takeProfit := entryPrice - atr1 * Multiplier
takeProfit2 := entryPrice - 2 * atr1 * Multiplier
takeProfit3 := entryPrice - 3 * atr1 * Multiplier
if (sellSignal)
strategy.entry("Sell", strategy.short, qty=1)
//
if (close >= stopLoss)
strategy.close("Sell", comment="Stop Loss Hit")
else if (close <= takeProfit)
strategy.close("Sell", 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)