선물DMA주문 오류가 가지는 의미

1.
어제 낮 우연히 트위터에 오른 김도형박사(@drjoelkim)의 글을 보았습니다.

글만 보면 주문수량을 잘못 입력하여 발생한 주문사고처럼 보였습니다. 그리고 여기저기 물어보니까 어떤 증권사인지 확인을 할 수 있었습니다. 신문에는 아래처럼 나왔습니다.

7일 오후 2시경 한국거래소 코스피200선물시장에서 268.2포인트 호가에 12만 계약이 넘는 매수주문이 제출됐다. 이는 1계약당 약 1억3000만원에 해당하는 주문으로 15조원이 넘는 매수주문은 거래소 파생상품시장 사상 처음이다. 이번 주문은 홍콩의 직접주문전용선(DMA) 계좌에서 KB투자증권(회원사)을 통해서 나와 외국계 고객의 시스템트레이딩 과정에서 발생한 오류로 추정하고 있다.
코스피200선물 15조원대 주문실수…KB투자증권 통해 나와중에서

외국계 투자자가 부산IDC를 이용하는 DMA서비스를 통하여 주문을 냈습니다. 외국계 투자자가 홍콩이라고 하지만 뱅가드그룹이라고 하는 이야기도 있고 호주쪽이라는 이야기도 있습니다. 저녁을 먹으면서 주문오류를 놓고 이런저런 이야기를 한 후 사무실에서 기사를 찾아보니 주문실수라는 표현이 등장합니다.

지수선물 15조 주문 실수
코스피200선물 15조 주문 해프닝 “큰 손 어디냐”

지난 2010년 비슷한 주문사고 있었습니다.

선물 주문 오류 (한국판 flash crash?)

이 때 주문사고는 트레이더가 주문창에 수량을 잘못 입력하여 발생한 사고였습니다. 이번 선물 주문도 2010년 사고와 같은 유형일까요? 주문이 트레이더의 실수인지, 아니면 알고리즘트레이딩시스템의 기술적 오류(Glitch)인지는 향후 대응에서 무척이나 중요합니다.

2.
이를 확인하기 위하여 시세분배시스템으로 제공하는 B6데이타를 확인하였습니다. B6데이타중 268.20대의 호가잔량이 이상 변화를 보여주는 시간대 자료만 정리했습니다. 14:00:26:27부터 14:00:56:14까지 268.20을 두고 치고박고한 흔적이 보입니다. 이후 14:00:56:57부터 268.20의 호가잔량이 변화없이 1계약씩 증가합니다. 그리고 이런 현상은 14:06:02:76까지이어집니다. 변화를 보인 시작데이타와 변화의 끝인 마지막 데이타입니다.

B6014KR4101H30004 26820000092 14005657
B6014KR4101H30004 26820124355 14060276

호가건수를 보면 133,245입니다. 이중 다른 선물의 B6와 G7데이타를 빼면 대략 133,000일 듯 합니다. 이제 그래프를 그려야 하는데 건수도 많고 프로그램은 못하고 머리를 아파하는데 이미 김도형박사가 트윗으로 그래프를 공개했네요.(^^)

왜 이런 일이 일어났을까요? 전략일까요? 프로그램 오류일까요? 아는 분에게 이렇게 포지션을 가지가는 전략이 있는지 물어보니까 없다고 하네요. 아는 것이 짧아 전략인지 아닌지 판단할 능력은 없습니다. 프로그램 오류일까요? 프로그램 오류라고 할 경우 몇가지 의문이 듭니다만 핵심은 하나입니다.

“주문이상이 일어나기 시작한 14:00부터 최고에 이른 14:06까지 6분이라는 시간동안 왜 아무런 조치를 취하지 않았나?”

268.20대의 호가잔량정보를 보면서 의문에 접근해보죠. 14:00:57대 호가정보는 총 458건이 내려왔습니다. 거래소를 기준으로 하면 268.20대의 지정가주문을 1초에 458건의 주문을 받았고 10밀리초당 4.5건의 주문을 처리했고 밀리초당 0.45, 2밀리초당 1건을 처리했다는 뜻입니다. 이런 현상이 6분을 이어졌습니다. 대량의 주문이 아주 짧은 시간에 일어나서 매매체결Queue에 쌓여 있었고 순차적으로 처리한 것이 14:06쯤에 끝난 것으로 보입니다. 이 때문에 주문 오류를 인지하고 취소를 하려고 하여 이미 발생한 주문에 의한 Queue순서때문에 취소가 늦어진 듯 합니다.

시스템상 오류가 발생해 한 지수대에 너무 많은 물량이 몰렸고, 이를 알아챈 외국인들이 대량 주문 발송을 중단하기 위해 일시적으로 시스템 종료(Shut down)을 시도, 강제 주문 발송 중단을 냈지만 이미 주문된 거래내역이 어마어마해 취소 주문이 실행되지 못했다.거래소 관계자는 “열심히 주문을 취소했지만, 워낙 주문량이 많이 잔량이 계속 남아있었다”고 말했다.
<지수선물 주문실수낸 곳 어쩌나…사후증거금만 2조원>중에서

이런 경우를 대비해 FIA나 FIX등은 Pre-Trade Risk Management로써 Open Position Limit을 관리하라고 권고합니다. 만약 이런 기능이 없었는지 혹은 있는데 동작을 하지 않았는지는 알 수 없습니다. 속도를 최우선으로 고려했다고 하면 없을 확률이 높습니다.

3.
2012년 미국 월스트리트의 화두는 전략소프트웨어의 오류였습니다.

Technical Risk와 ISO 9000

지난 2012년말 Knight그룹이 운용하는 알고리즘매매시스템의 오류(프로그램상의 버그)는 Getco에 회사를 파는 결과를 초래하였습니다. SEC가 주도하여 관련한 청문회도 열렸습니다. Kill Switch냐 아니면 감독기관에 의한 알고리즘 검증이냐를 놓고 설전이 벌여졌습니다. 어제 주문사고는 트레이더의 실수로 바라볼 수 없습니다. 기계적인 시스템 오류입니다. 최악의 경우 미국처럼 Flash Crash를 낳을 수 있는 시스템 장애입니다.

월스트리트에 실린 기사 제목중 이런 것이 있습니다.

이제 “기계가 지배하는 자본시장에서 기술적 오류를 어떻게 대응할 것인가”는 한국자본시장에서도 본격적인 화두가 되었습니다.

(*)페이스북에 삼성증권 전균위원이 좋은 글을 올려놓으셨습니다. 공유합니다.

어제 선물주문실수 시점에 볼 수 있는 매수호가 잔량과 건수입니다. 일단 우측의 건수화면을 보면, 2시 1분 정도에 갑작스럽게 매수건수가 급증했고, 이를 2시 10분경에 전량취소했는데 곧바로 매수호가가 급증하였고, 이를 몇차례 반복하다가 전량취소에서 건당취소로 대응하다 보니 건수가 해소되지 않고 계속 남아있게 되었습니다.
좌측의 매수5호가 잔량 추이도 마찬가지로 2시경에 빠르게 증가한 매수잔량을 취소했음에도 불구하고 다시 호가잔량이 쌓이기를 반복하는 양상이 진행되었습니다.

매매패턴을 보면 지정가 또는 매수1호가~2호가 수준에 주문이 반복적으로 제출되는 양상이었습니다. 루핑현상이 걸린 듯 한데, 개인적으로 의문은 고객의 주문시스템과 달리 회원사의 증거금체크와 한도체크 등의 기본적인 사전체크기능도 동시에 작동하지 않았다는 점입니다. 결국 회원사 네트워크접속 관련 기본적인 점검사항이 오류가 났거나 고객 주문시스템에 전적으로 의존하였다고 밖에 볼 수 없는 부분입니다.

이번 기회에 회원사 서버에서 긴급주문취소 기능과 같은 Killing switch를 설치할 필요가 있다는 생각이 강하게 듭니다. 그리고 DMA 접속 관련 시스템 점검이 대내외적으로 다시한번 이루어져야 할 것 같습니다.


(*)이데일리는 아래와 같은 보도하고 있네요.

이번 주문은 홍콩의 직접주문전용선(DMA) 계좌에서 KB투자증권을 통해서 나와 외국계 고객의 시스템트레이딩 과정에서 발생한 오류로 추정하고 있다. 외국계 운용사는 이클립스 퓨처스로 알려졌다.

(*)이틀이 지나니 정리기사가 나오네요.
‘먹통 컴퓨터’ 0.03초에 1억씩 선물 주문, 결국

(*) 이런 소식도 있습니다.

5 Comments

  1. puri

    결국 리스크 관리의 문제입니다. 프로그램 매매에서는 알고리즘 자체 뿐 아니라, 제어 시스템, 코드상의 버그 등이 다 운영리스크죠. KB 투자증권이 결국 증거금을 현금으로 대납했네요. 흐음..

    Reply
    1. smallake (Post author)

      여기까지 오셔서 댓글을 남겨주셨네요.(^^)

      Reply
  2. 날빛

    2010년에 발생한 주문 사고는 통신 소켓단에서 발생했다고 들었습니다.
    주문전송 실패가 발생했을 때 재전송하는 곳에서 에러가 있었는데, 해당 코드는 1년 이상 정상적으로 사용되었다고 합니다.
    공교롭게 그 시간, 그 장소에서 문제를 일으킨 것이지요.

    Reply
    1. smallake (Post author)

      특정한 회사의 특정한 제품까지는 들었는데 오류가 어디서 발생했는지는 처음 들었습니다. 말씀이라면 2010년 주문오류도 트레이더의 실수가 아니라 프로그램버그이네요.

      다만 주문전송 실패는 했으면 그냥 오류를 처리하면 될텐데 굳이 재전송을 하도록 구현한 이유가 궁금합니다.

      감사합니다.

      Reply
  3. smallake (Post author)

    LinkedIn에 올라온 글입니다.

    ” Korea Financial Superviosry (FSS), a financial sector regulator,launched special audit of DMA service brokerages

    In the wake of massive KOSPI futures order glitch, FSS has launched a special audit of Korea brokerages who have offered DMA service for KOSPI trading. According to Korea brokerage staffs, FSS will be reviewing brokerage order receipt system: method of order receipt, verification and submission to KRX, emergency order handling procedure, margin practice:margin extended to qualified financial institution & its application”

    이와 관련한 기사는

    http://news.einfomax.co.kr/news/articleView.html?idxno=54301

    Reply

Leave a Comment

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

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.