avatar of 发明者量化-小小梦 发明者量化-小小梦
집중하다 사신
4
집중하다
1271
수행원

꼭 읽어야 할 양적 자료: 틱 데이터란 정확히 무엇인가요? 왜 신뢰할 수 있는 거래 데이터를 찾는 게 그렇게 어려울까?

만든 날짜: 2016-11-02 19:33:56, 업데이트 날짜: 2016-11-02 19:48:20
comments   0
hits   12008
  • ### 틱데이터란 무엇일까요?

틱데이터 자체는 신비롭지 않습니다. 거래소가 매 주식 (또는 미래 옵션) 의 액티브 오더 북 (즉, 당신의 의뢰는 거래소 안에 존재하지만, 합성 거래가 되지 않습니다) 에 있는 구매, 판매의 통지를 당신에게 보낸다는 것입니다.

**举例说明:**
  某天的市场一开始的时候苹果股票的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

  틱 데이터는 매우 간단해서 시장에서 이 과정을 반복할 수 있습니다. 하지만 더 큰 문제는:

    1. tick의 데이터가 UDP로 전송되는 경우가 많습니다. 상가에서 거래가 매우 활발한 경우 데이터가 매우 많을 수 있다고 상상해 보세요. UDP는 패킷 손실이 발생할 수 있습니다.
    1. 실시간 틱 데이터를 더 빨리 처리하는 방법, 그렇지 않으면 너무 많은 양의 데이터로, 지연이 발생하면, 나중에 실시간 의 속도를 따라잡을 수 없습니다, 당신의 프로그램이 끊어질 때까지.
    1. 어떤 특수한 상황으로 인해 버그가 발생하지 않도록 하는 방법, 한 틱이 맞지 않으면, 그 뒤에 있는 틱 테이블은 모두 틀린 것입니다:)

**또한, 틱에 대한 이해의 문제도 있습니다: 다른 시장의 틱은 다른 점도 있습니다. 위에서 말한 것은 선진국의 주식 시장입니다. 실시간으로 추진됩니다. 국내시장 거래소는 몇 밀리초에 스냅샷을 찍고, 상위시장 거래소는 3초에 심층 거래소를 찍고, 당신에게 보내줍니다. 국내 거래 시스템은 이미 매우 오래되었기 때문에 IT의 발전을 따라잡을 수 없습니다.

(이 글은 양자 거래자 微信id:quantcity가 집계한 것이다.

  • ### 두 번째: 스냅샷 데이터와 거래소 데이터에 대한 몇 가지 세부 사항

   해외의 고주파티크 데이터에 대해, 완전한 명령 데이터의 프로세스가 있으므로, 이 명령 데이터를 사용하여 스냅샷 데이터를 복원할 수 있습니다.

국내의 2대 주식과 4대 선물은 이론적으로 스냅 데이터입니다. 예를 들어, 전형적인 데이터 필드는 오픈 가격 최고 가격 최저 가격 최신 가격 거래량 거래량 여기의 최고 (최저) 가격은 오픈 시점부터 현재까지 거래된 최고 (최저) 가격이라고 가정하면, 각각의 거래에 대한 상세한 세부사항이 있다고 가정하면, 실제로 이 데이터는 max (최저) 으로 추산할 수 있기 때문에, 해외의 틱 데이터는 일반적으로 이 필드가 없다. 상거래소와 심거래소에서 제공하는 실시간 거래는 3가지로, 스냅샷과 직접 거래 및 위탁이다. 스냅샷은 매 3초마다 (깊은 거래소에서는 5초, 상위 거래소에서는 5초) 시장의 사진을 찍은 후 현재 가격, 최고, 최저, 거래량, 거래금액 등의 현황 사진을 보낸다. 사진이 매 3초마다이기 때문에 이 3초 동안 시장에서 무슨 일이 일어났는지 알 수 없다. 매일 연속적으로 입찰 시간은 오전 2시간마다 총 4시간이다. 그래서 스냅샷의 횟수는 14400/3이 약 3800번이다. 주식만 놓고 보면, 매일 전체 시장의 스냅샷 데이터는 2G 이상이다. 1개 거래는 실제의 1개 거래이다. 그러나 이 데이터는 3초에 한 건을 보낸 것도 아니고, 실시간이 아니다. 예를 들어 1.5초에 일어난 거래는 3초에 이르러서야 보낸다. Level 2는 상위 50개만 있고, 전부가 아닙니다. (이 글은 양자 거래자 微信id:quantcity가 집계한 것이다.

통상적으로 데이터의 차이를 일으키는 몇 가지 유형이 있습니다.

  • 1. 데이터 기록 방법 예를 들어 주식의 Level1의 데이터를 예로 들면, 거래소는 dbf 파일을 발행하여 모든 증권의 최신 상태 데이터를 기록하고, dbf 파일은 지속적으로 자동으로 업데이트된다. 그러면 데이터 제공자 또는 데이터를 기록하는 사람이 해야 할 일은 이 파일을 매번 읽고, 모든 데이터를 데이터베이스에 넣는 것이다. 하지만 거래소가 데이터를 업데이트하는 빈도가 단일한 값이 아니기 때문에, 데이터를 놓치지 않기 위해, 가장 좋은 방법은 당신이 읽는 빈도가 더 높다. 이런 규칙이 있기 때문에, 여러분이 볼 수 있는 비활성 거래 증권 데이터의 양이 활발하게 거래되는 증권보다 적고, 장기적인 선물 데이터의 양이 근기적인 것보다 적고, 시간이 동시화되지 않는 등의 문제들이 있습니다.

  • 2. 운영 문제 아무도 인터넷이 끊어지지 않을 것을 보장할 수 없습니다. 인터넷이 끊어지면, 기계 오류, 프로그램 오류 등이 발생하면 거래소의 데이터가 재생되지 않습니다. 앞서 설명한 데이터 메커니즘에 따르면, 실제로 레벨 1 데이터의 T와 T + 1 시점에 대한 논리적 연관성이 없습니다. 누락된 경우 데이터 자체에서 발견 할 수 없습니다. 따라서 많은 누락이 실제로 이러한 원인으로 인해 발생하고 복구 할 수 없습니다! 마치 초기 TV 비디오 테이프가 명확하지 않지만 과거가 지나갔기 때문에 복구 할 수 없습니다.

  • 3. 프로그램으로 인한 데이터 오류 어떤 비교적 특이한 오류들, 예를 들어 어떤 유형의 주식 가격이 비정상화되고, 공백이 발생하고, 기타 등등은 데이터를 기록하는 프로그램의 오류로 인해 발생할 수 있다. 왜 발생하는가? 어쨌든 많은 이유도 있고, 우리는 발생되는 것을 알 수 있다. 따라서 원칙적으로 100% 신뢰할 수 있는 자료를 확보하는 것은 어렵고, 자료의 검증과 정리가 필요하며, 규칙의 수립은 개인의 경험에 달려 있습니다.