KRX 장애, 중간가와 자전거래 그 사이에서

1.
살면서 처음 겪은 현상입니다. 여의도를 삶의 터전으로 삼은 이후 한국증권거래소 매매체결시스템부터 시작해서 Exture, Exture+에 거치고 이번 ATS대응 시스템까지 겪었습니다. 이번 ATS대응 시스템을 위해 증권IT를 업으로 삼고 있는 많은 분들이 3.1절 연휴까지 반납하며 준비를 철저히 하였습니다.

개인적으로 기억하는 최대 장애는 2005년 현대전자 과다호가로 장애가 발생한 사건입니다.

증권전산(주)의 주식매매시스템에 장애가 발생,장중 한때 현대전자의 매매체결이 중단되는 사태가 발생했다.8일 증권거래소는 증권전산(주)이 운영하는 주식매매시스템의 현대전자 체결프로그램에 장애가 발생해 전장 10시부터 10시37분까지 37분간 현대전자의 체결업무가 일시 중단됐다고 밝혔다. 이 시간동안 접수된 약6천건의 호가주문은 체결이 재개된 10시38분부터 5분이내에 완전 해소됐다고 덧붙였다. 거래소 관계자는 “종목별,가격대별 호가와 관련된 정보파일에 이상이 발생한 게 주원인으로 추정된다”고 말했다.

거래소와 증권전산(주)은 지난해 10월27일 현대전자 주문이 폭주한 이후 현대전자를 주문폭주 종목으로 지정,체결지연 현상을 해소시켜 왔다

위 장애는 매매체결시스템이 감당할 수 있는 용량이상으로 호가를 받으면서 발생하였습니다. 기억이 맞다면 현대전자만을 위해 독립적인 매매체결엔진을 두어서 해결하였습니다.

이번 장애는 매매체결시스템의 로직때문이라고 합니다.

한국거래소는 18일 장중 발생한 전산장애의 원인이 최근 대체거래소인 넥스트레이드 출범과 함께 도입된 ‘중간가 호가’와 기존 로직의 충돌 때문이라고 밝혔다.

거래소는 이날 오전 발생한 장애의 원인을 분석한 결과 이같이 결론 내렸다며 “동양철관[008970] 종목의 자전거래방지 조건 호가의 매매체결 수량 계산시 중간가 호가 수량이 누락되면서 매매체결 지연이 발생했다”고 설명했다. 자전거래방지 조건은 거래 ID가 동일한 경우 상호체결을 방지하는 장치다. 같은 ID에서 동일한 가격의 매수, 매도 주문이 발생할 경우 한쪽의 호가가 효력 정지된다.이날 동양철관 거래에서 자전거래방지 조건으로 인해 중간가 호가와 일반 호가만 존재하는 상황이 만들어졌고, 중간가 호가 특성에 따른 ‘가격 절사’로 인해 예상 체결가능주식 수와 실제 체결된 주식 수간 괴리가 발생했다는 설명이다.중간가 호가는 최우선 매수·매도 호가의 중간 가격으로 가격이 자동으로 조정되는데, 호가 가격 단위가 1원인 종목(1주 2천원 미만)의 경우 중간가 호가가 0.5원이어서 0원으로 절사되면서 수량 오류가 발생할 가능성이 있다. 동양철관은 거래 중단 직전 1천28원에 거래되고 있었다. 시스템이 이같은 오류를 인지하면서 동양철관이 포함된 코스피 주식군 전체의 거래가 멈췄다는 설명이다.

이같은 오류로 오전 11시 37분부터 11시 44분까지 7분간 코스피 시장 전체의 거래가 멈췄다. 동양철관을 제외한 나머지 종목의 거래는 이후 정상적으로 체결됐으나 동양철관의 경우 거래 중단 상태가 지속되다가 오후 12시 5분께 거래매매정지 조치됐고, 이후 오후 3시에 거래가 재개됐다
거래소 전산장애, 중간가 호가 오류 때문…”기존 로직과 충돌”중에서

한국거래소 매매체결전문중 이번 장애가 관련한 코드들이 있습니다.
첫째는 호가유형코드(ORDER_TYPE_CODE)입니다

1 시장가 (Market)
2 지정가 (Limit)
4 스톱지정가(StopLimit)
M 중간가(Midpoint)
T 가격제한시장가
W 가격제한최유리지정가
I 조건부지정가 (Limit To Market)
V 경쟁대량 (현물만 해당, 값 변경 : 3->V)
X 최유리지정가
Y 최우선지정가 (현물만 해당)

‘M 중간가’가 ATS에 대응하기 위해 추가한 호가유형입니다.

둘째는 자전거래방지코드(SMP_CD)입니다.

0 해당없음(선행/후행에 관계없이 자전거래방지 미적용)
1 기존호가 취소
2 신규호가 취소
3 양방향 호가 취소

2.
다시금 보도자료를 인용한 기사를 보면 다음과 같은 문장이 등장합니다.

동양철관과 관련해선 자전거래 방지 조건으로 인해 중간가 호가와 일반 호가만 존재하는 상황

이 문장을 어떻게 이해할지 고민스럽습니다. 말 그대로 이해하면 최우선호가가 없다는 뜻으로 읽히는데.. 한국거래소 법규중 최우선호가 및 중간가 산출 규정은 아래와 같습니다.

제4조(최우선지정가호가의 가격)규정 제2조제4항제5호에서 “세칙이 정하는 가격”이라 함은 다음 각 호의 가격을 말한다.

1. 매도의 최우선지정가호가의 경우
해당 호가의 접수시점에서 가장 낮은 매도호가(중간가호가로 제출된 매도호가를 제외한다. 이하 이 호에서 같다)의 가격. 다만, 매도호가가 없는 때에는 직전의 가격(그 가격이 호가가격단위와 일치하지 않는 경우에는 그 가격보다 높고 호가가격단위와 일치하는 가격 중 그 가격에 가장 가까운 가격으로 한다)으로 한다.

2. 매수의 최우선지정가호가의 경우
해당 호가의 접수시점에서 가장 높은 매수호가(중간가호가로 제출된 매수호가를 제외한다. 이하 이 호에서 같다)의 가격. 다만, 매수호가가 없는 때에는 직전의 가격(그 가격이 호가가격단위와 일치하지 않는 경우에는 그 가격보다 낮고 호가가격단위와 일치하는 가격 중 그 가격에 가장 가까운 가격으로 한다)으로 한다.

제4조의2(중간가호가의 가격)규정 제2조제4항제7호에서 “세칙으로 정하는 가격”이란 복수가격에 의한 개별경쟁매매를 하는 시간의 최우선매도호가의 가격과 최우선매수호가의 가격을 단순산술평균한 가격(1원 미만은 절사한다. 이하 “중간가격”이라 한다)을 말한다.

기사중 중간가호가와 관련한 설명은 규정과 같습니다. 최우선호가는 호가중 가장 높거나 가장 낮은 가격의 호가입니다. 제가 이해하기 힘든 부분은 일반 호가만 존재한다는 표현을 왜 사용했는지 궁금하네요.

다른 기사를 보면 좀더 깊은 설명을 해줍니다. 연합인포맥스 [초유의 주식 거래정지①] 중간호가 전산 충돌…막을 수 없었나입니다.

동양철관처럼 주가가 2천원 미만인 ‘동전주’ 종목은 호가 단위가 1원에 불과하다. 최우선 매수와 매도 호가 차이가 1원으로, 중간가호가에서는 1원 미만의 소수점 차이만 생기는 점에서 문제가 발생했다.
코스피는 1원 미만의 소수점 단위는 절사한다. 이 경우 1원 미만 소수점 단위를 절사하기에 중간가호가는 매수 호가와 동일해진다. 전산 오류가 발생하기 직전(전날 오전 11시 37분) 동양철관은 1천28원에 거래가 체결되고 있었다.가령 매수 호가가 1천27원이고 매도 호가가 1천28원으로 대치하는데 중간가를 계산하면 1천27.5원이다. 소수점을 절사하면 1천27원으로 매수 호가와 동일하다.

여기서 기존에 설정한 자전거래방지(SMP) 시스템이 발동했다. SMP는 거래 ID가 동일한 주체의 매수와 매도 거래가 서로 체결되는 현상을 방지한다. 중간가호가로 들어온 신규 주문이 동일한 계정의 반대 거래 주문과 동시에 같은 가격으로 게시된다면 SMP는 자전거래로 체결 불가 상태로 처리한다.중간가호가가 매수호가와 동일해 SMP 시스템과 충돌을 일으켰고, 이러한 매매 지연은 코스피 전체 거래체결 엔진을 멈추게 한 것으로 추정된다.

이 기사로 상황을 이해해보면.

A계정의 투자자가 중간가 매도주문을 냈습니다. 동시에 같은 투자자가 1027원으로 매수주문을 냈습니다. 제가 아는 한 모든 매매체결시스템은 가격과 시간우선의 원칙을 적용합니다. 글로는 “동시에”라고 하였지만 시스템상으로 보면 몇 마이크로초수준에서 순위가 정해집니다. 중간가 매도주문을 먼저 냈으면 체결불가가 일어나지 않았을 듯 합니다. 반대의 경우이어야 발생할 수 있는 상황입니다.

A계정의 투자자가 1027원으로 매도주문을 냈습니다. 이후 중간가 매수주문을 냈습니다. 이럴 경우 중가가매수주문을 체결처리하려고 하니까 매도호가 1027원에 걸린 주문이 같은 계정인 상황이 발생하였습니다. 알고리즘매매를 하는 투자자들이 사용하는 전문중 자전거래방지조건과 관련한 규정입니다.

제13조의2(자전거래방지조건 호가의 효력)① 규정 제12조제1항 단서에 따라 고속 알고리즘거래자의 호가 중 고속 알고리즘거래번호가 동일하고 다음의 조건이 부여된 양방향 호가 간에 매매체결이 가능한 경우 나중에 접수된 호가에 부여된 조건을 기준으로 다음 각 호에 따라 해당 호가의 수량을 취소한 것으로 본다.
1. 먼저 접수된 호가잔량의 전수량을 취소하는 조건
2. 나중에 접수된 호가의 전수량을 취소하는 조건
3. 양방향 호가 간 체결이 가능한 수량을 각각 취소하는 조건
② 제1항은 정규시장 중 규정 제24조에 따른 복수가격에 의한 매매인 경우에만 적용한다. 다만, 해당 호가가 제34조제3항제1호에 따른 동시호가의 우선순위를 적용받는 경우에는 적용하지 아니한다.
③ 제1항에 따른 자전거래방지조건과 제108조제12호가목(1)에 따른 IOC 조건이 동시에 부여된 호가의 경우 자전거래방지조건을 IOC 조건에 우선하여 적용한다.

위 조문을 코드화한 것이 자전거래방지코드(SMP_CD)의 항목입니다.

0 해당없음(선행/후행에 관계없이 자전거래방지 미적용)
1 기존호가 취소
2 신규호가 취소
3 양방향 호가 취소

위 값은 알고리즘매매에 적용하는 값이기 때문에 일반거래에는 없지만 자전거래상황이 발생하면 위 1,2,3중 하나로 처리할 수 밖에 없습니다. 그런데 중가가호가를 처리할 때 자전거래인 경우가 발생할 때 처리로직이 없었고 이 때문에 체결이 멈춘 상태가 발생하지 않았나 합니다.

진짜로 예외처리를 하는 로직이 없었는지, 솔직히 모르겠습니다. 다만 아래와 같은 기획기사로 다룰 만한 장애인지 의문입니다. 번지수가 다른 기획인 듯 합니다..

[초유의 주식 거래정지④] 금융당국도 예의주시…중대사고 분류 기준 충족
[초유의 주식 거래정지③] 시스템 장애 때 빛나는 대체거래소
[초유의 주식 거래정지②] 해외 사례 보니 CEO 사과·사임도
[초유의 주식 거래정지①] 중간호가 전산 충돌…막을 수 없었나

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.