Wie man nicht das ganze Geld in ein paar Minuten verliert oder das Risikomanagement im algorithmischen Handel




Einführung


Jetzt ist die Situation sowohl in der Welt als auch im Aktienhandel nicht einfach. Viele Händler werden plötzlich zu Millionären, während andere sofort ihr ganzes Geld verlieren. Eine hohe Marktvolatilität bietet algorithmischen Händlern eine gute Gelegenheit, Geld zu verdienen. Und um friedlich zu schlafen und nicht zu träumen, müssen schwarze Schwäne ihre Konten vor wütenden Robotern und anderen Problemen des algorithmischen Handels schützen.

" Algotrader schläft - der Handel läuft! " - sagen einige Händler gerne. Aber die Realität ist nicht so einfach. Wo beginnt Ihrer Meinung nach der algorithmische Handel? Von der Verbindung zum Austausch oder vom Schreiben eines Algorithmus? Für einen professionellen Teilnehmer beginnt der Handel mit der Entwicklung des Risikomanagements .

Es wird angenommen, dass der algorithmische Handel viel effektiver ist als der klassische Handel. Da Roboter keine emotionalen Lösungen haben, rund um die Uhr einsatzbereit sind, genau wissen, wann sie kaufen und wann sie verkaufen müssen, machen sie Transaktionen mit einer Geschwindigkeit, die für einen normalen Menschen nicht zugänglich ist. Aufgrund ihrer Superkräfte schaffen sie jedoch eine erhöhte Klasse von Risiken.
Zum Beispiel verursachte ein bekannter Fall, der als „Rache der Autos“ in die Geschichte einging  , Verluste in Höhe von 460 Millionen US-Dollar, oder ein kaputter Roboter verursachte Verluste in Höhe von 4,3 Millionen US-Dollar oder Ausfälle an der Moskauer BörseDies führt zu Stopps und Verlusten für Händler usw. Ein solcher Vorfall ist ausreichend und Handelskonten können irreparabel beschädigt werden. Dies gilt insbesondere dann, wenn der Handel marginal ist und der Preis des Fehlers mehrmals steigt.

Ein Trader kann nicht wissen, wie viel er verdienen wird, aber er muss genau wissen, wie viel er verlieren kann. Tatsächlich kommt es bei jedem Handel auf die Risikokontrolle an, und Gewinn ist eine Belohnung für die Beobachtung dieser Risiken.

In diesem Artikel werde ich versuchen, wenn möglich die potenziellen Risiken aufzuzeigen, die mit der Ausführung von Handelsalgorithmen im realen Handel verbunden sind, sowie Maßnahmen zum Schutz vor Ausfällen im Handelssystem. Gleichzeitig werde ich nicht auf das Geldmanagement , die Diversifizierung des Handelsportfolios und die Logik der Handelsstrategien eingehen. Dies ist eine andere Geschichte.

1. Architektonische Lösungen


Bevor ich zur Klassifizierung von Risiken übergehe, werde ich ein wenig über Standardlösungen im Handelsteil des algorithmischen Handels sprechen.

Von den Anforderungen bis zur Geschwindigkeit der Ausführung von Anwendungen werden Handelsroboter auf unterschiedliche Weise gebaut. Wenn diese HFT (z. B. Arbitrage oder Market-Making ) empfindlich auf Verzögerungen reagiert, versuchen sie, den Anwendungspfad vom Algorithmus zum Austausch zu minimieren, und das Konto für Verzögerungen wird in Mikrosekunden ausgegeben. Solche Algorithmen haben in der Regel eine bestimmte Architektur und sind für eine bestimmte Strategie optimiert. In diesem Fall wird das Risikomanagement direkt in die Strategie integriert.

Grundsätzlich sind Handelsstrategien von wenigen Minuten bis zu mehreren Stunden in Position. Je weniger Zeit der Algorithmus in Position ist, desto einfacher ist es, Risiken zu kontrollieren. Mit zunehmender Häufigkeit von Transaktionen steigen jedoch die Provisionskosten, was die Rentabilität der Algorithmen verringert. Handelsstrategien versuchen also, ein Gleichgewicht zwischen Risiko und Gewinn zu finden.

Handelsalgorithmen werden selten einzeln gehandelt. Typischerweise sind diese ganze Familien von Strategien , die in den Portfolios gesammelt werden , zu diversifizieren und stabilisieren die Aktienkurve . Gleichzeitig können Börsendaten für Handelsalgorithmen aus verschiedenen Quellen stammen und Anwendungen können an verschiedene Börsen gesendet werden. Im Zentrum des Handelssystems stehen Motorendiese Route und Optimierung von Daten zwischen Algorithmen und Austausch (siehe Abbildung 1). Normalerweise gibt es andere Engines, zum Beispiel zum Arbeiten mit historischen Daten oder zum Backtesting, aber der Einfachheit halber zeige ich sie nicht.


Abb. 1. Das Architekturschema für den Handelsserver.

2. Allgemeine Klassifizierung von Risiken


  • 2.1. Infrastrukturrisiken
  • 2.2. Probleme beim Verbinden mit der Börse / dem Broker
  • 2.3. Probleme in der Logik von Handelsstrategien

2.1. Infrastrukturrisiken


Der Hauptteil der Probleme in dieser Klasse hängt mit Handelsservern zusammen. Für den algorithmischen Handel ist selbst ein sehr leistungsfähiger PC aus vielen Gründen nicht geeignet: unzuverlässige Geräte, instabile Internetverbindung, schlechte Stromversorgung usw.

Die Hauptrisiken:

  • vollständiger / teilweiser Verlust der Serverleistung;
  • Notstart des Betriebssystems;
  • physischer Serverausfall.

Die Qualität der Lösung dieser Probleme hängt in der Regel von Ihrem Budget und den Anforderungen Ihrer Handelsalgorithmen ab.

2.1.1. Lösungsoptionen


  • Colocation austauschen. Ideale und teuerste Option. Es wird normalerweise in hochprofitablen HFT-Algorithmen oder in großen Unternehmen, beispielsweise Banken, verwendet, wo diese Infrastruktur für andere Handelslösungen wiederverwendet wird.
  • Virtuelle / dedizierte Serververmietung. Wenn Sie kein großer Hedgefonds oder privater Händler sind, verwenden Sie wahrscheinlich diese Option. Eine einfache, leicht anpassbare und skalierbare Lösung. Sie können immer einen Anbieter finden, der den Preis- / Qualitätsparametern entspricht.
  • . . , / , .

2.1.2.


  • / . TIER III uptime 99,98% . .
  • . , . .
  • Die Gangreserve beträgt mindestens 40-50% (CPU, RAM, SSD) im Vergleich zum üblichen Handelsmodus. In der Regel steigt bei starken Marktbewegungen die Belastung der Datenflüsse und Algorithmen beginnen, Transaktionen aktiv auszuführen. In diesem entscheidenden Moment sollten Ihre Server nicht gebremst werden.

2.2. Konnektivitätsprobleme


An Börsen und Maklern treten von Zeit zu Zeit technische Fehler auf. Beispielsweise stürzte der Betrieb der Handelsplattform der Sberbank an der Moskauer Börse ab oder war "unterbearbeitet" , die Börse war zum Mittagessen geschlossen , die Moskauer Börse stellte den Handel aufgrund eines Ausfalls ein usw.

Die Hauptrisiken:

  • Verbindungsunterbrechungen;
  • hohe Verzögerungen;
  • falsche Daten;
  • teilweiser Datenverlust.


2.2.1. Verbindungsunterbrechung


Informationen zu Verbindungsunterbrechungen können auf verschiedene Arten abgerufen werden:

  • Stecker Events API - Connected , Disconnected .
  • Verwenden von Verbindungsüberprüfungsalgorithmen wie Heartbeat , die normalerweise in der API vorhanden sind.
  • Indirekt. Durch den Mangel an Daten in den Datenströmen.

Sie können die Verbindung so konfigurieren, dass die Vermittlungsstelle aktive Bestellungen zurückzieht oder Positionen schließt, wenn die Verbindung unterbrochen / getrennt wird. Sie müssen jedoch mit dieser Funktionalität vorsichtig sein, da bei kurzen Pausen ein ungeplantes Schließen von Positionen höchstwahrscheinlich zu Verlusten und mehr Schaden als Hilfe führt.

Darüber hinaus kommt es häufig vor, dass etwas kaputt geht, wenn es kaputt geht und die ersten Optionen zur Warnung vor Pausen nicht funktionieren. Nur indirekt können wir feststellen, dass etwas schief gelaufen ist.

2.2.2. Datenprobleme


Betrachten Sie zunächst die wichtigsten Arten von Bestandsdaten. Abhängig von der Art des Anschlusses und des Austauschs variieren diese Daten nicht stark, aber im Grunde sind das Plus oder Minus gleich.

Eingehende Änderungen:

  • Brille / Auftragsbuch austauschen
  • Angebote
  • Anwendungen
  • Werbebuchungen
  • Balance

Ausgehende Daten:

  • Registrierungsanträge

Eingehende und ausgehende Daten können von einer oder von verschiedenen Verbindungen stammen. Es kommt vor, dass einer der Threads "leise" abfällt, während der Rest im normalen Modus funktioniert. Selbst wenn die Daten aus derselben Quelle stammen, müssen Sie jeden Stream einzeln überwachen. Datenprobleme

werden normalerweise durch die Implementierung von Tracking-Algorithmen wie WatchDog gelöst . Alle Threads müssen diese Module durchlaufen.

WatchDogs verfolgen:

  • Häufigkeit von Datenaktualisierungen im Stream;
  • Zeitstempelverzögerungen in Daten und aktueller Zeit;
  • Bei Verfügbarkeit von Daten wird das Vorhandensein einer Kommunikation mit dem Austausch festgestellt.

Wenn für eine bestimmte Zeit keine Daten vom Connector stammen oder Verzögerungen den maximal zulässigen Wert überschreiten, werden die entsprechenden Ereignisse generiert und Entscheidungen über weitere Aktionen getroffen.

Für die korrekte Berechnung von Verzögerungen muss ein unabhängiges System zur genauen Synchronisation der Systemzeit implementiert werden. Zum Beispiel mit NTP- Servern .

2.2.3. Lösungsoptionen


Wenn die oben genannten Probleme auftreten, sollte das System die Datenströme sofort von den Algorithmen trennen und versuchen, die Verbindung mit der angegebenen Häufigkeit und Anzahl der Versuche wiederherzustellen. Es ist zu beachten, dass es völlig gerechtfertigte, bisher unvorhergesehene Ursachen für Pausen gibt. Zum Beispiel aufgrund einer verkürzten Handelssitzung an nationalen Feiertagen oder einer unerwarteten Aktualisierung der API und anderer unangemessener Szenarien. In jeder einzelnen Verbindung muss die Wiederverbindung individuell angegangen werden. Andernfalls kann die übermäßige Anzahl von Wiederverbindungsversuchen vom Austausch als Spam-Angriff wahrgenommen werden und zur Kontosperrung führen.

Nach dem erneuten Verbinden und Herunterladen der verlorenen Daten müssen die Handelsalgorithmen über die Wiederherstellung der Arbeit informiert und die verlorenen Daten an diese übertragen werden. Algorithmen sollten die vorgenommenen Änderungen analysieren und entscheiden, was als nächstes zu tun ist. Bleiben Sie in der aktuellen Position, ändern Sie sie oder schließen Sie sie vollständig. Diese Logik sollte in jeder Handelsstrategie implementiert werden.

Die Reihenfolge der Wiederherstellung der Arbeit:

  • wieder verbinden;
  • verlorene Daten hochladen;
  • Algorithmen zur Wiederherstellung der Kommunikation benachrichtigen;
  • verlorene Daten an die Algorithmen übertragen;
  • Streams in Echtzeit wechseln;
  • Die Handelslogik der Algorithmen sollte ihre Positionen normalisieren und Aufträge neu platzieren.

In ähnlicher Weise müssen Sie bei problematischen Daten oder einem teilweisen Funktionsverlust zunächst die Verbindung vollständig wiederherstellen und den Datenfluss normalisieren. Es ist unmöglich, mit Teilarbeitsfähigkeit zu handeln, es ist offensichtlich, dass dies nicht mit etwas Gutem enden wird.

2.3. Probleme in der Logik von Handelsstrategien


Die gefährlichsten, heimtückischsten und unvorhersehbarsten Probleme lauern in der programmierten Logik von Handelsstrategien. Egal wie durchdacht Handelsalgorithmen sein mögen, es ist unmöglich, alle Szenarien vorherzusehen. Verschiedene Faktoren und ihre Kombination können zu unerwartetem Verhalten führen. Darüber hinaus können einige Fehler jahrelang lauern und im unerwartetsten Moment "auftauchen".

2.3.1. Klassifizierung von Problemen


  1. Fehler in Anwendungen:
    • Negativer Preis / Volumen;
    • Richtung umkehren;
    • Falscher Typ usw.
  2. API-Fehler:
    • Nicht alle Felder werden in der Transaktion ausgefüllt.
    • Verwenden einer veralteten Version der API;
    • ..
  3. :
    • ;
    • ;
    • ;
    • « »;
    • .
  4. :
    • ;
    • ;
    • .
  5. :
    • ;
    • .
  6. :
    • ;
    • ;
    • ;
    • .
  7. :
    • ;
    • ;
    • Eine große Anzahl von Anwendungen, die nicht zu Transaktionen führen.
  8. Fehlende Ausnahmebehandlung im Programmcode der Handelsstrategien

Einige Fehler können jedoch zu anderen führen. Zum Beispiel führt das Stoppen des Algorithmus aufgrund eines groben Fehlers zu einer Verletzung der Position und infolgedessen zu einer Verletzung von Grenzwerten.

2.3.2. Lösungsoptionen


Die Lösung dieser Probleme besteht in der Kontrolle der Anwendungen und Grenzen der Handelsstrategien (siehe Abschnitt 3). Darüber hinaus sollte jede Ausnahme im Programmcode dazu führen, dass der problematische Algorithmus sofort gestoppt und alle aktiven Anwendungen zurückgezogen werden.

3. Überwachung von Anwendungen und Grenzen von Handelsstrategien


Vielleicht sind dies die wichtigsten Möglichkeiten, um die Risiken des Handelssystems zu steuern. Jeder Fehler führt schließlich zu einer Abweichung von Position, Bewerbung und Bargeld. Die Aufgabe besteht darin, diese Änderungen so schnell wie möglich zu bemerken und umgehend Maßnahmen zu ergreifen.

Schecks können in zwei Typen unterteilt werden:
3.1. Grundlegende Überprüfung von Anträgen
3.2. Grenzwertanalyse und -kontrolle

3.1. Grundlegende Anwendungsüberprüfung


Alle ausgehenden Anfragen sollten überprüft werden auf:

  • grobe Fehler;
  • Richtigkeit und ausreichende Daten für die API;
  • Einhaltung der Spezifikationen gehandelter Instrumente;
  • Einhaltung der Gebotsbestimmungen usw.

Diese Überprüfungen werden durchgeführt, bevor Anträge an die Vermittlungsstelle gesendet werden. Je früher ein Fehler gefunden wird, desto einfacher ist es, seine Folgen zu beseitigen. Warten Sie nicht, bis offensichtliche Fehler vom Anschluss kommen. Es ist besser, Probleme zu lösen, bevor sie auftreten. Darüber hinaus kann das Senden fehlerhafter Transaktionen zu verschiedenen Sanktionen durch die Börse führen.

3.2. Kontrolle begrenzen


Zur Kontrolle der Grenzwerte wird Folgendes überprüft:
3.2.1. Änderung des Gleichgewichts und der Position vor der Anforderung
3.2.2. Änderung der aktuellen Bilanz und Position
3.2.3. Preis und Umfang der Anwendung
3.2.4. Anwendungsverhalten

3.2.1. Analyse von Veränderungen in Balance und Position vor der Einreichung eines Antrags


Vor dem Einreichen eines Registrierungsantrags wird eine mögliche Änderung des Saldos und der Position im Falle der Ausführung des Antrags geprüft. Wenn das Limit für diesen Algorithmus überschritten wird, wird die Order nicht gesendet und eine Fehlermeldung an die Handelsstrategie gesendet.

3.2.2. Analyse von Änderungen in der aktuellen Bilanz und Position


Es werden Grenzen für die Änderung des gehandelten Volumens und der Position auf Instrumenten für Zeiträume gebildet: 15 Sekunden, 30 Sekunden, 1 Minute, 5 Minuten, 15 Minuten, 1 Stunde, 1 Tag. Durch die ständige Überwachung von Änderungen über Zeiträume können Sie die Abweichung im Verhalten erkennen und den Handel einstellen, bis die Abweichung kritisch wird.

Es kommt vor, dass Probleme mit dem Algorithmus nicht sofort auftreten. Er kann langsam und ohne Überschreiten der Grenzen für kurze Zeit zu "verschmelzen" beginnen. Sie können morgens aufwachen und aufgrund eines nicht sehr „kaputten“ Algorithmus einen signifikanten Drawdown feststellen. Brauchen wir es Wir brauchen es nicht.

3.2.3. Preis- und Volumenanalyse


Vor dem Absenden des Registrierungsantrags wird überprüft, ob das maximale und minimale Volumen des Antrags überschritten werden darf. Leider hat niemand die Rechenfehler in Formeln und Berechnungen aufgehoben.

Wenn möglich, ist es wichtig, die Abweichung des Angebotspreises vom durchschnittlichen Marktpreis zu überprüfen. Überprüfen Sie dazu den Preis aus anderen Quellen für ein ähnliches Handelsinstrument. Diese Überprüfungen sind besonders relevant, wenn der Handel an einer illiquiden Börse durchgeführt wird oder eine ungewöhnlich hohe Volatilität für ein gehandeltes Instrument beobachtet wird.

Wenn die Änderungen die angegebenen Grenzwerte überschreiten, werden Anträge abgelehnt, bevor sie an die Vermittlungsstelle gesendet werden.

3.2.4. Analyse des Anwendungsverhaltens


Hier geprüft:

  • die Anzahl der Anträge, die nicht zu Transaktionen führen;
  • Anzahl aktiver Anwendungen;
  • Anwendungshäufigkeit für Zeiträume von 1 s, 3 s, 5 s, 15 s, 30 s, 1 min.

Die Börsen haben ihre eigenen Grenzen für die Anzahl der aktiven Aufträge und die Häufigkeit ihrer Übermittlung. Wenn sie den Zugang zum Handel überschreiten, können sie ausgesetzt werden. Und es wird möglich sein, Positionen nur manuell zu normalisieren.

Eine der gefährlichsten und riskantesten Situationen ist, wenn ein Handelsroboter unkontrolliert zu kaufen und zu verkaufen beginnt und eine große Anzahl von Bestellungen pro Sekunde aufgibt. Bevor der Roboter eine große Position einnimmt oder eine Provision abwickelt, sollte dieser Schutz funktionieren. Zumindest muss sie zusätzliche Zeit geben, damit andere Schutzmechanismen funktionieren können.

Diese Überprüfungen werden auf mehreren Ebenen durchgeführt:

1. Auf Steckerebene.Der Anschlussschutz „verlangsamt“ Anwendungen, wenn sich die Belichtungsfrequenz dem Maximum nähert. Dies ist notwendig, um den Zugang zur Vermittlungsstelle nicht zu verlieren. Diese Maßnahmen sind extrem, daher ist es wichtig, die Belastung des Steckverbinders im Voraus korrekt zu berechnen.

2. Auf der Ebene einer Handelsstrategie. Wenn der Algorithmus seine Grenze für die Häufigkeit der Einreichung von Anträgen überschreitet, wird er mit einem Fehler zwangsweise gestoppt. In diesem Fall werden alle zuvor eingereichten aktiven Anträge entfernt.

4. Integration des Risikomanagements in die Architekturlösung


Die Integration des Risikomanagements kann in zwei Hauptteile unterteilt werden (siehe Abb. 2):

  • PRE-TRADE umfasst die grundlegende Kontrolle von Bestellungen, die Kontrolle von Preis und Volumen der Bestellung, die Kontrolle von Änderungen des Saldos und der Position vor der Auftragserteilung. Hier wird auch das Verhalten von Bestellungen analysiert.
  • POST-TRADE beinhaltet die Überprüfung auf Verbindungsunterbrechungen und die Richtigkeit von Marktdaten, die ständige Überwachung von Änderungen des Saldos und der aktuellen Positionen wird durchgeführt, das Verhalten von Aufträgen wird auch hier analysiert.



Feige. 2. Das Schema der Integration des Risikomanagements in die Architekturlösung für den Handelsserver.

5. Protokollierung und Berichterstellung


Vergessen Sie nicht, dass auch nicht standardisierte Situationen auftreten und dass sie heute auch in hochautomatisierten Systemen nicht ohne menschliches Eingreifen auskommen können. Wenn etwas schief gelaufen ist, müssen Sie daher sofort alle interessierten Parteien (Händler, Entwickler, Manager) benachrichtigen, indem Sie automatisch Nachrichten per E-Mail, SMS, Telegramm oder auf andere bequeme Weise senden. Idealerweise sollte es immer einen Pflichthändler geben, der die Leistung des Handelssystems überwacht.

Im Falle eines Fehlers müssen Sie das Problem schnell finden, beheben und das Handelssystem wieder in Betrieb nehmen. Zu diesem Zweck müssen detaillierte Handels- und Systemprotokolle geführt werden, insbesondere in hoch ausgelasteten Systemen mit einem großen Anwendungsfluss. Wenn die Fehlerursachen nicht gefunden werden, kann der nächste Fehler schwerwiegend sein. Der Austausch vergibt in der Regel keine Fehler und bestraft sofort den Rubel.

Fazit


In der Regel beginnt sich das Risikomanagement für die Handelsalgorithmen in der letzten Runde zu "beschleunigen", wenn einige Vorfälle aufgetreten sind und sich herausgestellt hat, dass Sie nicht darauf verzichten können.

So wie Sicherheitsmaßnahmen in Blut geschrieben sind, wird das Risikomanagement im algorithmischen Handel in Margin Calls und zusammengeführten Konten geschrieben.

Wenn Sie jedoch ein Handelssystem korrekt aufbauen und das Risikomanagement einrichten, können Sie ruhig schlafen und sicher sein, dass „ Algotrader schläft - der Handel läuft! “. Guter Handel für

alle!

All Articles