Preiskanal-Roboter-White-Box-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-02-28 17: 51:14
Tags:

img

Übersicht

Die Price Channel Robot White Box Strategy ist eine einfache mechanische Handelsstrategie, die auf dem Preiskanalindikator basiert. Sie verwendet die oberen und unteren Grenzen des Preiskanals, um Ein- und Ausstiegspunkte zu bestimmen.

Strategie Logik

Die Kernlogik der Preiskanal-Roboter-White-Box-Strategie ist:

  1. Verwenden Sie höchste und niedrigste Funktionen zur Berechnung des höchsten Höchst- und niedrigsten Tiefstands der jüngsten Len-Bars, definiert als obere und untere Grenzen des Preiskanals
  2. Berechnung des mittleren Preises des Preiskanals: (höchster Höchstwert + niedrigster Tiefwert) / 2
  3. Wenn der Preis über die Obergrenze des Preiskanals bricht, gehen Sie lang
  4. Wenn der Preis unter die untere Grenze des Preiskanals fällt, gehen Sie kurz
  5. Schließung der Position, wenn der Preis auf den mittleren Preis des Preiskanals zurückzieht

Die Strategie hat auch einige konfigurierbare Parameter:

  • Preiskanallänge len: Standard 50 Bar
  • Handelsrichtung: lang, kurz kann separat konfiguriert werden
  • Handelsgröße: Standard 100% des Eigenkapitals
  • Stop-Loss: Option zur Verwendung des mittleren Preises als Stop-Loss
  • Handelszeiten: nur Handel innerhalb des konfigurierten Datumsbereichs

Durch die Anpassung dieser Parameter kann die Strategie besser an verschiedene Produkte und Marktumgebungen angepasst werden.

Analyse der Vorteile

Die White Box-Strategie für den Preiskanal-Roboter hat folgende Vorteile:

  1. Einfache Logik, leicht zu verstehen und umzusetzen
  2. Um den Trend und die Umkehrung zu bestimmen, nutzen Sie den Preiskanalindikator voll aus
  3. Hoch konfigurierbare Parameter für eine bessere Anpassungsfähigkeit
  4. Ein eingebauter Stop-Loss-Mechanismus zur Begrenzung von Verlusten
  5. Unterstützungszeitfilter zur Vermeidung von Auswirkungen großer Ereignisse

Zusammenfassend kann gesagt werden, daß es sich um eine einfache, aber praktische Trendstrategie handelt, die nach Parameter-Tuning gute Ergebnisse erzielen kann.

Risikoanalyse

Die Strategie der "White Box"-Price-Channel-Roboter beinhaltet ebenfalls einige Risiken:

  1. Der Preiskanalindikator ist empfindlich für Parameter len, unabhängige Tests und Optimierungen, die für verschiedene Zeitrahmen und Produkte erforderlich sind
  2. Das Tracking-Stop-Loss besteht die Gefahr, dass es vorzeitig gestoppt wird, die Stop-Loss-Distanz muss anhand der Marktvolatilität angepasst werden.
  3. Übermäßige bedeutungslose Geschäfte auf den Märkten mit Bandbreite und seitlich, steigende Transaktionskosten und Slippage

Um diese Risiken zu verringern, müssen die folgenden Aspekte optimiert werden:

  1. Verwenden Sie Walk Forward Analysis, um die Parameter automatisch zu optimieren
  2. Hinzufügen von Puffer-Zone zum Stop-Loss-Preis, um zu vermeiden, dass gestoppt werden
  3. Hinzufügen von Trendfilter, um den Handel im seitlichen Markt zu vermeiden

Optimierungsrichtlinien

Es besteht Raum für eine weitere Optimierung der Strategie der "White Box"-Roboter für den Preiskanal:

  1. Hinzufügen eines Beurteilungsgrades für einen höheren Zeitrahmen, um einen Gegentrendhandel zu vermeiden
  2. Verwendung der Preisspalte zwischen korrelierten Produkten zur Festlegung von Parametern und Nutzung von Arbitragemöglichkeiten
  3. Hinzufügen von zufälligem Puffer zum Stop-Loss-Preis, um die Wahrscheinlichkeit zu reduzieren, gestoppt aus
  4. Dynamische Anpassung des Preiskanalparameters len basierend auf der Marktvolatilität
  5. Ausbilden von Agenten mit Deep Learning-Methoden zur Optimierung der Strategie für bestimmte Produkte

Diese Optimierungstechniken könnten dazu beitragen, die Stabilität und Rentabilität der Strategie weiter zu verbessern.

Zusammenfassung

Die Price Channel Robot White Box Strategy ist eine einfache, aber praktische Trendfolgestrategie. Sie identifiziert Trendrichtung und Umkehrpunkte, indem sie den Preiskanalindikator verwendet, um Handelsentscheidungen zu treffen. Die Strategie ist leicht zu verstehen und umzusetzen und kann nach Parameter-Tuning anständige Renditen erzielen. Es gibt auch bestimmte Risiken, die durch Optimierung von Parametern und Stop-Loss gemildert werden müssen. Insgesamt hat die Strategie breite Anwendungsperspektiven und Optimierungspotenzial, die es wert sind, erforscht und praktiziert zu werden.


/*backtest
start: 2023-02-21 00:00:00
end: 2024-02-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro

//@version=4
strategy(title = "Robot WhiteBox Channel", shorttitle = "Robot WhiteBox Channel", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
needstop = input(true, defval = true, title = "Stop-loss")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
len = input(50, minval = 1, title = "Price Channel Length")
showll = input(true, defval = true, title = "Show lines")
showbg = input(false, defval = false, title = "Show Background")
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")

//Price Channel
h = highest(high, len)
l = lowest(low, len)
center = (h + l) / 2

//Lines
pccol = showll ? color.black : na
slcol = showll ? color.red : na
plot(h, offset = 1, color = pccol)
plot(center, offset = 1, color = slcol)
plot(l, offset = 1, color = pccol)

//Background
size = strategy.position_size
bgcol = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(bgcol, transp = 70)

//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if h > 0
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = h, when = strategy.position_size <= 0 and truetime)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = l, when = strategy.position_size >= 0 and truetime)
    strategy.entry("S Stop", strategy.long, 0, stop = center, when = strategy.position_size[1] <= 0 and needstop)
    strategy.entry("L Stop", strategy.short, 0, stop = center, when = strategy.position_size[1] >= 0 and needstop)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")

Mehr