Möchten Sie dies auf Englisch lesen?
VeighNa ist ein auf Python basierendes Open-Source-Framework für die Entwicklung quantitativer Handelssysteme. Mit kontinuierlichen Beiträgen der Open-Source-Community hat es sich nach und nach zu einer multifunktionalen quantitativen Handelsplattform entwickelt, die viele Benutzer aus Finanzinstituten oder verwandten Bereichen anzieht Bereichen, einschließlich Private-Equity-Fonds, Wertpapierfirmen, Termingeschäfte usw.
[VeighNa Elite Quantitative Terminal] für professionelle Händler wurde offiziell veröffentlicht und bietet perfekte Unterstützung für die Bedürfnisse professioneller Händler in Bezug auf massive Strategiegleichzeitigkeit, intelligente Positionsverschiebung, Algorithmus-Split-Ausführung und Unterstützung für den Handel mit mehreren Konten. Für detailliertere Informationen scannen Sie bitte den folgenden QR-Code und klicken Sie in der Menüleiste auf [Community Communication -> Elite Membership Service] :
Wenn Sie Fragen zur Verwendung von VeighNa für die Sekundärentwicklung (Strategien, Module usw.) haben, lesen Sie bitte die VeighNa-Projektdokumentation . Wenn Sie das Problem nicht lösen können, gehen Sie bitte zum Abschnitt [Fragen und Hilfe] des Beamten Community-Forum für Hilfe Sie können auch gerne [Erfahrungsaustausch] Ihre Erfahrungen in diesem Abschnitt teilen!
Möchten Sie weitere Informationen über VeighNa erhalten? Bitte scannen Sie den folgenden QR-Code, um einen Assistenten hinzuzufügen, der der [WeChat-Gruppe für VeighNa-Community-Kommunikation] beitritt:
Eine multifunktionale quantitative Handelsplattform (Trader), die eine Vielzahl von Handelsschnittstellen integriert und einfache und benutzerfreundliche APIs für spezifische Strategiealgorithmen und Funktionsentwicklung bereitstellt, um schnell quantitative Handelsanwendungen zu erstellen, die von Händlern benötigt werden.
Die Handelsschnittstelle (Gateway) deckt folgende Handelsvarianten im In- und Ausland ab:
Inlandsmarkt
CTP (ctp): Inländische Futures und Optionen
CTP Mini (mini): Inländische Futures und Optionen
CTP Securities (sopt): ETF-Optionen
Femas: inländische Futures
Hang Seng UFT (uft): Inländische Futures, ETF-Optionen
esunny: inländische Futures, Gold TD
Apex Feichuang (sec): ETF-Optionen
Vertex HTS (hts): ETF-Optionen
Zhongtai XTP (xtp): Inländische Wertpapiere (A-Aktien), ETF-Optionen
Huaxin Singularity (Tora): Inländische Wertpapiere (A-Aktien), ETF-Optionen
Guotai Junan (hft): Inländische Wertpapiere (A-Aktien, Finanzdienstleistungen)
Topix OST (ost): Inländische Wertpapiere (A-Aktien)
Oriental Fortune EMT (emt): Inländische Wertpapiere (A-Aktien)
Flying Squirrel (sgit): Gold-TD, inländische Futures
ksgold: Gold TD
Lei Xing Asset Management (lstar): Futures Asset Management
Rohon: Futures Asset Management
Jees: Futures-Asset-Management
Zhonghui Yida (comstar): Interbankenmarkt
Nuggets (gm): Inländische Wertpapiere (Simulation)
Hang Seng Cloud UF (uf): Inländische Wertpapiere (Simulation)
TTS (tts): Inländische Futures (Simulation)
Überseemarkt
Interactive Brokers (ib): ausländische Wertpapiere, Futures, Optionen, Edelmetalle usw.
Yisheng 9.0 externe Festplatte (tippen): Übersee-Futures
Direkte Futures (da): Übersee-Futures
Spezielle Anwendung
RQData Quotes (rqdata): Echtzeit-Kurse für alle Märkte (Aktien, Indizes, ETFs, Futures)
Xun Touyan Quotes (xt): Echtzeit-Kurse für alle Märkte (Aktien, Indizes, Wandelanleihen, ETFs, Futures, Optionen)
RPC-Dienst (rpc): prozessübergreifende Kommunikationsschnittstelle für verteilte Architekturen
Handelsanwendungen (Apps), die die folgenden Arten quantitativer Strategien abdecken:
cta_strategy: Das CTA-Strategie-Engine-Modul ermöglicht Benutzern bei gleichzeitiger Beibehaltung der Benutzerfreundlichkeit eine detaillierte Kontrolle über das beauftragte Melde- und Auszahlungsverhalten während des Betriebs von CTA-Strategien (Transaktionsschlupf reduzieren und Hochfrequenzstrategien implementieren).
cta_backtester: CTA-Strategie-Backtest-Modul, ohne Jupyter Notebook zu verwenden, direkt über die grafische Oberfläche, um Strategie-Backtest-Analysen, Parameteroptimierungen und andere damit verbundene Arbeiten durchzuführen
spread_trading: Spread-Trading-Modul, unterstützt benutzerdefinierte Spreads, Echtzeitberechnung von Spread-Kursen und -Positionen und unterstützt den Spread-Algorithmus-Handel und automatische Spread-Strategien.
option_master: Optionshandelsmodul, das für den inländischen Optionsmarkt entwickelt wurde und mehrere Optionspreismodelle, implizite Volatilitätsoberflächenberechnungen, griechische Wertrisikoverfolgung und andere Funktionen unterstützt
portfolio_strategy: Portfoliostrategiemodul für quantitative Strategien, die mehrere Kontrakte gleichzeitig handeln (Alpha, Optionsarbitrage usw.), das Backtesting historischer Daten und automatische Echtzeit-Handelsfunktionen bietet
algo_trading: Algorithmisches Handelsmodul, das eine Vielzahl häufig verwendeter intelligenter Handelsalgorithmen bereitstellt: TWAP, Sniper, Iceberg, BestLimit usw.
script_trader: Skriptstrategiemodul, das für quantitative Strategien und Berechnungsaufgaben mit mehreren Standards entwickelt wurde. Es kann auch Transaktionen in Form von REPL-Anweisungen auf der Befehlszeile implementieren. Es unterstützt kein Backtesting.
paper_account: Lokales Simulationsmodul, eine rein lokalisierte Simulationshandelsfunktion, anvertrautes Matching basierend auf Echtzeit-Marktbedingungen, die von der Handelsschnittstelle abgerufen werden, und bereitgestellt mit anvertrauten Transaktions-Push- und Positionsdatensätzen
chart_wizard: K-Line-Diagrammmodul, das historische Daten auf Basis des RQData-Datendienstes (Futures) oder der Handelsschnittstelle abruft und Marktveränderungen in Echtzeit in Kombination mit Tick Push anzeigt
portfolio_manager: Das Modul zur Verwaltung des Handelsportfolios, das auf unabhängigen strategischen Handelsportfolios (Unterkonten) basiert, bietet die Verwaltung beauftragter Transaktionsdatensätze, die automatische Verfolgung von Handelspositionen und Echtzeitstatistiken der täglichen Gewinne und Verluste.
rpc_service: RPC-Dienstmodul, mit dem ein bestimmter Prozess als Server gestartet werden kann. Als einheitlicher Markt- und Transaktionsroutingkanal können mehrere Clients gleichzeitig eine Verbindung herstellen, um ein verteiltes Multiprozesssystem zu implementieren.
data_manager: Modul zur Verwaltung historischer Daten, Anzeige der vorhandenen Datenübersicht in der Datenbank über das Baumverzeichnis, Auswahl von Daten in einem beliebigen Zeitraum, um Felddetails anzuzeigen, Unterstützung des Datenimports und -exports von CSV-Dateien
data_recorder: Marktaufzeichnungsmodul, konfiguriert auf der Grundlage der grafischen Oberfläche, zeichnet die Tick- oder K-Line-Marktbedingungen je nach Bedarf in Echtzeit in der Datenbank auf, für Strategie-Backtesting oder echte Marktinitialisierung
excel_rtd: Excel RTD (Real Time Data) Echtzeit-Datendienst, basierend auf dem Pyxll-Modul, um Echtzeit-Push-Updates verschiedener Daten (Märkte, Verträge, Positionen usw.) in Excel zu erhalten
risk_manager: Risikomanagementmodul, das Statistiken und Einschränkungen zur Transaktionsflusskontrolle, Auftragsmenge, Aktivitätsbeauftragung, Gesamtzahl der Auftragsstornierungen und anderen Regeln bereitstellt und so Front-End-Risikokontrollfunktionen effektiv realisiert.
web_trader: Web-Service-Modul, das für die Anforderungen der BS-Architektur entwickelt wurde und einen Webserver implementiert, der aktive Funktionsaufrufe (REST) und passiven Daten-Push (Websocket) bereitstellt.
Die Python-Transaktions-API-Schnittstellenkapselung (API) stellt die zugrunde liegende Docking-Implementierung der oben genannten Transaktionsschnittstelle bereit.
REST-Client (Rest): Ein leistungsstarker REST-API-Client, der auf asynchroner Coroutine-E/A basiert, das Programmiermodell für Ereignisnachrichtenschleifen verwendet und das Senden von Echtzeit-Transaktionsanforderungen mit hoher Parallelität unterstützt.
Websocket-Client (Websocket): Ein leistungsstarker Websocket-API-Client basierend auf asynchronem Coroutine-IO, der die gleichzeitige Ausführung der gemeinsamen Ereignisschleife mit dem REST-Client unterstützt.
Die einfache und benutzerfreundliche ereignisgesteuerte Engine (Event) dient als Kern des ereignisgesteuerten Handelsprogramms.
Adapterschnittstelle zum Andocken verschiedener Datenbanken (Datenbank):
SQL-Klasse
SQLite (SQLite): Leichte Einzeldateidatenbank, keine Installation und Konfiguration von Datendienstprogrammen erforderlich, VeighNas Standardoption, geeignet für Anfänger
MySQL (mysql): eine gängige relationale Open-Source-Datenbank mit äußerst umfangreicher Dokumentation, die andere NewSQL-kompatible Implementierungen (wie TiDB) ersetzen kann.
PostgreSQL (postgresql): eine relationale Open-Source-Datenbank mit umfangreicheren Funktionen. Sie unterstützt neue Funktionen durch Erweiterungs-Plug-Ins. Sie wird nur erfahrenen Benutzern empfohlen.
NoSQL-Klasse
DolphinDB (dolphindb): eine leistungsstarke verteilte Zeitreihendatenbank, geeignet für Aufgaben mit geringer Latenz oder Echtzeitaufgaben mit extrem hohen Geschwindigkeitsanforderungen
Arktis (Arktis): Eine leistungsstarke Finanzzeitreihendatenbank, die Leistungsoptimierungslösungen wie Blockspeicher und LZ4-Komprimierung verwendet, um ein effizientes Lesen und Schreiben von Zeitreihendaten zu erreichen.
TDengine (taos): Eine verteilte, leistungsstarke, SQL-unterstützte Zeitreihendatenbank mit integriertem Caching, Streaming Computing, Datenabonnement und anderen Systemfunktionen, die die Komplexität von Forschung und Entwicklung sowie Betrieb und Wartung erheblich reduzieren kann.
TimescaleDB (timescaledb): eine auf PostgreSQL basierende Zeitreihendatenbank. Sie wird als Plug-in-Erweiterung installiert und unterstützt die automatische Partitionierung von Daten nach Raum und Zeit.
MongoDB (mongodb): Eine Dokumentendatenbank, die auf verteilter Dateispeicherung (BSON-Format) basiert. Der integrierte Hot-Data-Memory-Cache sorgt für schnellere Lese- und Schreibgeschwindigkeiten.
InfluxDB (influxdb): Eine Zeitreihendatenbank, die speziell für die Speicherung von TimeSeries-Daten entwickelt wurde und eine extrem hohe Lese- und Schreibeffizienz sowie periphere Analyseanwendungen bietet.
LevelDB (leveldb): eine von Google eingeführte leistungsstarke Schlüssel-/Wertdatenbank. Sie implementiert eine In-Process-Speicher-Engine basierend auf dem LSM-Algorithmus und unterstützt Milliarden von massiven Daten.
Adapterschnittstelle (Datafeed) zum Andocken folgender Arten von Datendiensten:
Xun Investment Research (xt): Aktien, Futures, Optionen, Fonds, Anleihen
MiKang RQData (rqdata): Aktien, Futures, Optionen, Fonds, Anleihen, Gold TD
Wing Chun Meister (Voltrader): Futures, Optionen
Hang Seng UData (udata): Aktien, Futures, Optionen
TuShare (tushare): Aktien, Futures, Optionen, Fonds
Wind (Wind): Aktien, Futures, Fonds, Anleihen
Tinysoft (tinysoft): Aktien, Futures, Fonds, Anleihen
Flush iFinD (ifind): Aktien, Futures, Fonds, Anleihen
Tianqin TQSDK (tqsdk): Futures
Standardkomponente für prozessübergreifende Kommunikation (rpc), die zur Implementierung komplexer Handelssysteme mit verteilter Bereitstellung verwendet wird.
Das leistungsstarke K-Liniendiagramm (Diagramm) von Python unterstützt die Anzeige großer Datenvolumendiagramme und Echtzeit-Datenaktualisierungsfunktionen.
Community-Foren und Zhihu-Kolumnen umfassen Entwicklungs-Tutorials zum VeighNa-Projekt und Forschung zur Anwendung von Python im Bereich des quantitativen Handels.
Die offizielle Kommunikationsgruppe 262656087 (QQ) wird streng verwaltet (Mitglieder, die schon lange Taucher sind, werden regelmäßig entfernt) und die Gruppeneintrittsgebühr wird an den VeighNa-Gemeinschaftsfonds gespendet.
Hinweis: Die obige Beschreibung der Funktionsmerkmale basiert auf der Situation zum Zeitpunkt der Veröffentlichung der Dokumentation und kann in Zukunft aktualisiert oder angepasst werden. Wenn die Funktionsbeschreibung von der tatsächlichen Existenz abweicht, kontaktieren Sie uns bitte über Issue zur Anpassung.
Laden Sie die Release-Version hier herunter, entpacken Sie sie und führen Sie den folgenden Befehl aus, um sie zu installieren:
Windows
install.bat
Ubuntu
bash install.sh
Macos
bash install_osx.sh
Hinweis: Die für die Installation des VeighNa-Frameworks erforderlichen abhängigen Bibliotheken sind in setup.cfg aufgeführt, und die empfohlenen Installationsversionen dieser abhängigen Bibliotheken sind in „requirements.txt“ angegeben.
Registrieren Sie ein CTP-Simulationskonto bei SimNow und erhalten Sie auf dieser Seite den Brokercode und die Adresse des Handelsnotierungsservers.
Registrieren Sie sich im VeighNa-Community-Forum, um das VeighNa-Station-Konto und das Passwort zu erhalten (das Forum-Konto und das Passwort sind identisch).
Starten Sie VeighNa Station (nach der Installation von VeighNa Studio wird automatisch eine Verknüpfung auf dem Desktop erstellt) und geben Sie zum Anmelden das Konto und das Passwort aus dem vorherigen Schritt ein
Klicken Sie unten auf die Schaltfläche „VeighNa Trader“ , um mit dem Handel zu beginnen! ! !
Beachten:
Zusätzlich zur grafischen Startmethode basierend auf VeighNa Station können Sie auch run.py in einem beliebigen Verzeichnis erstellen und den folgenden Beispielcode schreiben:
from vnpy . event import EventEngine
from vnpy . trader . engine import MainEngine
from vnpy . trader . ui import MainWindow , create_qapp
from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
def main ():
"""Start VeighNa Trader"""
qapp = create_qapp ()
event_engine = EventEngine ()
main_engine = MainEngine ( event_engine )
main_engine . add_gateway ( CtpGateway )
main_engine . add_app ( CtaStrategyApp )
main_engine . add_app ( CtaBacktesterApp )
main_window = MainWindow ( main_engine , event_engine )
main_window . showMaximized ()
qapp . exec ()
if __name__ == "__main__" :
main ()
Öffnen Sie CMD in diesem Verzeichnis (halten Sie die Umschalttaste gedrückt -> Rechtsklick -> Befehlsfenster/PowerShell hier öffnen) und führen Sie den folgenden Befehl aus, um VeighNa Trader zu starten:
python run.py
VeighNa verwendet Github zum Hosten seines Quellcodes. Wenn Sie Code beisteuern möchten, verwenden Sie bitte den PR-Prozess (Pull Request) von Github:
Erstellen Sie ein Problem – Für größere Änderungen (z. B. neue Funktionen, umfassende Umgestaltungen usw.) wird empfohlen, zunächst ein Problem zu eröffnen, um es zu besprechen. Bei kleineren Verbesserungen (z. B. Dokumentverbesserungen, Fehlerbehebungen usw.) reicht es aus Senden Sie direkt eine PR.
Fork VeighNa – Klicken Sie auf die Schaltfläche Fork in der oberen rechten Ecke
Klonen Sie Ihren eigenen Fork: git clone https://github.com/$userid/vnpy.git
Erstellen Sie Ihren eigenen Feature-Zweig von dev : git checkout -b $my_feature_branch dev
Ändern Sie $my_feature_branch und übertragen Sie die Änderungen auf Ihren Fork
Erstellen Sie eine [Pull-Anfrage] vom $my_feature_branch-Zweig Ihres Forks zum Dev- Zweig des Hauptprojekts – klicken Sie hier auf „Vergleichen zwischen Forks“ und wählen Sie den erforderlichen Fork und Branch aus, um eine PR zu erstellen
Warte auf Überprüfung, muss weiter verbessert werden oder zusammengeführt werden!
Beachten Sie beim Einreichen von Code bitte die folgenden Regeln, um die Codequalität zu verbessern:
flake8
im Projektstammverzeichnis aus. MIT