Post

(인프라 1) HTS/MTS로 하는 전산 매매의 과정 자세히 살펴보기

HTS/MTS로 주식을 매매할 때 시세 수신부터 주문 체결까지 어떤 일이 일어나는지 네트워크 흐름을 따라가며 살펴봅니다. FEP, BEP, 시세서버, 주문서버, 원장의 역할과 증권사 매매 시스템 전반의 구조를 설명합니다.

(인프라 1) 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)을 거쳐 증권사로 전달됩니다. 부산 코로케이션 고객은 부산에서 직접 시세를 받아 더 빠른 레이턴시를 확보할 수 있습니다.


용어 설명

  1. FEP/BEP: 다음 글에서 설명합니다. 메인프레임 시대 이야기를 좀 해야 합니다.
  2. STOCK-NET: 1991년 10월 가동된 금융투자업계 공동 전용 통신망. 코스콤이 운영하며 한국거래소, 금융투자협회, 증권/선물사, 기관투자가 등을 연결합니다. 인터넷이 아닌 전용망이라 보안과 속도 면에서 유리합니다.
  3. 시세서버: 코스콤/시세FEP로부터 받은 시세 데이터를 편집/가공하는 서버. 호가 정렬 등을 수행하고 BEP를 통해 HTS/MTS에 전달합니다.
  4. 주문서버: 고객 주문이 거래소로 나가기 전에 원장을 조회하여 본인확인, 계좌유효성, 증거금 등을 확인하는 서버. OMS 설계에서 자세히 다룹니다.
  5. 원장: 고객 계좌의 원본 데이터를 보관하는 시스템. 잔고, 예수금, 증거금, 보유 종목 수량 등 실제 데이터가 여기 있습니다. 계정계의 핵심입니다.
  6. 코스콤 IDC: 코스콤이 운영하는 데이터센터. 여의도 메인센터(현물, 시세 분배)와 부산 Proximity DC(파생, 저지연 코로케이션)가 있습니다. 부산 IDC는 KRX 파생 매칭엔진에서 100m 이내에 위치해 저지연 환경을 제공합니다.

목차

  1. FEP와 BEP
  2. 코로케이션과 빛의 속도
  3. 미니원장
  4. Kernel Bypass
  5. 오버클럭 서버

정리

HTS/MTS로 매매할 때 일어나는 일을 정리하면:

  1. 시세 수신: KRX → 코스콤 → 시세FEP → 시세서버 → BEP → HTS/MTS
  2. 주문 송신: HTS/MTS → BEP → 주문서버 → 원장 → 주문FEP → KRX

이 흐름에서 빼거나 단축할 수 있는 구간을 찾으면 속도가 빨라집니다.


다음 글에서는

다음 글에서는 FEP/BEP라는 용어가 어디서 왔는지, 왜 아직도 쓰는지 알아보겠습니다.

This post is licensed under CC BY 4.0 by the author.