Im vorherigen Artikel „Hard-Core Information – Details and Thoughts on Automated Real Offering of Quantitative Trading System (I. Probleme und Schwierigkeiten)“ ging es um einige grundlegende Probleme des realen Handels im Währungskreis. In diesem Artikel geht es um den Hauptzweck des Firmenangebots.

Ich denke, es gibt vier Hauptgründe:

1. Implementieren Sie die etablierte Logik der Strategie

Daran besteht kein Zweifel. Wenn ein Signal vorhanden ist, müssen entsprechende Vorgänge ausgeführt und Positionen geöffnet und geschlossen werden. Dieser Punkt erfordert, dass Sie versuchen, keine Limit-Orders zu verwenden. Andernfalls müssen Sie die Order weiterverfolgen. Der Preis ist möglicherweise bereits zu weit gegangen Frage.

Auf lange Sicht ähnelt der durch die Verwendung von Marktaufträgen verursachte Slippage in etwa dem Slippage, der durch das gelegentliche Fehlen von Limitaufträgen, aber das Verfolgen von Aufträgen verursacht wird. Daher ist es besser, direkt in den Markt ein- und auszusteigen, es sei denn, Ihre Strategie ist sehr speziell.

Wenn Sie Limit-Orders verwenden, wird Ihr Code außerdem komplizierter, da Sie nicht ausgeführte Limit-Orders verwalten und dann Orders verfolgen müssen. Und was, wenn nur ein Teil der Limit-Order ausgeführt wird? Hängen die verbleibenden Limit-Orders immer? Oder sollte ich den Teil verpassen und eine andere Marktorder erteilen? Diese Art von Ein-Schritt-Vorgang generiert mehrere Transaktionsaufträge, und die anschließende Überprüfung ist ebenfalls mühsam und kann leicht verwechselt werden. Daher ist es besser, einfach die Marktorder zu verwenden. Solange die Einreichung erfolgreich ist, ist die Transaktion grundsätzlich garantiert. Wenn es sich tatsächlich um eine Slippage-empfindliche Strategie handelt, dann handeln Sie nur mit Zielen mit guter Liquidität.

Auch bei Verträgen sollte der Hebel nicht beliebig verändert werden. Es ist am besten, den idealen Hebel für das Backtesting zu verwenden und ihn dann um 20 % zu diskontieren. Prognostizieren Sie den Markt nicht subjektiv und passen Sie die Hebelwirkung manuell an. Auch das Ändern von Positionen ist im automatisierten Handel ein Tabu.

Es ist am besten, automatisch zu gewinnen oder zu verlieren und die Position zu reduzieren. Wenn das Retracement ein bestimmtes Niveau erreicht, sollte man nicht das Gegenteil tun und denken, dass der Wind bald kommt, und den Hebel erhöhen Kapital reduzieren und die Hebelwirkung verringern). Das Wichtigste ist, dass Sie Ihr Konto am Leben halten, also bleiben Sie zunächst ungeschlagen. Sie können warten, bis die Kapitalkurve die Retracement-Periode durchlaufen hat, bevor Sie die Hebelwirkung wieder erhöhen. Wenn jedoch das Zinseszinsmodell verwendet wird, handelt es sich bereits um einen einfachen automatischen Gewinn- und Verlustvertrag.

2. Minimieren Sie den Schlupf

Dies wurde im vorherigen Artikel erwähnt. Schlupf kann nicht beseitigt, sondern nur gemildert werden. Dies erfordert, dass Sie so schnell wie möglich Marktpreisinformationen sowie verschiedene Fonds- und Positionsinformationen auf dem Börsenkonto einholen, damit Sie schnell reagieren können.

In Bezug auf die Gesamtstruktur des realen Angebots gibt es viele Unterstrategien und es erfordert die rechtzeitige Beschaffung verschiedener Informationen. Daher ist ein spezielles Websocket-Marktzentrum erforderlich, um die Aufgaben zu teilen. Ausgestattet mit dem Plan B-Marktzentrum von Restful als Backup. Wenn also der WebSocket getrennt wird und keine Verbindung hergestellt werden kann, fällt immer noch ein relativ neuer Preis an, um zu beurteilen, ob ein Verlassen des Marktes erforderlich ist. Beim Laufen muss man schnell sein. Es ist besser, in die falsche Richtung zu laufen, als im Stau zu stehen und nicht zu wissen, was die Zukunft bringt.

3. Langzeitbetrieb

Dies wurde im vorherigen Artikel erwähnt. Der Währungskreis läuft rund um die Uhr und Ihr Code kann nicht heruntergefahren werden. Dies setzt voraus, dass der Code nicht durch verschiedene ausgelöste Ausnahmen unterbrochen wird und dass Code zur Bewältigung verschiedener unerwarteter Situationen vorhanden sein muss. Es sollten auch keine Fehler wie Speicherlecks vorliegen, da sonst das Programm mit der Zeit abstürzt und sogar der gesamte Server heruntergefahren wird. Glücklicherweise ist Python für solche Probleme nicht anfällig. Es verfügt über einen automatischen Speicherrecyclingmechanismus. Wenn es nicht funktioniert, können Sie das Handelsprogramm jeden Tag oder einige Tage lang manuell neu starten. Es handelt sich jedoch um einen Handel mit mittlerer und niedriger Frequenz. Dabei handelt es sich um grundlegende Anforderungen für die Back-End-Codeentwicklung, die leicht zu erreichen sind.

Im Allgemeinen wird beim quantitativen Handel Python verwendet. Ein Hauptmerkmal von Python, einer Skriptsprache, ist die dynamische Kompilierung, die eine etwas geringere Ausführungseffizienz aufweist, da sie nicht einfach zu debuggen ist, da sie gleichzeitig kompiliert und ausgeführt wird (aber sie hat keinen Einfluss auf Transaktionen mit mittlerer und niedriger Frequenz). alle). Wenn in der Logik des Codes ein Problem liegt, ist es möglicherweise nicht leicht zu erkennen. Wenn beispielsweise 100 Codezeilen vorhanden sind und in Zeile 99 ein Problem auftritt, der Code jedoch jedes Mal nur bis Zeile 95 ausgeführt wird, wird das Problem nicht erkannt, da der Fehler erst nach dem Ausführen bis Zeile 99 und dem Auslösen des Codes gefunden werden muss Relevanter Code Dies kann jedoch zu spät sein und das Programm stürzt direkt ab, wenn Sie nicht versuchen, eine Ausnahme abzufangen.

Zu dem oben genannten Problem gehört tatsächlich noch eine weitere Funktion. Da Python stark typisiert ist, sind implizite Konvertierungen selten. Wenn Sie dem vom Server gesendeten Datentyp, insbesondere diesen Zahlen, zu sehr vertrauen, erleiden Sie wahrscheinlich einen Verlust, da die Zahlen manchmal zu Zeichenfolgen werden. Unterschiedliche Währungen in der Börse, unterschiedliche API-Versionen und dieselben Rückgabedaten von Websocket und Rest können unterschiedlicher Art sein. Daher müssen Sie die Transformation grundsätzlich jedes Mal erzwingen oder zunächst feststellen, ob eine Transformation erforderlich ist.

Verwechseln Sie außerdem nicht die Eröffnungs- und Schlusspositionen verschiedener Strategien, insbesondere nicht derjenigen derselben Währung, und isolieren Sie sie gut. Andernfalls wird Strategie A unter bestimmten extremen Marktbedingungen die Position von Strategie B schließen, was schließlich zu einer Fehlausrichtung führt. Möglicherweise müssen Sie das eigentliche Angebot stoppen und erneut beginnen, was inkohärent ist und Sie möglicherweise wichtige Markttrends verpassen.

Mit einem Wort: Alles ist auf einen langfristigen, vollautomatischen und eingriffsfreien Betrieb des eigentlichen Geschäfts ausgerichtet.

Wenn die Strategie jedoch zu komplex ist, ist es möglicherweise nicht einfach, einen völlig interventionsfreien Ansatz zu erreichen. Auch die Vereinfachung der Strategie ist ein Ausgangspunkt, machen Sie sie nicht zu kompliziert. Beispielsweise sollten Signale wie OBV sparsam eingesetzt werden, da OBV langfristige Preis- und Volumeninformationen verfolgen muss und der reale Handel zu viele Daten verwalten muss. Jede Unterbrechung und jeder Neustart ist eine problematische Angelegenheit. Vermeiden Sie als letzten Ausweg solche Faktoren.

4. Risikokontrolle

Dies ist die oberste Priorität der Angebotsanforderungen des Unternehmens.

Das Gefährlichste ist, eine Position nicht schließen zu können. Der Markt drehte sich in die entgegengesetzte Richtung und tobte weiter. Infolgedessen geriet Ihr Exit-Code außer Kontrolle, egal aus welchem ​​Grund, die Position wurde mit Verlusten geschlossen. Im Währungskreis können Altcoins in kurzer Zeit mehrmals steigen. Daher kann es bei Leerverkäufen dazu kommen, dass Ihre Position am Morgen vernichtet wurde, selbst wenn Sie keine Hebelwirkung einsetzen und immer noch eine halbe Position haben und denken, dass Sie sich keine Sorgen machen müssen.

Daher muss sichergestellt werden, dass der Ausstiegsmechanismus wirksam wird. Wenn Sie die Gelegenheit verpassen, eine Position zu eröffnen, wird es zumindest nicht fatal sein. Wenn Sie die Gelegenheit verpassen, ist es höchstens schade, aber wenn Sie die Gelegenheit verpassen, die Position zu schließen, wird es große Probleme verursachen.

Hier sind kurz zwei Lösungen, auf die ich später im Detail eingehen werde, wenn ich Zeit habe.

Der erste Punkt ist, dass es am besten ist, einen harten Stop-Loss zu haben, der einem Stop-Loss mit festem Verlustverhältnis ähnelt. Wenn beispielsweise eine große Währung mehr als 10 % und eine kleine Währung 15 % verliert, wird die Position sofort geschlossen und läuft weg.

Bei der Hard-Stop-Loss-Methode sollte der Stop-Loss-Preis zum Zeitpunkt der Positionseröffnung festgelegt werden. Daher sollten algorithmische Stop-Loss-Orders (manche auch bedingte Orders genannt) so bald wie möglich nach der Eröffnung einer Position übermittelt werden, und es besteht keine Notwendigkeit, den Preis auf halbem Weg zu ändern. Auf diese Weise hilft Ihnen die Börse, den Echtzeitpreis zu überwachen und Ihnen dann dabei zu helfen, einen Marktauftrag zum Ausstieg aus dem Markt zu erteilen, nachdem dieser ausgelöst wurde. Auf diese Weise kann es zu starkem Slippage kommen, aber es ist wahrscheinlicher, dass es stabiler und zuverlässiger ist als der von Ihnen selbst festgelegte Stop-Loss. Und selbst wenn etwas schief geht und es nicht ausgelöst wird, können Sie trotzdem zur Börse gehen Anspruchsrechte (Sie müssen also zur obersten Börse gehen) .

Natürlich wird diese Art von Stop-Loss zur Abdeckung des Tiefpunkts verwendet und sollte selten ausgelöst werden. Es ist am besten, den Zeitpunkt des Ausstiegs entsprechend Ihrer eigenen Strategie zu steuern, damit das Retracement wahrscheinlich kleiner ausfällt.

Der zweite Punkt ist, dass das Programm Positionen nicht zufällig öffnet. Eröffnen Sie nicht kontinuierlich Positionen, sondern denken Sie, dass dies nicht der Fall ist, und eröffnen Sie am Ende ein großes Engagement. Es ist in Ordnung, wenn der Preis nicht in kurzer Zeit schwankt. Es ist möglich, manuell einzugreifen, um ihn zu korrigieren. Dies hängt davon ab, wie viele Positionen Sie eröffnet haben. Natürlich handelt es sich hierbei um einen geringfügigen Fehler, aber er kommt vor. Insbesondere nach der Iteration und dem Upgrade des Codes auf halbem Weg wird dies möglicherweise nicht sorgfältig überlegt.

In diesem Fall müssen Sie zunächst das Tempo der Positionseröffnung verlangsamen und auf die Rückkehr der Positionseröffnungsergebnisse warten. Außerdem müssen Sie die Kontoinformationen zu diesem Zeitpunkt überprüfen und bestätigen, bevor Sie eine Position eröffnen. Natürlich können Sie auch alle Vorgänge lokal aufzeichnen, was die Anzahl der API-Anfragen und die Zeit für die Abfrage der eigenen Börsen spart Kontostatus.

Effektiver ist es auch, den maximalen Hebel einer Börse im Voraus zu begrenzen. Dies kann selbst angepasst werden. Binance ist standardmäßig auf 20 Mal eingestellt, aber Sie können es auf 3 Mal oder sogar 2 Mal ändern (natürlich setzt dies voraus, dass Ihre Strategie selbst keinen hohen Hebel nutzt, sonst können Sie keinen hohen Hebel eröffnen, wenn Sie sollten). Egal wie verrückt der Code ist, es ist unmöglich, im Schlaf eine große Belichtung zu erzeugen. Das ist sicherer.

Kurz gesagt, manchmal besteht das eigentliche Angebot nicht nur aus dem Transaktionscode, sondern es müssen auch andere Verteidigungslinien festgelegt werden, um zu verhindern, dass Black Swan-Ereignisse eindringen. Nehmen Sie es niemals auf die leichte Schulter und versuchen Sie, tote Winkel abzudichten.