Včerejší noční trend pro Big Pie a Two Pie byl opravdu aktuální. Tak hladký trend už dlouho nebyl.

Tentokrát si promluvme o tom, jak používat historické záznamy transakcí B.

Představitelé B'an sdíleli mnoho transakčních dat. Existuje stránka Github, kde si můžete podrobně prohlédnout, jaké kategorie dat jsou k dispozici a jak je stáhnout. Zde uvádím především stahování, organizaci a používání agregovaných záznamů transakcí aggTrades.

aggTrades je záznam transakce po agregaci, to znamená, že Binance agreguje několik po sobě jdoucích transakcí provedených ve stejnou dobu, ve stejném směru a za stejnou cenu do jednoho záznamu, podobně jako K-line, ale pouze s jednou cenou a žádným nejvyšší cena nejnižší cena a tak dále. Například, pokud je na trhu umístěna velká objednávka a je zadáno mnoho malých objednávek, aby ji zkonzumovaly, pak budou tyto objednávky, které dorazí ve stejnou dobu ve velmi krátkém čase (milisekundy), agregovány dohromady. Nebo to může být pořadí, se kterým se může shodující se engine najednou shodovat.

Výhodou dat aggTrades je, že mohou mít záznamy transakcí na úrovni milisekund, ale nemají tak velký objem dat jako čisté obchody (tedy ta nejoriginálnější data, neagregovaná za stejnou cenu), což je dobrý kompromis pro vysokofrekvenční data.

Obecně kvazi-vysokofrekvenční strategie používají taková agregovaná data. Tato opravdu vysokofrekvenční data obecně využívají data obchodů a objednávek. Množství dat je velmi velké a je velmi nepohodlné je zpracovávat, není potřeba. Nejenže spotřebovává zdroje, ale také zvyšuje obtížnost programování.

aggTrades lze použít k syntéze krátkých K-linií jakékoli úrovně, jako jsou krátké K-linky o délce 5, 10 a 15 sekund. Tyto K-linky je stále možné použít pro některé strategie intradenního obchodování.

Například následující je 1sekundová úroveň k-řádku zveřejněná dříve.

图片

Existuje také vysokofrekvenční arbitráž Obyčejnou arbitráží je nyní těžké vydělat a je velmi riskantní, pokud je frekvence vyšší, mohou být nějaké příležitosti.

Tento druh dat po jednotlivých položkách lze také použít k syntéze alternativních k-čar, jako jsou rovné čáry a podobně. Použití aggTrades je mnohem přesnější než použití minutových k-čar ve srovnání s běžnými strategiemi k-line komplementární. O tom, jak syntetizovat tento druh tyče, mohu napsat v několika následujících článcích.

Následuje úvod kódu (většina kódu je v příloze, protože je příliš mnoho a příliš dlouhý, nebudu ho zveřejňovat v textu). Kód ke stažení je příkladem Binance, ale s malými změnami a mým kódem zpracování.

Zde je příklad měsíčních dat (Binance poskytuje i denní data). Celý kód je jednovláknový a spouští se synchronně, bez asynchronního nebo vícevláknového. Protože takové stahování probíhá jednou za měsíc nebo n dní, můžete chvíli počkat a není třeba to komplikovat.

S využitím starších dat pro základní zpětné testování není obecně problém, protože vysokofrekvenční zpětné testování dat hraje především analytickou roli a záleží především na skutečné ceně, protože skluz může být velký, nebo může dojít k nedokončení čekající objednávky, a navazující Objednávka nebyla zachycena, výměna byla zpožděna atp.

Ale později mám také kód pro stahování dat v reálném čase, což je stahování dat aggTrades dne pro okamžité ověření ztracených tržních cen. Denní data Binance jsou k dispozici pouze s několikadenním zpožděním. Pokud jej chcete použít naléhavě, musíte jej procházet sami pomocí Exchange api.

1 stažení

První částí kódu jsou dva soubory agg.py a utility.py a poté použijte

python3 agg.py -y 2022 -m 6 -t um -složka /vaše zadaná cesta

Zde je příklad příkazu ke stažení všech trvalých smluvních dat aggTrades za červen 2022. Stažení obvykle trvá asi deset minut. Data se stahují komprimovaná, takže dalším krokem je dekomprimovat je.

2. Rozepněte zip

K dekomprimaci použijte soubor unzip.py Je to velmi krátký kód s pouze dvěma funkcemi, jednou pro dekomprimaci měsíčních dat a druhou pro dekomprimaci denních dat.

Po rozbalení souboru zip se z něj stane soubor csv. Problém souborů csv spočívá v tom, že zabírají více místa na pevném disku a načítají se pomaleji. Takže dalším krokem je převést soubor csv na soubor pickle. Můžete komprimovat nebo nekomprimovat podle své vlastní situace. Pokud je váš pevný disk velký, doporučuje se jej nekomprimovat. Obecně platí, že udržitelná data jsou asi 50 GB za měsíc, takže záleží na vaší situaci. Obecně si můžete koupit rychlejší externí pevný disk SSD V dnešní době stojí 1 TB jen pár stovek juanů, což je již levné i při zpětném testování.

3. Převeďte kompresi na moření

Konverzní kód je v csv_to_pkl.py. Jak již bylo zmíněno výše, po převodu se snáze uloží a použije.

Po převodu jsem ručně smazal soubor csv, jinak by zabíral pevný disk. Neexistuje žádný kód pro implementaci tohoto kroku. Jak již bylo zmíněno, jedná se o velmi nízkofrekvenční operace a není nutné je plně automatizovat. V ukázkovém kódu používám kompresi gzip úrovně 2 Obecně jsou data za jeden měsíc po kompresi menší než 10 GB.

Nejen, že csv zabírá místo, ale také se pomalu načítá. Doporučuje se použít formát nálevu. Celkově je jeho výkon dobrý, ale klíčová je dobrá kompatibilita. Pokud chcete používat cloudové servery nebo mnoho dalších open source balíčků, jsou kompatibilnější než feather a podobně.

Dobře, teď, když jsou data připravena, můžete začít studovat strategie.

4. Okamžité stahování dat

Jak již bylo zmíněno, data na datovém serveru Binance zaostávají o jeden nebo dva dny. Pokud potřebujete ověřit, jak bude vaše strategie fungovat za aktuálních tržních podmínek, ale nezveřejnili jste včas skutečnou cenu určité měny, můžete použít následující kód ke stažení aggTrades zpět do určeného času. Obvykle jej používám ke stažení aktuálních 12 hodin dat, abych viděl, jak může strategie fungovat.

Pokud je použit následující kód, je třeba jej upravit na nejnovější čas spuštění.

图片

Stažená data jsou takto. Můžete se podívat na dokumentaci Binance a nedávné transakce (akumulace), abyste viděli jejich konkrétní význam.

图片

S takovými nezpracovanými daty můžete použít df.resample(bar_size).agg() k jejich agregaci do libovolné úrovně k-line, kterou potřebujete, a můžete si dělat, co chcete.

nakonec

V podstatě se jedná o přípravu dat aggTrades, které jsem použil dříve. Dnešní strategie se stávají stále objemnějšími a pomocí podrobnějších dat lze vyvinout více kategorií strategií. Klíčem k multistrategii je komplementarita mezi strategiemi.

Pokud potřebujete výše uvedený kód, můžete nás kontaktovat a získat jej.