Xu hướng thị trường tối qua của Big Pie và Two Pies đến rất đúng lúc. Đã lâu rồi chưa có xu hướng nào suôn sẻ như vậy.

Lần này hãy nói về cách sử dụng hồ sơ giao dịch lịch sử của B.

Các quan chức của B'an đã chia sẻ rất nhiều dữ liệu giao dịch. Có một trang Github nơi bạn có thể xem chi tiết những danh mục dữ liệu nào có sẵn và cách tải chúng xuống. Ở đây tôi chủ yếu giới thiệu việc tải xuống, sắp xếp và sử dụng hồ sơ giao dịch tổng hợp aggTrades.

aggTrades là bản ghi giao dịch sau khi tổng hợp, nghĩa là Binance tổng hợp nhiều giao dịch liên tiếp được thực hiện cùng lúc, theo cùng một hướng và ở cùng mức giá thành một bản ghi, tương tự như đường K, nhưng chỉ có một mức giá và không có giá cao nhất và như vậy. Ví dụ: nếu có một đơn hàng lớn được đặt ở chợ và nhiều đơn hàng nhỏ được đặt để ăn thì những đơn hàng này đến cùng một lúc trong thời gian rất ngắn (mili giây) sẽ được tổng hợp lại với nhau. Hoặc nó có thể là thứ tự mà công cụ so khớp có thể khớp cùng một lúc.

Ưu điểm của dữ liệu aggTrades là nó có thể có các bản ghi giao dịch ở mức mili giây, nhưng nó không có khối lượng dữ liệu lớn như các giao dịch thuần túy (nghĩa là dữ liệu nguyên bản nhất, không được tổng hợp ở cùng một mức giá), đó là một sự thỏa hiệp tốt cho kế hoạch dữ liệu tần số cao.

Nói chung, các chiến lược tần số gần như cao sử dụng dữ liệu tổng hợp như vậy. Những dữ liệu tần số thực sự cao đó thường sử dụng dữ liệu giao dịch và sổ đặt hàng. Lượng dữ liệu rất lớn và rất bất tiện khi xử lý. Nếu không sử dụng thì không cần thiết. Không chỉ tiêu tốn tài nguyên mà còn làm tăng độ khó của việc lập trình.

aggTrades có thể được sử dụng để tổng hợp các dòng K ngắn ở bất kỳ cấp độ nào, chẳng hạn như các dòng K ngắn 5, 10 và 15 giây. Vẫn có thể sử dụng các dòng K đó cho một số chiến lược giao dịch trong ngày.

Ví dụ: sau đây là dòng k cấp 1 giây được đăng trước đó.

图片

Ngoài ra còn có chênh lệch tần số cao. Hiện nay rất khó kiếm tiền bằng chênh lệch giá thông thường, và rất rủi ro nếu tần suất cao hơn, có thể có một số cơ hội.

Loại dữ liệu theo từng dấu tích này cũng có thể được sử dụng để tổng hợp các dòng k thay thế, chẳng hạn như các thanh bằng nhau và những thứ tương tự. Sử dụng aggTrades sẽ chính xác hơn nhiều so với việc sử dụng các dòng k nhỏ. Chiến lược CTA được tạo theo cách này có thể là. so với các chiến lược k-line thông thường bổ sung. Tôi có thể sẽ viết về cách tổng hợp loại thanh này trong một số bài viết tiếp theo.

Sau đây là phần giới thiệu code (hầu hết code đều có trong file đính kèm, vì dài quá nên mình sẽ không post vào văn bản). Mã tải xuống là ví dụ của Binance, nhưng có một số thay đổi nhỏ và mã xử lý của tôi.

Đây là ví dụ về dữ liệu hàng tháng (Binance cũng cung cấp dữ liệu hàng ngày). Tất cả mã đều là một luồng đơn và được thực thi đồng bộ, không có bất đồng bộ hoặc đa luồng. Bởi vì việc tải xuống như vậy được thực hiện mỗi tháng một lần hoặc n ngày nên bạn chỉ cần đợi một lúc và không cần phải làm phức tạp.

Nhìn chung không có vấn đề gì khi sử dụng dữ liệu cũ hơn để kiểm tra lại cơ bản, bởi vì việc kiểm tra lại dữ liệu tần số cao chủ yếu đóng vai trò phân tích và chủ yếu phụ thuộc vào giá thực tế, vì độ trượt có thể lớn hoặc lệnh chờ xử lý có thể không được hoàn thành, và theo dõi Đơn hàng không bị bắt, việc trao đổi bị trì hoãn, v.v.

Nhưng sau này tôi cũng có mã để tải xuống dữ liệu thời gian thực, đó là tải xuống dữ liệu aggTrades trong ngày để xác minh ngay lập tức giá thị trường bị bỏ lỡ. Dữ liệu hàng ngày của Binance chỉ khả dụng với độ trễ vài ngày. Nếu bạn muốn sử dụng nó khẩn cấp, bạn phải tự thu thập dữ liệu bằng API trao đổi.

1 lần tải xuống

Phần đầu tiên của mã là hai tệp agg.py và Utility.py, sau đó sử dụng

python3 agg.py -y 2022 -m 6 -t um -folder/đường dẫn bạn chỉ định

Dưới đây là ví dụ về lệnh tải xuống tất cả dữ liệu aggTrades hợp đồng vĩnh viễn cho tháng 6 năm 2022. Thường mất khoảng mười phút để tải xuống. Dữ liệu được tải xuống dưới dạng nén nên bước tiếp theo là giải nén nó.

2. Giải nén

Để giải nén, hãy sử dụng tệp unzip.py. Đây là một đoạn mã rất ngắn chỉ có hai chức năng, một để giải nén dữ liệu hàng tháng và một để giải nén dữ liệu hàng ngày.

Sau khi giải nén tệp zip, nó sẽ trở thành tệp csv. Vấn đề với các tệp csv là chúng chiếm nhiều dung lượng trên đĩa cứng hơn và tải chậm hơn. Vì vậy, bước tiếp theo là chuyển đổi tệp csv thành tệp dưa chua. Bạn có thể nén hoặc không nén tùy theo tình huống của mình. Nếu ổ cứng của bạn lớn thì không nên nén. Nói chung, dữ liệu bền vững là khoảng 50GB mỗi tháng, tùy thuộc vào tình trạng của bạn. Nói chung, bạn có thể mua ổ cứng SSD ngoài nhanh hơn. Ngày nay, 1TB chỉ có giá vài trăm nhân dân tệ, vốn đã rẻ. Nó cũng tải rất nhanh trong quá trình kiểm tra lại.

3. Chuyển đổi nén sang dưa chua

Mã chuyển đổi có trong csv_to_pkl.py. Như đã đề cập ở trên, việc lưu và sử dụng sau khi chuyển đổi sẽ dễ dàng hơn.

Sau khi chuyển đổi, tôi đã xóa tệp csv theo cách thủ công, nếu không nó sẽ chiếm đĩa cứng. Không có mã để thực hiện bước này. Như đã đề cập trước đây, đây là những hoạt động có tần suất rất thấp và không cần phải tự động hóa hoàn toàn. Tôi sử dụng tính năng nén gzip cấp 2 trong mã ví dụ. Nói chung, dữ liệu của một tháng sẽ nhỏ hơn 10GB sau khi nén.

csv không chỉ chiếm dung lượng mà còn tải chậm. Nên sử dụng định dạng dưa chua. Nhìn chung, hiệu suất của nó là tốt, nhưng điều quan trọng là khả năng tương thích tốt. Nếu bạn muốn sử dụng máy chủ đám mây hoặc nhiều gói nguồn mở khác, chúng tương thích hơn so với Feather và những thứ tương tự.

Được rồi, bây giờ dữ liệu đã sẵn sàng, bạn có thể bắt đầu nghiên cứu các chiến lược.

4. Tải dữ liệu tức thì

Như đã đề cập trước đó, dữ liệu trên máy chủ dữ liệu của Binance bị chậm lại một hoặc hai ngày. Nếu bạn cần xác minh xem chiến lược của mình sẽ hoạt động như thế nào trong điều kiện thị trường hiện tại nhưng chưa đăng giá thực của một loại tiền tệ nhất định kịp thời, bạn có thể sử dụng mã sau để tải aggTrades về thời gian đã chỉ định. Tôi thường sử dụng nó để tải xuống dữ liệu hiện tại của 12 giờ để xem chiến lược có thể hoạt động như thế nào.

Nếu đoạn mã sau được sử dụng, nó cần được sửa đổi theo thời gian bắt đầu mới nhất.

图片

Dữ liệu tải về có dạng như thế này. Bạn có thể tham khảo tài liệu của Binance và các giao dịch gần đây (tích lũy) để biết ý nghĩa cụ thể của chúng.

图片

Với dữ liệu thô như vậy, bạn có thể sử dụng df.resample(bar_size).agg() để tổng hợp chúng thành bất kỳ dòng k cấp nào bạn cần và bạn có thể làm bất cứ điều gì bạn muốn.

cuối cùng

Về cơ bản, đây là quá trình chuẩn bị dữ liệu aggTrades mà tôi đã sử dụng trước đây. Các chiến lược ngày nay ngày càng trở nên quy mô hơn và nhiều loại chiến lược hơn có thể được phát triển bằng cách sử dụng dữ liệu chi tiết hơn. Sự bổ sung giữa các chiến lược là chìa khóa của đa chiến lược.

Nếu bạn cần mã trên, bạn có thể liên hệ với chúng tôi để lấy nó.