Valul de tendințe de piață de aseară pentru Big Pancake și Second Pancake a venit într-un moment foarte oportun.

De data aceasta, să vorbim despre cum să folosiți înregistrările istoricului tranzacțiilor lui B An.

B An Oficialii au împărtășit o mulțime de date despre tranzacții. Există o pagină Github care oferă informații detaliate despre ce categorii de date sunt disponibile și despre cum să le descarci. Aici introduc în principal descărcarea, organizarea și utilizarea înregistrărilor de tranzacționare agregate aggTrades.

aggTrades este înregistrarea agregată a tranzacțiilor Adică, Binance reunește mai multe tranzacții consecutive care au fost finalizate în același timp, în aceeași direcție și la același preț într-o singură înregistrare, similar cu o linie K, dar cu un singur preț. nu cel mai mare preț. De exemplu, dacă există o comandă mare plasată pe piață și multe comenzi mici încearcă să o prindă, atunci aceste comenzi care ajung în același timp într-un timp foarte scurt (nivel de milisecundă) vor fi agregate împreună. Sau ar putea fi numărul de comenzi pe care motorul de potrivire le poate potrivi la un moment dat.

Avantajul datelor aggTrades este că poate înregistra tranzacții la nivel de milisecunde, dar nu înregistrează atât de multe date ca tranzacțiile pure (adică cele mai originale date, neagregate la același preț Este un compromis bun pentru plan de date de înaltă frecvență.

În general, strategiile de cvasi-înaltă frecvență utilizează astfel de date agregate. Datele cu adevărat de înaltă frecvență utilizează de obicei date despre tranzacții și comenzi. Cantitatea de date este foarte mare și este incomod de procesat. Nu numai că consumă resurse, dar crește și dificultatea programării.

AggTrades poate fi folosit pentru a sintetiza sfeșnice scurte la orice nivel, cum ar fi sfeșnice scurte de 5, 10 sau 15 secunde.

De exemplu, următoarea este linia K de 1 secundă postată înainte.

图片

Există, de asemenea, arbitraj de înaltă frecvență. Este foarte dificil să câștigi bani cu arbitrajul obișnuit. Este foarte competitiv.

Acest tip de date tick-by-tick pot fi, de asemenea, folosite pentru a sintetiza sfeșnice alternative, cum ar fi barele cu volum egal. Este mult mai precis să folosiți sfeșnice minute pentru a le sintetiza mai precisă decât strategia obișnuită a sfeșnicului. În următoarele câteva articole s-ar putea să scriu despre cum să sintetizez acest tip de bar.

Următoarea este o introducere în cod (cea mai mare parte a codului este în atașament, deoarece este prea lung pentru a fi lipit în textul principal). Codul de descărcare este exemplul Binance, dar cu câteva modificări ușoare și, de asemenea, codul meu procesat.

Aici folosim datele lunare ca exemplu (Binance oferă și date zilnice). Codul este cu un singur thread și este executat sincron, fără niciun comportament asincron sau cu mai multe fire. Deoarece astfel de descărcări sunt efectuate o dată pe lună sau n zile, trebuie doar să așteptați puțin și nu este nevoie să faceți totul complicat.

În general, nu există nicio problemă cu utilizarea datelor mai vechi pentru backtesting de bază, deoarece testarea backtesting a datelor de înaltă frecvență este în principal pentru anumite scopuri analitice. să fie executat Comanda nu a fost urmărită, schimbul a fost întârziat etc.

Cu toate acestea, am și cod pentru descărcarea datelor în timp real mai târziu, și anume să descarc datele aggTrades ale zilei pentru a verifica condițiile pieței ratate în timp real. Datele zilnice ale Binance sunt disponibile doar cu o întârziere de câteva zile. Dacă aveți nevoie urgentă, trebuie să îl accesați cu crawlere folosind API-ul de schimb.

1 Descărcați

Prima parte a codului sunt cele două fișiere agg.py și utility.py și apoi utilizați

python3 agg.py -y 2022 -m 6 -t um -folder /calea specificată de dvs.

Iată un exemplu de comandă pentru a descărca toate datele contractului perpetuu aggTrades pentru iunie 2022. De obicei, durează aproximativ zece minute pentru a descărca. Datele sunt descărcate comprimate, așa că următorul pas este să le decomprimați.

2. Decompresie

Pentru a decomprima datele, utilizați fișierul unzip.py Este un cod foarte scurt cu doar două funcții, una pentru decomprimarea datelor lunare și cealaltă pentru decomprimarea datelor zilnice.

Fișierul zip este extras într-un fișier csv. Problema cu fișierele csv este că ocupă mult spațiu pe hard disk și se încarcă lent. Deci, următorul pas este să convertiți fișierul csv într-un fișier pickle. Puteți comprima sau nu comprimați în funcție de situația dvs. Dacă hard disk-ul este mare, se recomandă să nu îl comprimați. În general, datele perpetue sunt de aproximativ 50 GB pe lună, deci depinde de propria situație. În general, puteți cumpăra un hard disk extern SSD mai rapid.

3. Convertiți compresia în murături

Codul de conversie este în csv_to_pkl.py. După cum am menționat mai sus, este mai ușor de salvat și de utilizat după conversie.

După conversie, șterg manual fișierul csv pentru a preveni să ocupe spațiu pe hard disk. Nu există niciun cod pentru a implementa acest pas. După cum am menționat anterior, toate acestea sunt operațiuni cu frecvență foarte joasă și nu trebuie să fie complet automatizate. Am folosit compresia gzip de nivel 2 în exemplul de cod. În general, datele de o lună vor fi mai mici de 10 GB după comprimare.

csv nu numai că ocupă spațiu, dar este și lent de încărcat. Se recomandă formatul murături. În general, performanța sa este bună, iar cheia este compatibilitatea bună. Dacă doriți să utilizați un server cloud sau multe alte pachete open source, acesta este mai compatibil decât feather și altele asemenea.

Bine, acum datele sunt gata și putem începe să studiem strategii.

4. Descărcare de date în timp real

După cum am menționat anterior, datele de pe serverul de date Binance sunt întotdeauna în urmă cu una sau două zile. Dacă trebuie să verificați cum va funcționa strategia dvs. în condițiile actuale de piață, dar nu ați tranzacționat încă o anumită monedă în timp real, puteți utiliza următorul cod pentru a descărca aggTrades înapoi la o oră specificată. De obicei, îl folosesc pentru a descărca datele curente de 12 ore pentru a vedea cum ar putea funcționa strategia.

Dacă se utilizează următorul cod, acesta trebuie modificat la cea mai recentă oră de pornire.

图片

Datele descărcate sunt după cum urmează. Puteți consulta documentația Binance și tranzacțiile recente (colecțiile) pentru a vedea semnificațiile lor specifice.

图片

Cu astfel de date brute, puteți folosi df.resample(bar_size).agg() pentru a le agrega în orice nivel de K-line de care aveți nevoie, mai liber.

în sfârșit

Aceasta este în principiu pregătirea datelor aggTrades pe care le-am folosit mai devreme. Strategiile de astăzi devin din ce în ce mai diverse, iar utilizarea unor date mai detaliate poate dezvolta mai multe categorii de strategii. Complementaritatea între strategii este cheia multistrategiei.

Dacă aveți nevoie de codul de mai sus, ne puteți contacta pentru a-l obține.