WonderTrader
ist ein hocheffizientes und hochverfügbares Entwicklungsframework für den quantitativen Handel, das auf dem C++
Kernmodul basiert und für alle Arten von Transaktionen im gesamten Markt geeignet ist.
WonderTrader
basiert auf dem Hochgeschwindigkeits- C++
Kern-Framework und dem effizienten und benutzerfreundlichen Application-Layer-Framework (wtpy) und ist bestrebt, ein vollautomatisches quantitatives F&E-Handelsszenario aus einer Hand zu schaffen, das F&E, Handel, Betrieb und Planung umfasst .
WonderTrader
hat in 0.9
eine neue UFT-Engine eingeführt, um den Anforderungen des Handels mit extrem geringer Latenz gerecht zu werden. Nach einer Reihe von Optimierungen liegt die Systemlatenz bei 175 Nanosekunden .
Die echte Handelsarchitektur von WonderTrader
WonderTrader
Umfangreiche Handelsmaschine
- Die CTA-Engine , auch Synchronisationsstrategie-Engine genannt, eignet sich im Allgemeinen für Strategien mit weniger Zielen, schnellerer Berechnungslogik und ist ereignis- und zeitgesteuert. Zu den typischen Anwendungsszenarien gehören Einzelgebots-Timing, Arbitrage unterhalb der mittleren Frequenz usw. Für die in der Demo bereitgestellte DualThrust-Strategie beträgt die durchschnittliche Zeit, die für eine einzelne Neuberechnung benötigt wird, etwa 70 Mikrosekunden für die Python-Implementierungsversion und etwa 4,5 Mikrosekunden für die C++-Implementierungsversion.
- Die SEL-Engine , auch asynchrone Strategie-Engine genannt, eignet sich im Allgemeinen für zeitgesteuerte Strategien mit vielen Zielen und einer langen Berechnung der Logik. Typische Anwendungsszenarien umfassen Multi-Faktor-Aktienauswahlstrategien, Querschnitts-Long-Short-Strategien usw.
- Die HFT-Engine , auch Hochfrequenz-Strategie-Engine genannt, zielt hauptsächlich auf Hochfrequenz- oder Niedriglatenz-Strategien ab. Sie ist ereignisgesteuert und die Systemverzögerung liegt zwischen 1 und 2 Mikrosekunden.
- Die UFT-Engine , auch ultraschnelle Strategie-Engine genannt, zielt hauptsächlich auf Strategien mit ultrahoher Frequenz oder extrem niedriger Latenz ab, ist ereignisgesteuert und die Systemverzögerung liegt innerhalb von 200 Nanosekunden.
Komplette Entwicklungsschnittstelle
- Effiziente und benutzerfreundliche Datenschnittstelle : Jede Strategie verfügt über ein unabhängiges Kontextmodul. Der Kontext speichert die für die Strategie erforderlichen Daten automatisch zwischen und die Strategie kann direkt aufgerufen werden.
- Einfache Signalschnittstelle : Die Strategie muss nur die Zielposition festlegen und wird automatisch im Hintergrund ausgeführt.
- Kontextfreie Richtlinienlogik : Die Richtlinie muss keine Daten selbst aufzeichnen. Sie muss lediglich jedes Mal die Schnittstelle abfragen. Alle Daten werden im Speicher zwischengespeichert und die Zugriffseffizienz ist gewährleistet.
Professionelles strategisches Management
- Einheitliches Management strategischer Kombinationen : Der Strategiekombinationsansatz wird hauptsächlich zur Abstimmung mit dem Produktmanagement professioneller Organisationen verwendet. Eine Kombinationsplatte entspricht mehreren Zielen mehrerer Strategien und legt dann einen Grundbetrag für den Einheitsfonds fest. Dies ist die grundlegende Kombinationsplatte des Produktmanagements, die für die Erweiterung geeignet ist.
- Durchführung der Zusammenführung der Zielposition : Nach der Zusammenführung der Zielposition wird das Risiko einer Eigentransaktion vermieden, während die Margenbelegung und die Provisionskosten reduziert werden.
- Unabhängige Speicherung theoretischer Positionen : Die theoretischen Positionen der Strategie werden unabhängig gespeichert, und die Gesamtleistung der kombinierten Festplatte wird ebenfalls unabhängig berechnet, was die interne Verwaltung vereinfacht.
- Gleichzeitige Ausführung mehrerer Konten : Nachdem die Zielposition der Kombination bestimmt wurde, wird sie gleichzeitig über mehrere Handelskanäle ausgeführt, wodurch die Konsistenz der Leistung verschiedener Konten effektiv sichergestellt werden kann.
Vollständige Backtest-Unterstützung
- Vollständige Sprachunterstützung : Unabhängig davon, ob es sich um eine in
C++
entwickelte Strategie, eine unterwtpy
entwickeltepython
Strategie oder eine unter anderen Sprachunterframeworks entwickelte Strategie handelt, werden alle in einer einheitlichen Backtesting-Engine rückgetestet.- Hohe Backtesting-Effizienz : Die Backtesting-Engine wurde in
C++
entwickelt, die Backtesting-Effizienz ist hoch und die Geschwindigkeit ist hoch. Unabhängig davon, ob es sich um eineC++
Strategie oder einePython
Strategie handelt, kann sie schnell überprüft werden.- Vollständige Strategieunterstützung : Neben der CTA-Strategie und der SEL-Strategie können auch die HFT-Strategie , die UFT-Strategie und die Ausführungseinheit zurückgetestet werden.
Effizientes Datenservo
- Lokaler Datenserver : Die integrierte Speicher-Engine von
WonderTrader
nutzt lokalen Speicher, richtet den Datenserver lokal ein und sendet Echtzeit-Marktdaten über denudp
-Port, um eine1+N
-Dienststruktur zu erreichen, die undifferenzierte Datendienste für mehrere Kombinationen bereitstellen kann Festplatten gleichzeitig. Die professionelle Architektur auf Datenanbieterebene unterstützt den Aufbau eines mehrstufigen Vertriebssystems, um verschiedene Nachfrageszenarien problemlos bewältigen zu können.- Zwischenspeichern historischer Daten : Während des Transaktionsprozesses werden alle historischen Daten im Speicher zwischengespeichert. Gleichzeitig wird der Mechanismus der direkten Referenzierung der Speicherdatenabschnitte übernommen, um das Kopieren von Daten grundsätzlich zu vermeiden und die Zugriffseffizienz zu verbessern.
- Effiziente Speicher-Engine : Echtzeitdaten verwenden
mmap
Dateien, die ohne Datenverlust mit hoher Geschwindigkeit lesen und schreiben können. Gleichzeitig unterstützt es die MySQL-Datenbank zum Speichern historischer Daten, sodass Sie auf dieser Basis bequemer Ihre eigene Investment-Research-Datenbank erstellen können.
Flexible Risikokontrolle
- Risikokontrolle des Kombinationsscheibenfonds : Die Kombinationsscheibe verfügt über eine voreingestellte Fondsskala, und die Risikokontrolle des Kombinationsscheibenfonds kann basierend auf den virtuellen Mitteln der Kombinationsscheibe durchgeführt werden. Der größte Vorteil besteht darin, dass, wenn sich die Kombination in der Abwärtsphase befindet, nach Auslösung der Risikokontrolle das Kapitalkonto nicht weiter sinkt, selbst wenn es die Risikokontrolllinie nicht erreicht.
- Kontrolle des Kanalverkehrsrisikos : Zielt hauptsächlich auf Compliance-Risiken ab und kontrolliert Indikatoren wie die Gesamtzahl der stornierten Bestellungen, die Anzahl der in einem kurzen Zeitraum aufgegebenen Bestellungen und die Anzahl der stornierten Bestellungen.
- Kontrolle des Kontofondsrisikos : Dies steht im Einklang mit der Fondsrisikokontrolle im allgemeinen Sinne und kontrolliert hauptsächlich die Abhebung von Kontofonds usw.
- Manueller Notfalleingriff : Bieten Sie einen Zugang für manuellen Notfalleingriff und erreichen Sie Kontrollzwecke durch Hochladen einer Konfigurationsdatei. Es eignet sich hauptsächlich für Risiken in einem einzelnen Produkt. Wenn im gesamten Markt ein Risiko besteht, kann das System manuell gestoppt werden.
- Kupplungsmechanismus : Der Kupplungsmechanismus basiert auf dem Mechanismus zur Trennung von Signalen und Ausführung. Er wird hauptsächlich verwendet, um die Signalausführung über den Kupplungsmechanismus direkt zu trennen, wenn in der Strategie oder Kombination ein Risiko besteht. Der Vorteil besteht darin, dass die Logik der Strategie nicht beeinträchtigt wird und nur die Ausführung des Signals unterbrochen wird. Sie können die Leistung der Strategie in einer bestimmten Marktphase weiterhin beobachten und sie durch theoretische Forschung bestätigen.
Leistungsstarke Konsole (wtpy-Überwachungsdienst)
- Überwachung des kombinierten Festplattenbetriebs : Sie können Betriebsprotokolle in Echtzeit, theoretische Strategiedaten, Handelskanaldaten usw. anzeigen und einen Eingang für manuelles Starten und Stoppen bereitstellen.
- Automatischer Planungsdienst : plant vollautomatisch geplante Aufgaben (Start, Stopp, Neustart), unterstützt die Festlegung wöchentlicher Aufgabenwiederholungen und unterstützt die Prozessüberwachung.
- Echtzeit-Ereignisbenachrichtigung : Der Überwachungsdienst empfängt Ereignisse, die von der Kombinationsplatte übertragen werden, und leitet sie dann an das Überwachungsterminal weiter, um den Benutzer aufzufordern.
- Backtest-Viewer : Mit dem WtBtSnooper-Modul können Sie Backtest-Daten anzeigen und analysieren.
- Vollautomatische Remote-Bereitstellung (im Aufbau) : Vollautomatische Online-Remote-Bereitstellung, die automatisierte Bereitstellungsdienste für verschiedene Anwendungsszenarien wie Backtest-Umgebungen und reale Festplattenumgebungen bereitstellt.
Teaminterne Kontrolle Die Methode des strategischen Portfoliomanagements bietet eine perfekte Lösung für das interne Teammanagement.
C++
Ebene ein Höchstmaß an Strategievertraulichkeit bieten, und Investmentforscher müssen sich keine Sorgen über den Verlust von Strategien machen; Multi-Account-Handel ( Multi-Produkt-Konfiguration ) Für Strategiekombinationen unter verschiedenen Marktzyklen wird das allgemeine Team eine Strategiekombination haben, die für den Moment am besten geeignet ist. Allerdings kann das Team im gleichen Zeitraum viele Konten gleichzeitig verwalten, tatsächlich sind die von diesen Konten verwendeten Strategiekombinationen jedoch dieselben. Derzeit kann die von der WonderTrader
Plattform bereitgestellte M+1+N-Ausführungsarchitektur diese Nachfrage perfekt erfüllen.
Angenommen, die Grundkapitalgröße einer bestimmten Kombination P beträgt 5 Millionen, die erwartete Rendite beträgt 30 %, der maximale Drawdown beträgt 10 % und das Rendite-Risiko-Verhältnis beträgt 3:1. Konto A verwendet diese Kombination P für den Handel. und der Betrag der Mittel auf Konto A beträgt 10 Millionen, und der maximal akzeptable Betrag beträgt Das Retracement beträgt ebenfalls 10 %; Konto B verwendet diese Kombination auch für den Handel mit P, und der Betrag der Mittel beträgt ebenfalls 10 Millionen, ist aber möglich Der maximal akzeptierte Retracement beträgt derzeit 20 %, da die Risikoparameter von Konto A mit dem Basismarkt übereinstimmen und die Losgrößenvergrößerung von Konto A der Kapitalgröße/Fondsgröße des Basismarkts = 1000 W/500 W = 2 entspricht Mal; Konto B kann es tolerieren. Der maximale Drawdown beträgt 20 %, daher muss das Losgrößenverhältnis verdoppelt werden, d. h. Konto B kann viermal zugewiesen werden.
Verfolgung mehrerer Ziele Einige quantitative Handelsplattformen, die interpretierte Sprachen (z. B. Python
) zur Entwicklung von Kernmodulen verwenden, sind für verschiedene Anwendungsszenarien geeignet, wenn nur wenige Ziele vorhanden sind. Aber wenn die Anzahl der zu verfolgenden Ziele mehr als 100 oder sogar mehr als 50 erreicht, kann der Bedarf nicht mehr gedeckt werden. Einerseits nimmt multiprocess
viele Ressourcen in Anspruch, obwohl jedes Ziel unabhängig läuft, und andererseits werden Hunderte neuer Prozesse für Hunderte von Zielen erstellt , die Strategie ist ineffizient und es besteht ein ernsthafter Wettbewerb um Ressourcen. Unter Umständen wird die strategische Reaktion auch langsamer sein. Der Kern von WonderTrader
ist in C++
entwickelt und der Datenservo ist von Anfang an so konzipiert, dass er Dienste für mehrere Kombinationen gleichzeitig bereitstellt. Gleichzeitig sind Strategie und Ausführung getrennt und Signalausführung und Strategieberechnung laufen völlig unabhängig voneinander zwei verschiedene Threads. Unter einer solchen Architektur können die Anforderungen der Multistandard-Verfolgung gut erfüllt werden.
Rechenintensive Strategie Die Menge an Berechnungen, die für einige Strategien erforderlich sind, ist atemberaubend. Eine typische davon ist die Aktienauswahlstrategie. Unabhängig davon, ob sie mehrere Faktoren oder Fundamentaldaten verwendet, werden nach und nach Tausende von Aktien überprüft, um den endgültigen Zielaktienpool zu ermitteln. Darüber hinaus verfügen einige Multi-Standard-Multi-Faktor-Frameworks über einen großen Rechenaufwand. Eine solche Strategie erfordert einen enormen Rechenaufwand und nimmt viel Zeit in Anspruch. Die SEL
-Engine von WonderTrader
ist auf diesen Bedarf zugeschnitten. Die SEL
-Engine verwendet ein asynchrones zeitgesteuertes Modell, indem sie den Zeitplan für die Neuberechnung bei der Engine registriert (unterstützt Intraday-, tägliche, wöchentliche, monatliche und andere Zyklen), löst sie regelmäßig eine Neuberechnung aus und passt dadurch die Zielpositionen mehrerer Ziele an Ausgangssignal.
Speed-Trading WonderTrader
verwendet C++
als zugrunde liegende Kernentwicklungssprache. Einer der wichtigsten Zwecke ist das Streben nach höchster Leistung , daher macht Hochfrequenzhandel oder Speed-Trading einen sehr großen Anteil in den Nutzungsszenarien von WonderTrader
aus. WonderTrader
hat in der Version v0.9
eine neue UFTEngine eröffnet, die speziell für extrem schnelle Handelsszenarien entwickelt wurde. Anders als die ursprüngliche HFTEngine
zielt HFTEngine
auf allgemeine hohe Frequenzen ab und konzentriert sich auf die Bereitstellung leistungsstarker zugrunde liegender Komponenten für die Anwendungsschicht . Dabei werden mehr Kompatibilitätsprobleme und Probleme beim Andocken der Anwendungsschicht berücksichtigt. UFTEngine
ist vollständig vom WtCore
-Projekt getrennt und bietet keine Schnittstellen zur Anwendungsschicht. Es ist vollständig in C++
entwickelt und implementiert und die Systemverzögerung liegt innerhalb von 200 ns .
Algorithmischer Handel WonderTrader
verfügt über ein unabhängiges Executor-Eingabemodul WtExecMon
, auf dem Benutzer algorithmischen Handel implementieren können. In der M+1+N -Ausführungsarchitektur von WonderTrader
entfällt der 1+N -Ausführungsteil und kann als unabhängiger algorithmischer Handelsausführer verwendet werden. Wenn Benutzer es verwenden, kann die Algorithmusausführungseinheit durch Festlegen der Zielposition des angegebenen Ziels Handelsaufträge gemäß dem voreingestellten Algorithmus erteilen. Benutzer können weitere Algorithmusausführungseinheiten hinzufügen, indem sie ihr eigenes WtExecFact
Modul implementieren. Die effiziente C++
Unterschicht kann eine starke Garantie für den Ausführungseffekt der Algorithmusausführungseinheit bieten.
wtpy
WonderTrader
und ist ein Python3
-Subframework von WonderTrader
das mit Python3
Python
über viele sehr beliebte und leistungsstarke Bibliotheken von Drittanbietern für die Verarbeitung von Zeitreihendaten.Python
sehr gut zum Schreiben und Debuggen von Code. Es kann direkt ohne Kompilierung ausgeführt werden.Python
ermöglichen auch die Anwendung Python
auf mehr Szenarienwtpy
besteht darin, eine Erweiterung von WonderTrader
in der Python
-Sprache zu seinwtpy
auch über eine integrierte leistungsstarke Überwachungsdienstkomponente WtMonSvr
. Diese Komponente bietet eine Remote webui
Überwachungsschnittstelle, die den Betrieb der Strategiekombination in Echtzeit überwachen kann. Außerdem bietet sie einen automatischen Planungsdienst 24×7
zum Schutz Ihrer Transaktionen. WonderTrader
WonderTrader
github
-Adresse: https://github.com/wondertrader/wondertradergitee
-Adresse: https://gitee.com/wondertrader/wondertraderwtpy
github
-Adresse: https://github.com/wondertrader/wtpygitee
-Adresse: https://gitee.com/wondertrader/wtpywtpy
Erfassungsadresse: https://pypi.org/project/wtpy/ wtpy
kann direkt in python3.8
oder höher installiert werden. pip install wtpy --upgrade
WonderTrader
-ErweiterungsprojektWt4ElegantRL
mit wtpy
als zugrunde liegender Backtest-Engine https://github.com/drlgistics/Wt4ElegantRL wondertrader
um Echtzeitinformationen von WonderTrader
zu erhalten610730738
(vollständig) Gruppe 2 367916500
(bitte vor dem Beitritt star
und dann Ihren github
Benutzernamen angeben)WonderTrader
-Dokumentation finden Sie unter https://docs.wondertrader.com/WonderTrader
-Dokumentation https://dumengru.github.io/docs_wondertrader/WonderTrader
-Lernnotizen https://zzzzhej.github.io/WonderTrader-Learning-Notes/