Dynamische Trendfolge-Umkehrstrategie


Erstellungsdatum: 2024-01-16 15:35:18 zuletzt geändert: 2024-01-16 15:35:18
Kopie: 0 Klicks: 592
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Trendfolge-Umkehrstrategie

Überblick

Die Dynamische Trend-Tracking-Umkehrstrategie ist eine kurzfristige, quantitative Handelsstrategie, die auf JD Sequential-Indikatoren basiert. Die Strategie verfolgt die Höhen und Tiefen der Preise in Echtzeit, um die Richtung und Stärke des aktuellen Trends zu beurteilen, um die Marktumkehrpunkte effizient zu erfassen und die Ein- und Ausstiegszeiten festzulegen. Im Vergleich zur traditionellen JD Sequential-Strategie wurden folgende Verbesserungen vorgenommen:

  1. Die Verwendung von Höhen und Tiefen, um Trends zu bestimmen, anstatt die Kurse abzuschließen, ermöglicht eine schnellere Erfassung von Preisänderungen.
  2. Der Zähler hat eine maximale Anzahl von 7 statt 9 und erzeugt so ein schnelleres Handelssignal.
  3. Hinzugefügt wurde die Option, die Widerstandslinie zu unterstützen und die 5-Zähl-Umkehr als Stop-Loss zu verwenden.

Die Strategie ist für kurze Zeitspannen geeignet, wie 5 Minuten, 15 Minuten, und kann kurzfristige Preisschwankungen und Umkehrmöglichkeiten effektiv erfassen.

Strategieprinzip

Die Kernlogik der Trend-Tracking-Umkehr-Strategie basiert auf dem JD Sequential-Indikator, der durch den Vergleich der aktuellen Periode mit den Höhen und Tiefen der beiden vorherigen Perioden beurteilt, ob die Preise in Folge höhere Höhen oder niedrigere Tiefen erzielen, was eine Sequenzzahl von 1 bis 7 ergibt. Die Summe von 7 erzeugt einen Handel.

Die Strategie definiert die folgenden Variablen:

  • sp_up: wahr, wenn der Höchstpreis den Höchstpreis der vorherigen zweiten Periode überschreitet
  • sp_dn: ist wahr, wenn der niedrigste Preis niedriger ist als der niedrigste Preis der vorherigen zweiten Periode
  • sp_ct: Aufzeichnung des aktuellen Zählens, + 1 Zählung, maximal 7 wenn sp_up oder sp_dn wahr ist
  • sp_com: ist wahr, wenn die Zählung gleich 7 ist
  • sp_usr: Mittelwert bei Sp_up mit 7 als Aufwärtswiderstand
  • sp_dsr: Mittelwert bei 7 und sp_dn als Abwärtsstützung

Die Logik der Handelssignale lautet:

  • Long-Position-Signal: sp_com ist true und sp_dn ist true, was bedeutet, dass die Zählung abgeschlossen ist und in einem Abwärtstrend ist
  • Kurzsignal: sp_com ist true und sp_up ist true, was bedeutet, dass die Zählung abgeschlossen ist und im Aufwärtstrend ist

Die Stop-Loss-Logik ist:

  • Long-Stopp: Countdown umgekehrt auf 5 ((sp_up ist true) oder der Preis aufsp_usr
  • Short Stop: Countdown umgekehrt auf 5 ((sp_dn ist true) oder Preis unter Sp_dsr

Die Strategie ermittelt die Richtung und Stärke des Trends anhand von Highs und Lows in Echtzeit. Der Zähler zeichnet den Einstieg und kann kurzfristige Umkehrmöglichkeiten effektiv erfassen. Gleichzeitig wird eine Stop-Loss-Linie festgelegt, um das Risiko zu kontrollieren.

Analyse der Stärken

Im Vergleich zu herkömmlichen JD Sequential-Strategien bietet die Dynamic Trend Tracking Reversal-Strategie folgende Vorteile:

  1. Schnellere Signalerzeugung. Die Verwendung von Hoch-Low-Punkt-Vergleichen kann Trends schneller als der Schlusskurs erfassen, und ein 7er kann ein Signal schneller erzeugen als ein 9er.
  2. Erhöhung des Stopp-Mechanismus. Die Hinzufügung von 5 Countdown-Rückgängigmachungen und Unterstützung von Widerstands-Stopps ermöglicht eine bessere Risikokontrolle.
  3. Flexibel zu konfigurieren. Sie können wählen, ob ein Stop-Loss hinzugefügt wird und ob die Teilzählung angezeigt wird.
  4. Für Kurzstrecken eignet sich: Hochfrequenzsignale mit entsprechender Dämpfung, besonders für kurze Zeitspannen.

Die Hauptvorteile dieser Strategie sind die schnelle Reaktion und die Fähigkeit, große Schwankungen, die durch kurzfristige Unerwartete Ereignisse verursacht werden, effektiv zu erfassen. Gleichzeitig können die algorithmischen Signalerzeugung und -stop im Vergleich zu vollständig manuellen Transaktionen die emotionale Wirkung der Händler reduzieren und somit die Stabilität verbessern.

Risikoanalyse

Eine Trend-Tracking-Umkehrstrategie birgt auch Risiken:

  1. Hochfrequente Transaktionen erhöhen die Transaktionskosten. Eine höhere Transaktionsfrequenz führt zu höheren Gebühren und Slippunktkosten.
  2. In einem wackligen Markt kann der Vergleich von Höhen und Tiefen häufig ein Handelssignal auslösen, das leicht eingeschlagen werden kann.
  3. Ein zu radikaler Stopp. Ein harter Stopp kann leicht ausgeschaltet werden, und ein zeitnahes Versetzen des Stopps kann in Betracht gezogen werden.

Um die oben genannten Risiken zu verringern, können Optimierungen in folgenden Bereichen vorgenommen werden:

  1. Um die Größe der Positionen anzupassen und die Kapitalbeanspruchung pro Einzeltranche zu reduzieren.
  2. In der Folge des Aufruhrs wird der Handel unterbrochen, um die Nichtigkeit der Geschäfte zu vermeiden.
  3. Die Verringerung der Schlagwahrscheinlichkeit wird durch die Verwendung von mobilen Stop-Stops oder Split-Breakouts vermieden.

Richtung der Strategieoptimierung

Es gibt noch viel Optimierungsmöglichkeiten für die Trend-Tracking-Umkehr-Strategie.

  1. Mehrzeit-Perioden-Palette. Sie ermöglicht es, die Richtung des Haupttrends in höheren Zeiträumen zu bestimmen und den Handel mit dem Haupttrend zu vermeiden.

  2. Mit anderen Indikatoren kombiniert. Kann mit anderen Indikatoren kombiniert werden, wie z. B. Schwankungsrate, Umsatz, um die Qualität des Signals zu verbessern.

  3. Maschinelle Lern-Filterung. Die Verwendung von maschinellen Lern-Algorithmen hilft bei der Beurteilung von Handelssignalen und reduziert die Anzahl fehlerhafter Geschäfte.

  4. Parameteroptimierung. Parameter wie Anzahl der Zählzyklen, Handelszeiträume und Positionsanteil können optimiert werden, um den verschiedenen Marktbedingungen gerecht zu werden.

  5. Erhöhung der Risikokontrollmechanismen. Hinzu kommen umfangreichere Risikokontrollmechanismen wie beispielsweise mobile Stop-Losses und Positionskontrolle, um die Risiken weiter zu begrenzen.

  6. Erweiterung der Probenmenge und der Zeitspanne der Rückmessung, Stabilität der Testparameter.

Zusammenfassen

Die Dynamische Trend-Tracking-Umkehr-Strategie erzeugt Handelssignale durch die Richtung und Stärke von Trends in Echtzeit an höheren und niedrigeren Punkten und nutzt die 7-Zählregeln des JD Sequential-Indikators, um kurzfristige Umkehrmöglichkeiten mit hoher Frequenz zu erfassen. Im Vergleich zur herkömmlichen JD-Strategie wurden Verbesserungen vorgenommen, um mit höheren und niedrigeren Punkten zu handeln, die Zählzyklus zu verkürzen und die Stop-Loss-Mechanismen zu erhöhen, um zeitnahere Handelssignale zu erhalten.

Die wichtigsten Vorteile dieser Strategie sind die schnelle Reaktion und die geeignete Kurzlinie, um Rückschläge zu erfassen, aber auch die Risiken, wie häufige Transaktionen, Radikalisierung der Verluste. Die zukünftigen Optimierungsrichtungen umfassen Parameteranpassung, Erhöhung der Risikomanagementmechanismen, Kombination von mehreren Zeitzyklen usw. Durch kontinuierliche Optimierung und Wiederholung wird die Strategie zu einem leistungsfähigen Werkzeug für die effiziente Erfassung von kurzfristigen Rückschlagsignalen werden.

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

// @NeoButane 7 Dec. 2018
// JD Aggressive Sequential Setup
// Not based off official Tom DeMarke documentation. As such, I have named the indicator JD instead oF TD to reflect this, and as a joke.
//
// Difference vs. TD Sequential: faster trade exits and a unique entry. Made for low timeframes.
// - Highs or lows are compared instead of close.
// - Mirrors only the Setup aspect of TD Sequential (1-9, not to 13)
// - Count maxes out at 7 instead of 9. Also part of the joke if I'm going to be honest here

// v1 - Release - Made as a strategy, 7 count
//    . S/R on 7 count
//   .. Entry on 7 count
//  ... Exit on 5 count or S/R cross

//@version=3
title = "JD Aggressive Sequential Setup"
vers  = " 1.0 [NeoButane]"
total = title + vers
strategy(total, total, 1, 0)

xx        = input(true, "Include S/R Crosses Into Stop Loss")
show_sp   = input(true, "Show Count 1-4")
sp_ct     = 0
inc_sp(x) => nz(x) == 7 ? 1 : nz(x) + 1
sp_up     = high > high[2]
sp_dn     = low < low[2]
sp_col    = sp_up ? green : red
sp_comCol = sp_up ? red : green
sp_ct    := sp_up ? (nz(sp_up[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : sp_dn ? (nz(sp_dn[1]) and sp_col == sp_col[1] ? inc_sp(sp_ct[1]) : 1) : na
sp_com    = sp_ct == 7
sp_sr     = valuewhen(sp_ct == 5, close, 0)
sp_usr    = valuewhen(sp_ct == 7 and sp_up, sma(hlc3, 2), 0)
sp_usr   := sp_usr <= sp_usr[1] * 1.0042 and sp_usr >= sp_usr[1] * 0.9958 ? sp_usr[1] : sp_usr
sp_dsr    = valuewhen(sp_ct == 7 and sp_dn, sma(hlc3, 2), 0)
sp_dsr   := sp_dsr <= sp_dsr[1] * 1.0042 and sp_dsr >= sp_dsr[1] * 0.9958 ? sp_dsr[1] : sp_dsr
locc = location.abovebar
plotchar(show_sp and sp_ct == 1, 'Setup: 1', '1', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 2, 'Setup: 2', '2', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 3, 'Setup: 3', '3', locc, sp_col, editable=false)
plotchar(show_sp and sp_ct == 4, 'Setup: 4', '4', locc, sp_col, editable=false)
plotshape(sp_ct == 5, 'Setup: 5', shape.xcross, locc, sp_comCol, 0, 0, '5', sp_col)
plotshape(sp_ct == 6, 'Setup: 6', shape.circle, locc, sp_comCol, 0, 0, '6', sp_col)
plotshape(sp_ct == 7, 'Setup: 7', shape.circle, locc, sp_comCol, 0, 0, '7', sp_col)
// plot(sp_sr, "5 Count Support/Resistance", gray, 2, 6)
plot(sp_usr, "7 Count Resistance", maroon, 2, 6)
plot(sp_dsr, "7 Count Support", green, 2, 6)

long  = (sp_com and sp_dn)
short = (sp_com and sp_up)
sl_l  = xx ? crossunder(close, sp_dsr) or (sp_ct == 5 and sp_up) or short : (sp_ct == 5 and sp_up) or short
sl_s  = xx ? crossover(close, sp_usr) or (sp_ct == 5 and sp_dn) or long : (sp_ct == 5 and sp_dn) or long

strategy.entry('L', 1, when = long)
strategy.close('L', when = sl_l)
strategy.entry('S', 0, when = short)
strategy.close('S', when = sl_s)