Preiskanalbasierte Breakout-Strategie


Erstellungsdatum: 2024-01-16 14:22:57 zuletzt geändert: 2024-01-16 14:22:57
Kopie: 0 Klicks: 664
1
konzentrieren Sie sich auf
1617
Anhänger

Preiskanalbasierte Breakout-Strategie

Überblick

Die Strategie, die als “Price Channel-Breakthrough-Strategie” bezeichnet wird, basiert auf der Idee, dass der Preiskanal verwendet wird, um Markttrends und -richtungen zu beurteilen und eine Position zu erstellen, wenn der Preis den Kanal durchbricht. Er zeichnet zuerst den Kanalbereich des Preises aus und beurteilt dann, ob zwei aufeinanderfolgende rote oder grüne K-Linien auftreten. Wenn die letzte K-Linie die Hälfte des Kanals durchbricht und sich außerhalb des Kanals befindet, erzeugt dies ein Kauf- oder Verkaufssignal.

Strategieprinzip

Die Strategie berechnet die Höchst- und Tiefstpreise der vergangenen Zeiträume durch die Funktionen highest () und lowest () und bestimmt damit die Auf- und Abwärtsbahnen des Preiskanals. Die mittlere Linie des Kanals wird als Mittelwert der Auf- und Abwärtsbahnen definiert. Dann wird die Größe der K-Linien-Einheiten berechnet und durch SMA-Gleichung beurteilt, ob die letzte K-Linien-Einheit größer ist als die Hälfte der durchschnittlichen Einheit.

Analyse der Stärken

Es ist eine bahnbrechende Strategie, die die Preiskanäle nutzt, um Trends zu bestimmen. Es hat folgende Vorteile:

  1. Die Verwendung von Preiskanälen zur Bestimmung der Gesamttrendrichtung kann den Marktlärm wirksam filtern.

  2. Zwei aufeinanderfolgende K-Linien sind einseitige Durchbruchkanäle, was auf eine starke Dynamik und eine hohe Durchbruchrate hindeutet.

  3. Die K-Line-Einheit, die mehr als die Hälfte der durchschnittlichen Einheit ausmacht, kann vermieden werden, von einem falschen Durchbruch betrogen zu werden.

  4. Die Strategie ist einfach zu verstehen und umzusetzen.

  5. Anpassungsfähige Parameter wie Kanalzyklus, Handelsart, Handelszeit usw.

Risikoanalyse

Die Strategie birgt auch einige potenzielle Risiken:

  1. Die Wahrscheinlichkeit, dass ein Durchbruch fehlschlägt, kann zu Verlusten führen.

  2. In den letzten Jahren hat sich die Situation in der Türkei weiter verschlechtert.

  3. Es fehlen Schadenshemmungsmechanismen und es ist unmöglich, die Verluste effektiv zu kontrollieren.

  4. Einfache Handelsregeln und das Risiko einer Überschneidung.

  5. Das Unternehmen ist nicht in der Lage, sich einem komplexeren Marktumfeld anzupassen.

Die entsprechenden Lösungen sind wie folgt:

  1. Optimierung der Parameter und Erhöhung der Durchbruchrate.

  2. Die Schwankungen werden in den Index einbezogen, um Schwankungen vorzubeugen.

  3. Erweiterung der mobilen Stop-Loss-Einstellungen.

  4. Komplexitätstests und Prüfung der Passform.

  5. Die Entwicklung von Algorithmen für maschinelles Lernen, um die Adaptibilität von Strategien zu verbessern.

Optimierungsrichtung

Die Optimierung der Strategie basiert auf folgenden Aspekten:

  1. Erhöhung der Stop-Loss-Mechanismen, um Risiken besser zu kontrollieren. Es ist möglich, Preise Rückschlag Stop-Loss zu setzen, oder Sie können mit Indikatoren wie ATR bewegliche Stop-Loss setzen.

  2. Optimierungsparameter, wie z. B. Durchlauf-Periode, Durchbruch-Grad-Parameter usw. Die optimale Parameter können durch genetische Algorithmen, Netzsuche usw. gefunden werden.

  3. Erhöhung der Filterbedingungen, um die Sicherheit eines Durchbruchs zu erhöhen.

  4. Das Hinzufügen von maschinellen Lernmodellen, die mehr Daten nutzen, um die Vorhersagefähigkeit und Anpassungsfähigkeit von Strategien zu verbessern. Deep Learning wie LSTM kann beispielsweise komplexere Situationsmuster erfassen.

  5. Kombinationsoptimierung, die Kombination verschiedener Arten von Durchbruchstrategien, die orthographie und die Verringerung der Ähnlichkeit.

Zusammenfassen

Die Strategie als Ganzes ist eine quantitative Strategie, die auf dem Trend der Preiskanalentscheidung basiert, um Durchbruchsignale zu entdecken. Es gibt Trendentscheidungen, die den Vorteil des Durchbruchs bestätigen, aber es gibt auch ein gewisses Risiko für einen falschen Durchbruch. Wir können die Strategie durch Optimierung von Parametern, Stop-Loss-Einstellungen und die Hinzufügung von Bedingungsfiltern verbessern und das Risiko verringern.

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"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Price Channel Strategy v1.0", shorttitle = "Price Channel str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel")
showcl = input(true, defval = true, title = "Show center-line")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
src = close

//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
col = showcl ? blue : na
plot(center, color = col, linewidth = 2)

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1

//Signals
body = abs(close - open)
abody = sma(body, 10)
up = rbars and close > center and body > abody / 2
dn = gbars and close < center and body > abody / 2
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if exit
    strategy.close_all()