(인프라 1) HTS/MTS로 하는 전산 매매의 과정 자세히 살펴보기
HTS/MTS로 주식을 매매할 때 시세 수신부터 주문 체결까지 어떤 일이 일어나는지 네트워크 흐름을 따라가며 살펴봅니다. FEP, BEP, 시세서버, 주문서버, 원장의 역할과 증권사 매매 시스템 전반의 구조를 설명합니다.
이 글은 매매 시스템 - 인프라 시리즈의 첫 번째 글입니다.
HTS/MTS로 매매를 할 때 무슨 일이 일어나는지 한번 살펴보죠.
화면을 열면 소위 말하는 호가창이 보입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
┌─────────────────────────────────────────┐
│ xxxxxxx Electronics │
│ 81,500 (+2.3%) │
├─────────────────────────────────────────┤
│ Sell Volume │ Price │ Buy Volume │
├───────────────────┼────────┼────────────┤
│ 1,234 │ 81,800 │ │
│ 2,567 │ 81,700 │ │
│ 3,891 │ 81,600 │ │
│ 5,432 │ 81,500 │ │ <-- Current
│ 1,876 │ 81,400 │ │
├───────────────────┼────────┼────────────┤
│ │ 81,300 │ 2,345 │
│ │ 81,200 │ 4,567 │
│ │ 81,100 │ 3,210 │
│ │ 81,000 │ 6,789 │
│ │ 80,900 │ 1,543 │
├─────────────────────────────────────────┤
│ Open: 80,200 High: 81,800 Low: 80,100 │
│ Volume: 1,234,567 │
└─────────────────────────────────────────┘
이런 화면에서 숫자가 바뀌고 오르락내리락 합니다. 옆에는 등락률, 시가, 고가 등 여러 가지 숫자가 보이고요. 이렇게 시각화된 모든 것들은 네트워크를 통해 전송되는 문자열들을 분해하고 해석하고 조합해서 눈에 보기 좋게 보여준 결과입니다.
이번 글에서는 시세를 받고, 시세를 보고 주문을 냈을 때 그것이 다시 우리에게 시세로 보이는 과정까지의 흐름을 설명하려고 합니다. 그 과정을 이해하면
- 뺄 수 있는 부분은 빼서 빠르게 만들고
- 비효율적인 부분은 개선하고
- 우리도 똑같이 만들어야 하는 부분은 구현하고 (예: 호가창, 오더북)
- 시스템 자체에는 안 보이지만 꼭 필요한 EDA, 백테스트 등
전반적인 과정을 저는 매매 시스템 설계라고 정의하고 있습니다.
현재 HTS/MTS의 동작 흐름
자, 일단 우리가 직접 설계하지 않았을 때 어떤 일이 일어나는지 살펴볼까요? 용어 설명은 밑에서 하겠습니다.
시세 수신
flowchart TB
subgraph BUSAN [부산]
ME_D[<b>KRX 파생</b><br>EXTURE+]
end
subgraph YEOUIDO [여의도]
ME_S[<b>KRX 현물</b><br>EXTURE+]
KOS[<b>코스콤</b><br>시세 분배<br>KT IDC]
end
subgraph SECURITIES [증권사]
QFEP[<b>시세 FEP</b>]
QS[<b>시세서버</b>]
BEP1[<b>BEP</b>]
end
ME_D --> KOS
ME_S --> KOS
KOS --> |STOCK-NET| QFEP
QFEP --> QS
QS --> BEP1
BEP1 --> |인터넷| HTS[<b>HTS/MTS</b>]
style BUSAN fill:#ffd700,color:#000,stroke:#333
style YEOUIDO fill:#ffd700,color:#000,stroke:#333
style SECURITIES fill:#e0e0e0,color:#000,stroke:#333
linkStyle default stroke:#000
주문 송신
flowchart TB
subgraph SECURITIES [증권사]
BEP2[<b>BEP</b>]
OS[<b>주문서버</b>]
LED[<b>원장</b>]
OFEP[<b>주문 FEP</b>]
end
subgraph YEOUIDO [여의도]
ME_S2[<b>KRX 현물</b><br>EXTURE+]
end
subgraph BUSAN [부산]
ME_D2[<b>KRX 파생</b><br>EXTURE+]
end
HTS2[<b>HTS/MTS</b>] --> |인터넷| BEP2
BEP2 --> OS
OS --> LED
LED --> OFEP
OFEP --> |STOCK-NET| ME_S2
OFEP --> |STOCK-NET| ME_D2
style BUSAN fill:#ffd700,color:#000,stroke:#333
style YEOUIDO fill:#ffd700,color:#000,stroke:#333
style SECURITIES fill:#e0e0e0,color:#000,stroke:#333
linkStyle default stroke:#000
위는 시세가 우리에게 오는 흐름, 아래는 주문이 거래소로 가는 흐름입니다.
참고: KRX 현물(주식, 채권) 매칭엔진은 여의도, 파생(선물, 옵션) 매칭엔진은 부산에 있습니다. 그러나 시세 분배는 여의도 코스콤 (여의도 KT IDC)을 거쳐 증권사로 전달됩니다. 부산 코로케이션 고객은 부산에서 직접 시세를 받아 더 빠른 레이턴시를 확보할 수 있습니다.
용어 설명
- FEP/BEP: 다음 글에서 설명합니다. 메인프레임 시대 이야기를 좀 해야 합니다.
- STOCK-NET: 1991년 10월 가동된 금융투자업계 공동 전용 통신망. 코스콤이 운영하며 한국거래소, 금융투자협회, 증권/선물사, 기관투자가 등을 연결합니다. 인터넷이 아닌 전용망이라 보안과 속도 면에서 유리합니다.
- 시세서버: 코스콤/시세FEP로부터 받은 시세 데이터를 편집/가공하는 서버. 호가 정렬 등을 수행하고 BEP를 통해 HTS/MTS에 전달합니다.
- 주문서버: 고객 주문이 거래소로 나가기 전에 원장을 조회하여 본인확인, 계좌유효성, 증거금 등을 확인하는 서버. OMS 설계에서 자세히 다룹니다.
- 원장: 고객 계좌의 원본 데이터를 보관하는 시스템. 잔고, 예수금, 증거금, 보유 종목 수량 등 실제 데이터가 여기 있습니다. 계정계의 핵심입니다.
- 코스콤 IDC: 코스콤이 운영하는 데이터센터. 여의도 메인센터(현물, 시세 분배)와 부산 Proximity DC(파생, 저지연 코로케이션)가 있습니다. 부산 IDC는 KRX 파생 매칭엔진에서 100m 이내에 위치해 저지연 환경을 제공합니다.
정리
HTS/MTS로 매매할 때 일어나는 일을 정리하면:
- 시세 수신: KRX → 코스콤 → 시세FEP → 시세서버 → BEP → HTS/MTS
- 주문 송신: HTS/MTS → BEP → 주문서버 → 원장 → 주문FEP → KRX
이 흐름에서 빼거나 단축할 수 있는 구간을 찾으면 속도가 빨라집니다.
다음 글에서는
다음 글에서는 FEP/BEP라는 용어가 어디서 왔는지, 왜 아직도 쓰는지 알아보겠습니다.
