CT TTM Quantitative Handelsstrategie auf Basis von Squeeze

Schriftsteller:ChaoZhang, Datum: 2023-11-15 16:06:37
Tags:

img

Übersicht

Diese Strategie verwendet den CT TTM Squeeze-Indikator, um Preistrends zu identifizieren, und wendet Trailing Stops an, um Risiken zu kontrollieren.

Strategie Logik

Die Strategie verwendet den CT TTM Squeeze-Indikator, um Preistrends zu bestimmen.

  • e1 - Mittelpunkt des mittleren Bandes
  • osc - Oszillator, berechnet aus der Differenz zwischen dem Schlusskurs und e1 über einen linear rückläufigen Zeitraum
  • Differenz zwischen Bollinger-Bändern und Keltner-Kanälen
  • osc_color - Bezeichnen Sie die Farben des Oszillators
  • Mid_color - andere Farben bezeichnen

Wenn osc über 0 liegt, wird es grün angezeigt, was lang bedeutet; wenn osc unter 0 liegt, wird es rot angezeigt, was kurz bedeutet.

Wenn OSC positiv ist, gehen Sie lang; wenn OSC negativ ist, gehen Sie kurz.

Die Strategie verwendet den Oszillator OSC, um die Trendrichtung zu bestimmen, und Diff, um den Long/Short-Impuls zu messen. Wenn OSC über 0 geht, signalisiert es einen Aufwärtstrend, wodurch es lang geht. Wenn OSC unter 0 geht, signalisiert es einen Abwärtstrend, wodurch es kurz geht.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Die Verwendung von CT TTM Squeeze zur Bestimmung von Trends hat eine relativ hohe Genauigkeit. CT TTM Squeeze berücksichtigt umfassend gleitende Durchschnitte, Bollinger-Bänder und Keltner-Kanäle, die Preistrends effektiv identifizieren können.

  2. Die Anwendung des Oszillators zur Bestimmung von Long/Short-Signalen vermeidet falsche Signale in nicht-trendigen Zonen. Der Oszillator kann effektiv die Auswirkungen kleiner Kursschwankungen auf Handelssignale filtern.

  3. Trailing Stops werden verwendet, um Risiken zu kontrollieren, indem Verluste für jeden Handel begrenzt werden.

  4. Die Strategie hat nur wenige Parameter und ist leicht zu optimieren.

  5. Die Grafikfunktionen zeigen die Signale deutlich an. Unterschiedliche Farben werden verwendet, um lange/kurze Signale und Stärke zu unterscheiden und Trendurteile visuell darzustellen.

Risikoanalyse

Die Strategie birgt außerdem folgende Risiken:

  1. CT TTM Squeeze kann in bestimmten Marktbedingungen falsche Signale erzeugen, was zu Handelsverlusten führt.

  2. Die Differenz im Oszillator kann zu falschen Handelssignalen führen.

  3. Übermäßig aggressive Trailing-Stops können unnötige Verluste verursachen.

  4. Die Strategie eignet sich nur für Produkte mit starken Trends, nicht für Märkte mit Bandbreiten.

  5. Eine übermäßige Optimierung kann zu einer Kurvenanpassung führen.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Kombinieren Sie mehrere Indikatoren für die Signalgenauigkeit.

  2. Hinzufügen von Stop-Loss-Optimierungsmodulen für intelligentere Stopps. Trailing-Stop-Methoden wie adaptive Stops, Limit-Stops können getestet werden.

  3. Optimierung des Geldmanagements durch Prüfung von festen Bruchteilen, Kelly-Formel usw. Dies kann die Effizienz der Kapitalnutzung verbessern und gleichzeitig das Risiko pro Handel gewährleisten.

  4. Die Anpassung von Parametern anhand der Produktmerkmale kann die Strategie verbessern.

  5. Die Verwendung von RNN, LSTM usw. kann die Anpassungsfähigkeit der Strategie verbessern.

Schlussfolgerung

Diese Strategie verwendet CT TTM Squeeze, um die Trendrichtung zu bestimmen, Oszillator-Kreuzung 0 als Einstiegssignale und Trailing-Stops, um Risiken zu managen.


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

//@version=2
strategy("CT TTM Squeeze") 
length = input(title="Length",  defval=20, minval=0) 
bband(length, mult) =>
	sma(close, length) + mult * stdev(close, length)
keltner(length, mult) =>
	ema(close, length) + mult * ema(tr, length)
	
	
// Variables
e1 = (highest(high, length) + lowest(low, length)) / 2 + sma(close, length)
osc = linreg(close - e1 / 2, length, 0)
diff = bband(length, 2) - keltner(length, 1)
osc_color = osc[1] < osc[0] ? osc[0] >= 0 ? #00ffff : #cc00cc : osc[0] >= 0 ? #009b9b : #ff9bff
mid_color = diff >= 0 ? green : red

// Strategy

long = osc > 0
short = osc < 0

if long
    strategy.entry("Long", strategy.long)

if short
    strategy.entry("Short", strategy.short) 


plot(osc, color=osc_color, style=histogram, linewidth=2)
plot(0, color=mid_color, style=circles, linewidth=3)


Mehr