Dynamische Trendstrategie für den Ausbruch von Unterstützungswiderständen

Schriftsteller:ChaoZhang, Datum: 2023-12-26 15:21:45
Tags:

img

Übersicht

Diese Strategie beurteilt die Trendrichtung auf der Grundlage des langfristigen Support/Resistance Breakouts und tritt in die Position ein, wenn der Support/Resistance gebrochen wird. Sie verwendet Zickzack, um Spitzen und Täler zu definieren, wobei Spitzen/Täler mit 2 Balken bestätigt werden, so dass es eine Verzögerung von 2 Balken gibt. Sie berechnet die Differenz zwischen SMA von Spitzen und Tälern in einem definierten Zeitraum (21 standardmäßig) als alternatives SR-Niveau. Diese Idee stammt aus dem Nebula-Advanced-Dynamic-Support-Resistance-Indikator von synapticEx.

Strategie Logik

Die Strategie verwendet die folgende Logik, um Trends und Handelssignale zu bestimmen:

  1. Bestätigen Sie die Spitzen/Täler mit Zickzack: Wenn in den letzten 5 Baren Bar 5 Spitze < Bar 4 Spitze < Bar 3 Spitze > Bar 2 Spitze > Bar 1 Spitze, wird Bar 3 Tal als niedrigstes Tal bestätigt. Bestätigen Sie den höchsten Spitze ähnlich.

  2. Berechnung der Anzahl der Gipfel hn und Täler ln in einem definierten Zeitraum (Standard 21) Wenn hn>0 und ln>0 ist, berechnet man die durchschnittliche Höhe der Gipfel hsum/hn und die durchschnittliche Höhe der Täler lsum/ln. Ihre Differenz r wird als alternativer SR-Level verwendet.

  3. Vergleichen Sie den Schlusskurs mit dem dynamischen Widerstandswert lr und dem Unterstützungswert h, um die Trendrichtung zu bestimmen.

  4. Gehen Sie lang, wenn ein gültiger Durchbruch des Widerstands stattfindet. Gehen Sie kurz, wenn ein gültiger Durchbruch der Unterstützung stattfindet.

Analyse der Vorteile

Die Vorteile dieser Strategie:

  1. Die Verwendung von Zickzack zur Bestätigung von SR liefert Genauigkeit und verhindert einen falschen Ausbruch.

  2. Die auf langfristigen Statistiken basierende SR ist für die Risikominderung wertvoller.

  3. Alternative SR verbessert die Gültigkeit von Ausbruchssignalen.

  4. Die Logik ist einfach und leicht verständlich, geeignet für Quant-Handel.

  5. Anpassungsfähige statistische Periode passt zu verschiedenen Zyklen und Produkten.

Risikoanalyse

Risiken dieser Strategie:

  1. Zwei Taktstufen Verzögerung mit Zickzack können den besten Einstiegspunkt verpassen.

  2. Die vorhergesagte SR ist nur zur Referenz, ein abnormaler Ausbruch kann immer noch passieren.

  3. Eine falsche statistische Periode führt zu einer ungültigen SR.

  4. Der Kursrückgang nach dem Ausbruch kann einen Stop-Loss auslösen.

  5. Gewaltsame Kursschwankungen nach dem Eintritt bringen größere Verluste mit sich.

Die Lösungen sind:

  1. Verkürzung der statistischen Periode, um die Verzögerung zu verringern.

  2. Kombinieren Sie mehr Faktoren, um SR vorherzusagen.

  3. Teststabilität unterschiedlicher Perioden.

  4. Festlegen eines angemessenen Stop-Loss-Niveaus.

  5. Verwenden Sie die Positionsgröße, um Einzelverluste zu begrenzen.

Optimierungsrichtlinien

Die Strategie kann aus folgenden Aspekten optimiert werden:

  1. Verwenden Sie maschinelles Lernen, um SR vorherzusagen, um die Erfolgsrate von Ausbruchssignalen zu verbessern.

  2. Kombination von CONF-Volumen, um die Gültigkeit der Breakout-Signale zu bestätigen.

  3. Klassifizierung der SR-Statistik auf der Grundlage verschiedener Zyklen, um die Effizienz der SR zu verbessern.

  4. Fügen Sie Position auf Gewinn hinzu, setzen Sie Trail Stop, um Gewinn/Verlust auszugleichen.

  5. Verknüpfen Sie MA, um den Trend zu bestimmen, und vermeiden Sie blind lang/kurz ohne Trend.

Schlussfolgerung

Zusammenfassend ist dies eine robuste Trend-Folge-Strategie. Es hat eine hohe Genauigkeit bei der Bestimmung der Trendrichtung und der richtigen Risikokontrolle. Aber die Verzögerung macht es unmöglich, von jedem langen / kurzen Signal zu profitieren. Daher passt es erfahrenen Quant-Händlern, um es mit ihren eigenen Strategien zu kombinieren. Durch die Optimierung von statistischen Perioden und die Integration anderer Indikatoren oder Modelle kann es zu einer effizienten Trend-Folge-Strategie werden.


/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SR TREND STRATEGY", shorttitle="SR TREND", overlay=true, calc_on_order_fills=true)
//based on by synapticEx SR indicator https://www.tradingview.com/script/O0F675Kv-Nebula-Advanced-Dynamic-Support-Resistance/
length = input(title="SR lookbak length", type=input.integer, defval=21)
h = bar_index>5 and high[5]<high[4] and high[4]<high[3] and high[3]>high[2] and high[2]>high[1] ? 1 : 0
l = bar_index>5 and low[5]>low[4]   and low[4]>low[3]   and low[3]<low[2]   and low[2]<low[1]   ? 1 : 0
ln = sum(l, length)
hn = sum(h, length)
hval =  h>0 ? high[3] : 0
lval =  l>0 ? low[3]  : 0
lsum = sum(lval, length)
hsum = sum(hval, length)
r = ln>0 and hn>0 ? abs((hsum/hn) - (lsum/ln)): 0
float lvalc = na
float lvalr = na
float hvalc = na
float hvalr = na
lvalc := lval and r>0 ? lval   : lvalc[1]
lvalr := lval and r>0 ? lval+r : lvalr[1]
hvalc := hval and r>0 ? hval   : hvalc[1]
hvalr := hval and r>0 ? hval-r : hvalr[1]
int trend=0
trend:=close > lvalr and close > hvalr ? 1 : close < lvalr and close < hvalr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and close>hvalc)
strategy.entry("Short", strategy.short, when=trend==-1 and close<lvalc)
int long=0
int short=0
long:= trend==1 and close>hvalc ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and close<lvalc ? 1 : trend==1 ? -1 : short[1]
barcolor(long>0? color.green : short>0? color.red : trend>0? color.white: trend<0 ? color.orange : color.blue)

Mehr