Quant Trading Strategie auf Basis des SuperTrend-Kanals

Schriftsteller:ChaoZhang, Datum: 2024-02-05 13:57:28
Tags:

img

Übersicht

Diese Strategie erzeugt Ein- und Ausstiegssignale basierend auf dem SuperTrend-Kanalindikator, um automatisierten Quant-Trading zu realisieren. Der SuperTrend-Kanalindikator kann Breakout-Punkte und Unterstützungs-/Widerstandsniveaus eindeutig identifizieren, um die Trendrichtung zu bestimmen. Diese Strategie beinhaltet die Vorteile dieses Indikators, um sowohl den Long- als auch den Short-Handel durchzuführen.

Strategieprinzip

Diese Strategie verwendet ATR und Donchian Channel, um zwei Stop-Loss-Linien für lange und kurze Positionen zu berechnen. Insbesondere berechnet sie den ATR-Wert unter Verwendung der ATR-Periode und Multiplikatorparameter, addiert und subtrahiert ihn dann vom Durchschnitt des höchsten Höchst- und niedrigsten Tief, um die langen und kurzen Stop-Loss-Linien zu erhalten. Wenn der Schlusskurs über die lange Stop-Loss-Linie nach oben bricht, wird ein langes Signal generiert. Wenn der Schlusskurs unter die kurze Stop-Loss-Linie nach unten bricht, wird ein kurzes Signal ausgelöst.

Nach dem Nehmen von Long- oder Short-Positionen werden die Stop-Loss-Linien dynamisch aktualisiert, um Gewinne zu erzielen. Die neue Stop-Loss-Linie wird nicht niedriger oder höher als die vorherige sein, um ein Stop-Loss-Durchdringen zu vermeiden. Wenn zwischen der aktuellen und der vorherigen Stop-Loss-Linie ein neues Hoch oder Tief erscheint, wird die Stop-Loss-Linie an den neuesten Preis angepasst.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass der SuperTrend-Kanalindikator die Trendrichtung und die wichtigsten Unterstützungs-/Widerstandsniveaus eindeutig identifizieren kann. Zusammen mit dem dynamischen ATR-Stop-Loss kann er einen einzelnen Handelsverlust effektiv kontrollieren.

Insbesondere stellen die beiden Stop-Loss-Linien im SuperTrend-Kanal-Indikator die Positionskostenbasis und die neueste Support/Resistance dar. Sie bieten sehr klare Anleitungen für Ein- und Ausgänge. In der Zwischenzeit aktualisiert sich die Stop-Loss-Linie dynamisch, um Gewinne zu erzielen und ein Stop-Loss-Durchdringen zu verhindern.

Im Allgemeinen tritt diese Strategie rechtzeitig ein, wenn der Trend bestimmt wird, kontrolliert das Risiko durch dynamischen Stop-Loss und ist somit eine relativ robuste quantitative Handelsstrategie.

Risikoanalyse

Das Hauptrisiko dieser Strategie liegt in der Möglichkeit einer Stop-Loss-Penetration. Wenn der Preis heftig schwankt, kann die neue Stop-Loss-Linie niedriger oder höher als die vorherige werden, was zu einer Stop-Loss-Penetration und erhöhten Verlusten führt.

Darüber hinaus funktionieren die vom SuperTrend-Kanal-Indikator erzeugten Eintrittssignale nicht gut in den unterschiedlichen Märkten, was gelegentlich zu falschen Trades führt.

Optimierungsrichtlinien

Diese Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie die ATR-Periode und Multiplikatorparameter, um die beste Kombination durch Backtesting verschiedener Werte und Analyse von Metriken wie Rendite und Sharpe-Ratio zu finden.

  2. Hinzufügen anderer Indikatoren für die Signalfiltration, um falsche Einträge in den Rangierungsmärkten zu vermeiden.

  3. Einbeziehen von Volumenindikatoren, um die Stop-Loss-Position zu optimieren.

  4. Einführung von Machine-Learning-Modellen für die adaptive Parameteroptimierung. Techniken wie RNN und LSTM können genutzt werden, um optimale Parameterwerte dynamisch vorherzusagen.

Schlussfolgerung

Diese Strategie stammt aus dem SuperTrend-Kanal-Indikator mit einem klaren Urteil über die Trendrichtung und eine relativ hohe Gewinnrate. Es wendet auch dynamische ATR-Tracking-Stop-Loss an, um Einzelhandelsverluste zu kontrollieren. Die Leistung kann durch Parameteroptimierung, Indikatoroptimierung usw. weiter verbessert werden. Im Allgemeinen ist es eine robuste Strategie, die für den automatisierten Quant-Trading geeignet ist.


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//EU ESCREVI ISSO TUDO, PARA FICAR BEM CLARO

strategy("SuperTrend Strategy", overlay=true)


//AQUI OS INPUTS PARA A SUPERTREND
length = input(title="ATR Period", type=input.integer, defval=7)
mult = input(title="ATR Multiplier", type=input.float, step=0.1, defval=7)
showLabels = input(title="Show Buy/Sell Labels ?", type=input.bool, defval=true)

//AQUI O CALCULO DO ATR STOPS
atr = mult * atr(length)



//AQUI A TRANSFORMAÇÃO DO ATR STOPS EM SUPERTREND
//-
//A LÓGICA PARA LONGSTOP
longStop = hl2 - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop

//A LÓGICA PARA SELLSTOP
shortStop = hl2 + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop


//DIREÇÃO DO INDICADOR
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and close > shortStopPrev ? 1 : 
   dir == 1 and close < longStopPrev ? -1 : dir


//DEFININDO AS CORES DAS LINHAS DA SUPERTREND
longColor = color.lime
shortColor = color.red


//PLOTANDO NO GRÁFICO A SUPERTREND E A ESTRATÉGIA
plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=3, color=longColor)
buySignal = dir == 1 and dir[1] == -1
plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=3, color=shortColor)
sellSignal = dir == -1 and dir[1] == 1

//DEFININDO AS FUNÇÕES DE COMPRA E VENDA
strategy.entry("long", strategy.long, when = buySignal)
strategy.entry("short", strategy.short, when = sellSignal)




Mehr