Der Markttrend von gestern Abend für Big Pie und Two Pie war schon lange nicht mehr so reibungslos.
Lassen Sie uns dieses Mal darüber sprechen, wie die historischen Transaktionsdatensätze von B verwendet werden.
B'an-Beamte haben viele Transaktionsdaten weitergegeben. Es gibt eine Github-Seite, auf der Sie im Detail sehen können, welche Datenkategorien verfügbar sind und wie Sie sie herunterladen können. Hier stelle ich hauptsächlich den Download, die Organisation und die Verwendung der aggregierten Transaktionsdatensätze von aggTrades vor.
aggTrades ist der Transaktionsdatensatz nach der Aggregation, d. h. Binance fasst mehrere aufeinanderfolgende Transaktionen, die gleichzeitig, in die gleiche Richtung und zum gleichen Preis ausgeführt werden, in einem Datensatz zusammen, ähnlich einer K-Linie, aber mit nur einem Preis und Nr höchster Preis. niedrigster Preis und so weiter. Wenn beispielsweise eine große Bestellung auf dem Markt aufgegeben wird und viele kleine Bestellungen aufgegeben werden, um diese zu verzehren, werden diese Bestellungen, die in sehr kurzer Zeit (Millisekunden) gleichzeitig eintreffen, zusammengefasst. Oder es kann die Reihenfolge sein, mit der die passende Engine gleichzeitig übereinstimmen kann.
Der Vorteil von aggTrades-Daten besteht darin, dass sie Transaktionsdatensätze auf Millisekundenebene enthalten können, aber nicht über ein so großes Datenvolumen verfügen wie reine Trades (d. h. die originellsten Daten, die nicht zum gleichen Preis aggregiert werden). guter Kompromiss für Hochfrequenzdaten.
Im Allgemeinen verwenden Quasi-Hochfrequenzstrategien solche aggregierten Daten. Diese wirklich hochfrequenten Daten verwenden im Allgemeinen Handels- und Orderbuchdaten. Die Datenmenge ist sehr groß und die Verarbeitung ist sehr umständlich. Verbraucht nicht nur Ressourcen, sondern erhöht auch die Schwierigkeit der Programmierung.
aggTrades kann verwendet werden, um kurze K-Linien jeder Ebene zu synthetisieren, beispielsweise kurze K-Linien von 5, 10 und 15 Sekunden. Es ist immer noch möglich, solche K-Linien für einige Intraday-Handelsstrategien zu verwenden.
Das Folgende ist beispielsweise die zuvor veröffentlichte K-Linie auf 1-Sekunden-Ebene.

Es gibt auch Hochfrequenz-Arbitrage. Mit gewöhnlicher Arbitrage ist es derzeit schwierig, Geld zu verdienen, und es ist sehr riskant. Wenn die Frequenz höher ist, können sich einige Chancen ergeben.
Diese Art von Tick-by-Tick-Daten kann auch zur Synthese alternativer K-Linien, wie z. B. gleicher Balken und dergleichen, verwendet werden. Die Verwendung von aggTrades ist möglicherweise viel genauer als die Verwendung winziger K-Linien im Vergleich zu gewöhnlichen k-line-Strategien. Ich werde möglicherweise in den nächsten Artikeln darüber schreiben, wie man diese Art von Balken synthetisiert.
Das Folgende ist die Code-Einführung (der größte Teil des Codes befindet sich im Anhang, da er zu groß und zu lang ist, werde ich ihn nicht im Text veröffentlichen). Der Download-Code ist das Beispiel von Binance, jedoch mit einigen geringfügigen Änderungen, und mein Verarbeitungscode.
Hier ist ein Beispiel für monatliche Daten (Binance stellt auch tägliche Daten bereit). Der Code ist vollständig Single-Threaded und wird synchron ausgeführt, ohne asynchrones oder Multithreading. Da solche Downloads einmal im Monat oder an n Tagen ausgeführt werden, können Sie einfach eine Weile warten und müssen es nicht kompliziert machen.
Die Verwendung älterer Daten für das grundlegende Backtesting stellt im Allgemeinen kein Problem dar, da das Hochfrequenzdaten-Backtesting hauptsächlich eine analytische Rolle spielt und hauptsächlich vom tatsächlichen Preis abhängt, da der Schlupf groß sein kann oder die ausstehende Bestellung möglicherweise nicht abgeschlossen wird. und die Nachverfolgung Die Bestellung wurde nicht abgefangen, der Umtausch verzögerte sich usw.
Aber später habe ich auch den Code zum Herunterladen von Echtzeitdaten, d. h. zum Herunterladen der aggTrades-Daten des Tages, um die verpassten Marktpreise sofort zu überprüfen. Die täglichen Daten von Binance sind nur mit einer Verzögerung von mehreren Tagen verfügbar. Wenn Sie es dringend verwenden möchten, müssen Sie es selbst mithilfe der Exchange-API crawlen.
1 Download
Der erste Teil des Codes besteht aus den beiden Dateien agg.py und Utility.py und wird dann verwendet
python3 agg.py -y 2022 -m 6 -t um -folder /Ihr angegebener Pfad
Hier ist ein Beispiel für einen Befehl zum Herunterladen aller aggTrades-Daten für unbefristete Verträge für Juni 2022. Der Download dauert in der Regel etwa zehn Minuten. Die Daten werden komprimiert heruntergeladen, daher besteht der nächste Schritt darin, sie zu dekomprimieren.
2. Entpacken
Zum Dekomprimieren verwenden Sie die Datei unzip.py. Dabei handelt es sich um einen sehr kurzen Code mit nur zwei Funktionen: eine zum Dekomprimieren der monatlichen Daten und die andere zum Dekomprimieren der täglichen Daten.
Nach dem Extrahieren der ZIP-Datei wird daraus eine CSV-Datei. Das Problem bei CSV-Dateien besteht darin, dass sie mehr Speicherplatz auf der Festplatte beanspruchen und langsamer geladen werden. Der nächste Schritt besteht also darin, die CSV-Datei in eine Pickle-Datei zu konvertieren. Sie können je nach Ihrer Situation komprimieren oder nicht komprimieren. Wenn Ihre Festplatte groß ist, wird empfohlen, sie nicht zu komprimieren. Im Allgemeinen beträgt die nachhaltige Datenmenge etwa 50 GB pro Monat, es hängt also von Ihrer Situation ab. Im Allgemeinen kann man eine schnellere externe SSD-Festplatte kaufen. Heutzutage kostet 1 TB nur ein paar hundert Yuan, was bereits günstig ist. Außerdem wird sie beim Backtesting sehr schnell geladen.
3. Komprimierung in Pickle umwandeln
Der Konvertierungscode befindet sich in csv_to_pkl.py. Wie oben erwähnt, ist es nach der Konvertierung einfacher zu speichern und zu verwenden.
Nach der Konvertierung habe ich die CSV-Datei manuell gelöscht, da sie sonst die Festplatte belegen würde. Es gibt keinen Code zur Implementierung dieses Schritts. Wie bereits erwähnt, handelt es sich dabei um Vorgänge mit sehr geringer Frequenz, die nicht vollständig automatisiert werden müssen. Im Beispielcode verwende ich die GZIP-Komprimierung der Stufe 2. Im Allgemeinen betragen die Daten eines Monats nach der Komprimierung weniger als 10 GB.
CSV nimmt nicht nur Platz ein, sondern lädt auch langsam. Es wird empfohlen, das Pickle-Format zu verwenden. Insgesamt ist die Leistung gut, der Schlüssel liegt jedoch in einer guten Kompatibilität. Wenn Sie Cloud-Server oder viele andere Open-Source-Pakete verwenden möchten, sind diese kompatibler als Feather und dergleichen.
Okay, jetzt, da die Daten fertig sind, können Sie mit dem Studium der Strategien beginnen.
4. Sofortiger Datendownload
Wie bereits erwähnt hinken die Daten auf dem Datenserver von Binance ein oder zwei Tage hinterher. Wenn Sie überprüfen müssen, wie Ihre Strategie unter den aktuellen Marktbedingungen funktioniert, aber den tatsächlichen Preis einer bestimmten Währung nicht rechtzeitig veröffentlicht haben, können Sie den folgenden Code verwenden, um aggTrades zum angegebenen Zeitpunkt zurückzuladen. Normalerweise verwende ich es, um die aktuellen 12 Stunden an Daten herunterzuladen, um zu sehen, wie die Strategie funktionieren könnte.
Wenn der folgende Code verwendet wird, muss er auf die späteste Startzeit geändert werden.

Die heruntergeladenen Daten sehen so aus. Sie können sich die Dokumentation von Binance und die jüngsten Transaktionen (Akkumulation) ansehen, um deren spezifische Bedeutung zu erfahren.

Mit solchen Rohdaten können Sie df.resample(bar_size).agg() verwenden, um sie in jeder benötigten K-Linie auf Ebene zu aggregieren, und Sie können tun, was Sie wollen.
endlich
Im Grunde ist dies die Aufbereitung der aggTrades-Daten, die ich zuvor verwendet habe. Heutige Strategien werden zunehmend volumetrisch und mithilfe detaillierterer Daten können mehr Kategorien von Strategien entwickelt werden. Komplementarität zwischen Strategien ist der Schlüssel zur Multistrategie.
Wenn Sie den oben genannten Code benötigen, können Sie uns kontaktieren, um ihn zu erhalten.