avatar of 发明者量化-小小梦 发明者量化-小小梦
tập trung vào tin nhắn riêng tư
4
tập trung vào
1271
Người theo dõi

Tài liệu định lượng phải đọc: Dữ liệu Tick thực chất là gì? Tại sao việc tìm kiếm dữ liệu giao dịch đáng tin cậy lại khó đến vậy?

Được tạo ra trong: 2016-11-02 19:33:56, cập nhật trên: 2016-11-02 19:48:20
comments   0
hits   12005
  • ### Một, Tic Data là gì?

Tick Data không phải là bí ẩn, nó là giao dịch gửi cho bạn các đơn đặt hàng mua và bán trong sổ đặt hàng hoạt động của mỗi cổ phiếu (hoặc tùy chọn tương lai).

**举例说明:**
  某天的市场一开始的时候苹果股票的order book(委托挂单)清空(这里不进行auction period的探讨):
  1. 接着来了第一个卖家:1000@100 :
  这时候交易所会发给你一个message,告诉你是苹果股票有人想以100块钱卖出1000股,
  那么这个order就先挂在了order book上,成为卖一。

  卖:1000@100


  2. 第二个卖家来了,他想卖得更高: 1000@101:
  这时候交易所会发给你另一个message,告诉你是苹果股票有人卖的价格比你差,于是排序在更上面,卖二。

  卖:1000@101

  1000@100


  3. 刚才的第一个卖家后悔了,cancel了他的order:1000@100撤消了,那么交易所会有message告诉你,
  现在只剩一个1000@101(卖一)。但是你可能需要自己编程处理这种remove掉一个tick的情况。

  卖:1000@101


  4. 终于有买家来了... 500@90 , 这个价格是不会成交的,因为买家低于现在的最佳卖价:101,
  那么order book里面会继续存着这个order,同时会发送一个tick告诉市场上的其他人,有买单了:

  卖:1000@101

  买:500@90


  5. 继续,接着有一位买家以101块钱买入1000股,等于要把目前的bestoffer 1000@101给match - 撮合了,那么你是不会收到这个最新的bid: 101@1000 的,
  因为它会进入matching engine的瞬间跟对面的best offer 撮合了,tick table的一个规则: bid offer 永远不会cross,
  否则要么是数据商的bug,要么是交易所的bug。现在,你只会收到一个告诉你delete the best offer的message,那么tick table长这样:

  买:500@90

  Dữ liệu Tick đơn giản như vậy, thị trường sẽ lặp lại quá trình này. Nhưng điều khó khăn hơn là:

    1. Nhiều lần dữ liệu của tick sẽ được gửi bằng UDP, hãy tưởng tượng rằng nếu giao dịch rất hoạt động trên thị trường chứng khoán, thì khối lượng dữ liệu sẽ rất lớn, UDP sẽ có trường hợp bị mất gói, cách xử lý. Đã từng gặp phải bản cập nhật tick rất điên rồ nhưng cũng phải giữ bộ nhớ cache cập nhật micro second, có thể phải sắp xếp (xem giao thức giao dịch), và gửi ra phía trước.
    1. Làm thế nào để xử lý dữ liệu tick thời gian thực nhanh hơn, nếu không, số lượng dữ liệu quá lớn, một khi bị trì hoãn, bạn sẽ không thể theo kịp tốc độ của tick thời gian thực nữa, cho đến khi chương trình của bạn bị treo.
    1. Làm thế nào để tránh một số trường hợp đặc biệt gây ra lỗi, nếu một tick không đúng, thì tất cả các tick table sau đó đều sai:)

** Tương tự, cũng có vấn đề về sự hiểu biết về tick: Tick của các thị trường khác nhau cũng có điểm khác nhau, trên đây là thị trường chứng khoán của các nước phát triển, được đẩy theo tình hình thực tế ((Có lệnh mới và trong mức độ gửi tick, ví dụ, sàn giao dịch Tokyo chỉ gửi 8 mức tick, vậy bạn không thể nhìn thấy toàn bộ tick, bởi vì có thể có hơn 100 cấp, nếu có nhiều người giao dịch)) Các giao dịch trong nước là bao nhiêu mili giây chụp một bức ảnh nhanh (snapshot), giao dịch trên là 3 giây, sau đó gửi cho bạn, có lẽ là hệ thống giao dịch trong nước đã rất cũ, không theo kịp sự phát triển của IT.

(Bài viết được biên soạn bởi nhà giao dịch định lượng WeChat id:quantcity)

  • ### Một số chi tiết về dữ liệu chụp nhanh và dữ liệu giao dịch

   Đối với dữ liệu tick tần số cao ở nước ngoài, có quy trình dữ liệu lệnh hoàn chỉnh, vì vậy bạn có thể sử dụng dữ liệu lệnh này để khôi phục dữ liệu chụp nhanh.

Hai trong số các cổ phiếu lớn nhất và bốn trong số các hợp đồng tương lai lớn nhất trong nước theo lý thuyết là dữ liệu nhanh chóng. Ví dụ, các trường dữ liệu điển hình bao gồm: Giá mở bán Giá cao nhất Giá thấp nhất Giá mới nhất Số lượng giao dịch Số lượng giao dịch Ở đây, giá cao nhất (tick) là giá cao nhất (tick) từ khi mở cửa đến khi giao dịch, giả sử bạn có chi tiết chi tiết của mỗi giao dịch, thực tế dữ liệu này có thể được tính toán bằng max (tick) min (tick), vì vậy dữ liệu tick ở nước ngoài thường không có trường này. Có ba loại giao dịch trực tiếp được cung cấp bởi sàn giao dịch trên và sàn giao dịch sâu, chụp nhanh và giao dịch và ủy thác bằng văn bản. Chụp ảnh nhanh là chụp ảnh thị trường mỗi 3 giây (trong giao dịch sâu, giao dịch trên là 5 giây) và sau đó gửi hình ảnh tình hình như giá hiện tại, cao nhất, thấp nhất, khối lượng giao dịch, số tiền giao dịch. Vì chụp ảnh là mỗi 3 giây, chúng ta không biết những gì xảy ra trên thị trường trong 3 giây này. Mỗi giao dịch là một giao dịch thực tế cho mỗi nguyên tử. Tuy nhiên, dữ liệu này cũng được gửi một loạt trong 3 giây, và không phải là thời gian thực. Ví dụ: một giao dịch xảy ra trong 1,5 giây, chỉ được gửi trong 3 giây. Dữ liệu đơn đặt hàng, Level 2 chỉ có 50 đơn đặt hàng hàng đầu, không phải tất cả các đơn đặt hàng. (Bài viết được biên soạn bởi nhà giao dịch định lượng WeChat id:quantcity)

Có một vài loại nguyên nhân điển hình gây ra sự khác biệt trong số liệu.

  • 1. Cách ghi dữ liệu Ví dụ như dữ liệu cấp 1 của chứng khoán, sàn giao dịch phát hành một tệp dbf ghi lại dữ liệu trạng thái mới nhất của tất cả các chứng khoán, tệp dbf được cập nhật tự động liên tục. Vì vậy, người cung cấp dữ liệu hoặc người ghi dữ liệu cần làm là đọc tệp này mỗi khoảng thời gian và đưa tất cả dữ liệu vào cơ sở dữ liệu, nhưng vì tần suất cập nhật dữ liệu của sàn giao dịch không phải là một giá trị duy nhất, vì vậy để không bỏ lỡ dữ liệu, cách tốt nhất là bạn đọc tần suất cao hơn tần suất cập nhật của anh ấy. Bởi vì có một quy tắc như vậy, bạn sẽ thấy một số dữ liệu chứng khoán không hoạt động giao dịch sẽ ít hơn dữ liệu chứng khoán hoạt động giao dịch, dữ liệu tương lai dài hạn sẽ ít hơn dữ liệu gần đây, và các vấn đề khác nhau về đồng bộ thời gian.

  • 2. Vấn đề bảo trì Không ai có thể đảm bảo không bị ngắt mạng. Nếu xảy ra sự cố mạng, lỗi máy, lỗi chương trình, bạn sẽ bỏ lỡ phát dữ liệu của sàn giao dịch. Theo cơ chế dữ liệu được đề cập ở trên, thực tế đối với dữ liệu cấp 1 T và thời điểm T + 1 không có bất kỳ liên kết hợp lý nào, giả sử bạn không thể phát hiện được từ chính dữ liệu, do đó, rất nhiều thiếu sót thực sự là do những lý do này và không thể sửa chữa! Giống như băng video truyền hình ban đầu rất mờ, nhưng quá khứ đã qua và bạn đã không thể sửa chữa được.

  • 3. Lỗi dữ liệu do chương trình gây ra Một số lỗi khác thường, chẳng hạn như giá của một số loại cổ phiếu khác thường, trống, v.v., có thể do lỗi trong chương trình ghi dữ liệu. Tại sao nó xảy ra? Có rất nhiều lý do, chúng ta biết rằng nó sẽ xảy ra. Vì vậy, trong nguyên tắc, rất khó để có được dữ liệu 100% đáng tin cậy, kiểm tra và làm sạch dữ liệu là điều cần thiết và cũng là một điều tẻ nhạt, và việc thiết lập quy tắc cũng phụ thuộc vào kinh nghiệm cá nhân.