LabHub
배우기 러닝패스 코스

자본시장과 결제 · 스냅숏과 증분으로 호가창 다시 세우기 · 실습

화면의 호가창이 조용히 틀린 채로 돌고 있었다

LabHub 에서 이어서 보기

목표

스냅숏 한 장과 증분 갱신으로 호가창을 다시 세우고, 순번이 끊긴 자리와 늦게 도착한 줄이 만든 차이를 가격 단계 수로 셉니다. 마지막에는 재동기화 규칙을 넣은 구현이 기준 스냅숏과 한 단계도 어긋나지 않는 것을 확인합니다.

왜 중요한가

시세 화면은 틀려도 아무 소리를 내지 않습니다. 값이 비거나 예외가 나는 것이 아니라 조금 다른 값이 계속 돌기 때문에, 며칠 뒤 주문이 이상하게 나가고 나서야 거슬러 올라가게 됩니다. 스냅숏에 박힌 순번과 증분의 순번을 어떻게 잇느냐, 순번이 끊겼을 때 멈추느냐 계속 얹느냐 하는 두 줄짜리 규칙이 그 차이를 만듭니다. 그리고 이 실습의 계산은 전부 가격을 다룹니다. 가격을 이진 부동소수로 빼는 순간 한 호가 단위를 재는 판정이 조용히 0 이 되므로, 값이 아니라 자료형에서 먼저 지고 들어가는 경우가 무엇인지도 함께 봅니다.

단계

1. python3/root/cap/book/data 에 네 개 자료 파일을 만듭니다. 생성 스크립트를 그대로 쓰세요.
2. 증분 스트림의 모양을 세어 /root/cap/book/shape.txt 에 아홉 줄로 적습니다.
3. 시작 스냅숏으로 호가창을 세우고 겹치는 증분을 세어 /root/cap/book/init.json 에 적습니다.
4. 증분을 순번 순서로 얹어 /root/cap/book/naive.json 에 호가창과 동작별 건수를 적습니다.
5. 재생 중 불변식이 깨진 자리를 찾아 /root/cap/book/invariant.txt 에 일곱 줄로 적습니다.
6. 끊긴 구간과 다시 세운 결과의 차이를 /root/cap/book/gap.json 에 적습니다.
7. 늦게 도착한 줄과 그것이 만든 차이를 /root/cap/book/late.json 에 적습니다.
8. 재동기화 규칙을 넣은 최종 호가창을 /root/cap/book/final/book.json 에, 품질 보고를 /root/cap/book/final/report.json 에 남깁니다.

참고

단계 8개

  1. 스냅숏과 증분 스트림 만들기
  2. 증분 스트림의 모양 세기
  3. 스냅숏으로 호가창 세우고 겹치는 증분 버리기
  4. 증분을 얹어 호가창 재구성하기
  5. 교차한 호가창이 나오는 순간 찾기
  6. 끊긴 자리에서 계속 얹은 것과 다시 세운 것 견주기
  7. 늦게 도착한 줄을 그대로 얹으면 어떻게 되는가
  8. 재동기화 규칙을 넣은 최종 구현으로 기준과 대조하기