매매 체결

마지막 업데이트: 2022년 3월 25일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

매매 체결

매매 프로그램 구현시에 가장 중요한 부분은 매직 같은 매매로직 구현보다는,
주문 거래에 대한 정확한 프로세스 이해와 기본 거래에 대한 충실함이라고 생각합니다.

거래시 발생되는 메시지 유형(TR)은 주문접수/체결/취소/변경/거부 로 나뉘게 됩니다.

모든 주문은 "접수"부터 시작되며,
매도와 매수의 경우는 "체결", 주문수량 및 금액 변경시 "변경"으로 메시지를 받게됩니다.
만약 돈이 부족하거나, 수량이 비정상적일 경우 체결이 되지 않고 "거부"로 메시지를 받게 됩니다.

굳이 이런 메시지나 주문내용를 이해해야할까요?
일반적으로는 주문처리에 대한 결과는, 계좌정보를 매매 체결 통하여 주문 여부를 확인할수 있습니다.
그러나 현실에서는 한번의 주문이 여러개의 체결로 분산되어 처리될수 있습니다.
즉 1000원짜리 주식을 10건 매수 매매 체결 요청할 경우, 10건이 3건, 2건 7건으로 분산되어, 3개로 나뉘어서 처리될수 있습니다.
즉 나의 주문이 완료되었는지는 계좌정보를 지속적으로 조회해야만 완료여부를 확인할수 있습니다.
그러나 가장 중요한 문제는 나의 주문자체가 정상적인지 판단이 안됩니다.
내가 1000원짜리 주식을 1건을 매수할때, 내가 가지고 있는 매매가능금액이 990원일 경우,
주문접수는 되지만, 계좌정보를 조회해서는 체결이 지연되는건지, 매매금액이 부족하여 실패한건지 판단이 되지 않는것입니다.

따라서, 이러한 메시지를 바탕으로 내부적으로 체결관리하는 기능이 필요합니다.
주문에 대한 신뢰성확보할수 있고, 주식 상황에 맞게 즉각 적인 거래 변경을 할수 있게됩니다.

주문 거래시 발생되는 수신 메시지(TR)은 주문접수/체결/취소/변경/거부 로 나뉘게 됩니다.
이러한 메시지는 실시간을 수신되는 메시지입니다.
즉 증권서버로 부터 해당 메시지를 실시간으로 받을수 있어서 트리거처럼 처리할수 있습니다.(API에서 제공됨)
(참고사항 : 주식 거래요청하는 TR과 주문처리에 대한 응답을 받는 TR(제가 위에서 언급한 메시지가 이TR임)은 다릅니다.)

프로그램 구현은 어떻게 할까요?
A종목을 현재가가 2000원입니다. 제가 10000원이 있어 5주를 매매 체결 지정가로 주문하였습니다.

1. 거래요청TR로 주문 요청합니다.
2. 증권서버에서 접수 메시지를 수신 받습니다.
3. 해당 주문이 정상 체결되면 체결 매매 체결 메시지를 수신받습니다.

좀더 프로그램적으로 기술하면,
1. 거래요청TR로 주문 요청합니다.
- 종목의 매매상태를 매수중으로 변경합니다. (이 종목이 매수중일 경우, 추가 매수 금지)
- 종목의 보유수량 0개로 저장합니다.
2. 증권서버에서 접수 메시지를 수신 받습니다.
- 수신된 정보로, 미체결목록을 한개 만들어 놓습니다. (주문 금액 : 2000원 , 주문 수량 : 5주)
3. 해당 주문이 정상 체결되면 체결 메시지를 수신받습니다.
- 체결 메시지를 확인하여 , 만약 2000원, 1주 체결이면, 미체결 목록에서 주문수량을 -1, 종목의 보유수량을 +1합니다.
- 체결 메시지를 모두 받으면, 미체결 목록을 삭제하고, 보유수량은 5가됩니다.
- 모두 체결이 되면 종목의 매매상태를 매수완료로 변경합니다.
- 발생된 체결메시지를 모두 계산하면, 주문평균체결가를 계산할수 있습니다.

갑자기 악성찌라시가 나와서, 급락하였습니다.
손절해야하니 매도를 해야겠죠.
매도 조건(손절조건)에 만족하여 매도 주문을 합니다.
1. 거래요청TR로 주문 요청합니다.
- 종목의 매매상태를 매도중으로 변경합니다. (이 종목이 매도중일 경우, 추가 매도 금지)
- 종목의 보유수량 5개입니다. (이미 매수하여 보유수량이 있습니다.)
2. 증권서버에서 접수 메시지를 수신 받습니다.
- 수신된 정보로, 미체결목록을 한개 만들어 놓습니다. (주문 금액 : 1500원 , 주문 수량 : 5주)
3. 해당 주문이 정상 체결되면 체결 메시지를 수신받습니다.
- 체결 메시지를 확인하여 , 만약 1500원, 1주 체결이면, 매매 체결 미체결 목록에서 주문수량을 -1, 종목의 보유수량을 -1합니다.
- 체결 메시지를 모두 받으면, 미체결 목록을 삭제하고, 보유수량은 0이됩니다.
- 모두 매매 체결 체결이 되면 종목의 매매상태를 매도완료/매매초기화로 변경합니다.
- 발생된 체결메시지를 모두 계산하면, 주문평균체결가를 계산할수 있습니다.
- 매수와 매도된 체결메시지를 참고하면 매매수익을 계산할수 있습니다.

체결이 한번이 아니라. 여러번에 체결된다는 부분을 명심하고, 구현해야하며, 이런 부분이 명확하게 신뢰성 있게 처리되어야 합니다.
이러한 체결관리기능은 매매프로그램에서 가장 기본이자, 좀더 세심한 로직구현을 위한 필수적인 기능입니다.

위 내용중에서 프로그램에서 구현해야할 객체 레벨에서보면, 아래 처럼 도출할수 있을것 같습니다.
- 종목 : 종목정보(종목명, 종목코드, 종목변수 등등.)
- 주문관리 : 종목의 매매상태 정보, 어려개의 미체결주문을 가짐.
- 미체결주문 : 주문에 대한 정보, 여러개의 체결주문을 가짐
- 체결 : 각 체결에 대한 정보

서로의 관계를 보면, 아래와 같습니다.
종목 : 주문관리 = 1:1
주문관리 : 미체결주문 = 1:N
미체결주문 : 체결 = 1:N
(N으로 표시된 부분은 List형식으로 구현하면 될것 같습니다. )

간략적으로 체결관리기능에 대해 기술한것으로,
프로그램매매구현에서 조금이나마 고민했을법같은 내용인것 같아 정리해보았습니다

매매 체결

계좌도 만들었겠다, HTS도 어느 정도 다룰 수 있겠다, 이제 매매만 하면 된다.

사실 어떤 종목을 매수할지 철저히 공부하는 게 우선이긴 하지만 조금씩 매수해보는 것도 큰 도움이 될 것이다.

매매를 시작하기 앞서 주식시장에서 매매체결이 어떻게 이루어지는지 살펴보자.

사실 그렇게 중요하진 않지만 어떤 느낌으로 체결되는지는 알아야 주문을 넣을 때 도움이 된다.

결국 매매체결이 되려면 사려는 사람과 팔려는 사람이 있어야 하고 두 사람 모두 만족스러운 가격에 매매가 이루어져야 한다.

한 사람이 터무니없이 싸게 사려고 하거나, 비싸게 팔려고 하면 매매는 체결되지 않을 것이다.

주식 거래가 이루어지는 거래소에서는 원칙을 정해놓고 합리적인 가격이 정해지도록 하는데 그 요소로서 가격, 시간, 수량, 주체가 있다.

위 요소들의 우선 순위는 가격, 시간, 수량 순이다.

첫째, 가격우선의 원칙은 결국 살 때는 더 비싸게 사려는 사람이 유리하고, 팔 때는 더 싸게 팔려는 사람이 유리하다는 것이다.

만약 주식을 빨리 사고 싶다면 현재 시장 가격보다 높은 가격에 매수하면 되고, 빨리 팔고 싶다면 시장 가격보다 낮은 가격에 매도하면 된다.

둘째, 시간우선의 원칙은 만약 가격이 같다면 당연히 먼저 주문한 사람에게 우선권이 있다는 것이다. 단 1초라도 빠르면 먼저 체결이 된다.

사실 상식적으로 생각하면 다 이해가 되는 것들이다. 위 두 원칙은 사람들로 하여금 매매 시 더 조급하게 만들어 합리적으로 판단하지 못하게 한다.

셋째, 수량우선의 원칙은 위 두 요소가 동일할 때, 즉 같은 가격으로 동시에 주문을 넣은 경우 주문을 더 많이 넣은 사람에게 우선권이 있다는 원칙이다.

뭐 돈이 어지간히 많은 게 아니라면 매매 체결 지금 당장 걱정해야 할 부분은 아니다.

넷째, 마지막으로 위탁매매 우선의 원칙은 별로 중요하진 않은데 단일가가 적용되는 *동시호가 시간에는 증권회사의 *자기매매 주문보다 고객의 주문을 우선한다는 원칙이다.

동시호가는 또 뭐고 자기매매는 또 뭔지.

쉽게 말해서 주문을 언제 넣든지 주문을 넣은 시간에 상관없이 가격과 수량만 비교해 매매를 체결하는데 이때 증권사보다 거래자들의 주문이 우선한다는 것이다.

*단일가: 동시호가에서 체결되는 하나의 가격으로 여러 가격에 주문이 들어와도 단일, 즉 하나의 가격으로 주문이 체결됨. 체결되는 방법은 복잡하지만 중요하지 않으므로 다루지 않고, 잘 설명되어 있는 블로그 링크를 걸어 놓겠음
https://md2biz.tistory.com/327

주식 동시호가란? 원리 및 체결방식 완벽정리

주식 매매를 하다보면 장중 매매방식과 장이 시작할때와 끝날때의 매매방식이 다르다는 것을 금방 알 수 있습니다. 보통 장이 시작하는 08:00 ~ 09:00분 사이와 장이 마감하는 15:20 ~ 15:30분 사이의 매매방식을..

*동시호가: 증권시장에서 동시에 접수된 호가나 시간의 선후가 분명하지 않은 호가로 장 개시 전과 마감 전, 급격한 지수 하락으로 거래가 중지되는 서킷브레이크 발생 시, 개별종목의 변동성 완화장치(VI) 발동 시 실시됨

매매 체결

* 주식주문 체결 우선순위

(매수 기준으로) 여러 주문이 들어왔을때

→ 가격과 시간이 같다면 많은 수량을 주문한 순서로 체결된다.

현재 가장 낮은 가격을 낸 쪽, 제시가격이 같다면 먼저 주문을 낸 쪽이 체결된다.

동가격-동시일때 즉 수량 순서만 적용될때는 큰 주문부터 모두 체결하는 것은 아니고 100주, 500주, 1000주, 2000주, 잔여 1/2, 잔여물량의 차례로 돌아가며 물량이 모두 소진될때까지 한명씩 배분해준다.

A,B,C 세명이 각각 2500주, 650주, 150주 주문을 냈다면

아래 화살표 순으로 진행된다.

호가 : 주문시 부르는 희망 매매가

삼성전자가 6만원, 하이닉스가 10만원일때

삼성전자 주가는 100원 단위로 움직이고

하이닉스 주가는 500원 단위로 움직인다.

원하는 가격과 수량을 직접 지정해서 주문한다.

가격 지정없이 수량만 지정한다. 약간의 가격변동은 무시하고 원하는 수량 전부를 즉시 체결하고 싶을때 사용한다.

먼저 지정가 주문을 넣고 장마감 10분전 (15시 20분)까지 체결이 안되면 시장가주문으로 변경된다. 원하는 가격은 있지만 오늘 내로 반드시 처분하고 싶을때 사용한다.

수량만 지정한다. 현재 상대측이 제시한 것을 보고 그 중 가장 좋은(유리한) 가격에 맞춰 자동으로 주문이 들어간다. 매수할때는 가장 낮은 매도호가로, 매도할때는 가장 높은 매수호가가 된다. 시장가는 현재 주문가격들을 따라 올라가며 끝까지 전부 체결하는 반면, 최유리는 처음 주문이 들어간 가격에서 전부 체결되지 않으면 나머지는 잔량으로 처음 가격에서 기다리는 점이 다르다.

수량만 지정한다. 현재 자기와 같은 쪽의 최우선 주문가격을 따라서 넣는다. 매수할 때는 현재의 가장 높은 매수호가로, 매도할때는 가장 낮은 매도호가로 주문이 들어간다. 동가격대에서 자기보다 먼저 주문을 낸 물량이 소화되어야 내 주문이 체결되므로, 앞물량이 많으면 내 주문수량은 미체결로 남을 수 있다.

최유리는 체결이 좀더 빨리 매매 체결 되는 것이 장점이고, 최우선은 가격면에서 좀더 이득이 있다.

Intermediate Or Cancel

주문즉시 체결이 안된 나머지 수량은 모두 취소

주문수량 전부를 체결하거나 아니면 전부 취소

장시작 직전이나 장마감 직전에는 거래가 폭주하므로 일정시간 동안 호가와 수량만 받고 모든 주문을 동시에 들어온 것으로 간주하는 것. 따라서 이때는 시간우선 (선착순) 원칙이 적용되지 않고, 공통가격 1개로 매매가 이뤄진다.

이 때를 단일가매매라고 한다. 사실 동시호가보다 단일가가 더 정확한 표현이다.

동시호가의 본래 의미는 시초가가 상한가/하한가일 때, 또는 장 일시중단 후 재개할 때 그동안 주문들이 모두 같은 시간에 들어왔다고 간주하는 것이다. 장이 일시중단되는 케이스는 서킷 브레이커, 전산장애 등이 있다. 이때는 시간순서가 배제되고 수량우선 원칙만 적용된다. 단, 종가에 대해서는 동시호가 제도가 적용되지 않는다.

단일가는 들어온 주문을 모두 모은 후, 가장 많은 주문이 처리될 수 있는 가격을 찾아 일괄로 매매된다. 예를 들어 5000원에 매도 100주 vs (5010원 매수 20주, 5000원 매수 50주)가 들어왔다면 단일가 5000원으로 매수 20주, 50주가 각각 체결되고 매도 30주는 미체결 잔량으로 남는다. 따라서 주문넣은 가격보다 싸게 매수하는 일이 종종 일어난다.

아래 표처럼 15:20분부터 10분간 거래가 정지되고 단일가매매 타임이 된다.

1. 장전시간외 (08:30~08:40) 전일종가로만 거래가능 -- 매도자가 있을때만 거래체결

2. 장후시간외 (15:40~16:00) 당일종가(3시30분 가격)으로만 거래가능 -- 수량만 입력, 먼저 주문한 순서대로 체결

주식 매매체결 지연 빈번. 거래소 늑장대응

폰트사이즈작게

31일 증권업계에 따르면 거래소 전산시스템이 개장 초기에 주문량을 감당하지 못해 짧게는 1~2분에서 길게는 10분까지 유가증권시장의 매매체결이 지연되는 사태가 발생하고 있어 투자자들이 불편을 겪고 있다.

예컨대 대우증권은 이달 들어 3일부터 7일까지 5거래일 연속으로 거래소 전산시스템 문제로 매매체결이 지연되고 있다는 내용의 긴급 메시지를 고객들에게 발송해야했다.

이 증권사는 5월에 두 차례, 지난 달에는 한 차례 같은 내용의 긴급 메시지를 고객들에게 전송한 바 있다.

이 증권사 관계자는 "최근 거래소 중앙 서버의 용량 부족 문제로 오전 9시 개장 이후 30~40분 동안 매매체결이 최대 10분까지 지연되는 현상이 빈번히 발생하고 있다"며 "거의 전종목에 걸쳐 매매지연 현상이 나타나고 있는 것은 1999년 정보기술(IT) 거품시기 이후 처음"이라고 전했다.

대신증권도 지난달 30일 동시호가 주문이 평소보다 30% 늘어나 매매체결이 거의 전종목에 걸쳐 1~3분 정도 지연되고 있다고 고객들에게 공지했으며 이달 들어서도 5일과 14일에 유사한 내용의 메시지를 보냈다.

증권업계 한 관계자는 "이달 들어 여섯차례 심각한 수준으로 매매체결이 지연된 적이 있으며 매일 정도의 차이는 있지만 장 초반에는 거의 빠지지 않고 지연 현상이 나타나고 있다"고 전했다.

특히 미국 증시 급등 소식에 매수 주문이 쏟아진 25일에는 개장 직후 주문이 10분이나 지연 체결돼 투자자들이 큰 불편을 겪었다. 새벽에 끝나는 미국 증시가 급등 혹은 급락세를 보이면 그날 거래소의 전산시스템은 어김없이 비틀거리고 있다.

매매 지연 현상이 자주 발생하게 된 건 주식워런트증권(ELW) 시장의 상장 종목수와 거래량이 유가증권시장을 넘어서는 수준으로 급팽창, 거래소 중앙 서버의 처리 능력을 넘어서는 수준의 주문이 쏟아질 때가 많기 때문이다.

작년 12월에 개설된 ELW 시장의 상장 종목수는 이달 말 기준 1천3개로 유가증권시장 상장종목수(876개. 우선주 포함)보다 많으며 이달 일평균 거래량도 2억6천833만주로 유가증권시장(1억8천867만주) 수준을 넘어섰다.

대우증권의 하루 주문건수 25만건 가운데 절반이 넘는 13만건이 ELW 주문일 정도다.

ELW 시장의 급성장으로 인해 매매체결 지연 현상이 올해 5월부터 발생하고 있었는데도 거래소는 아직도 적절한 조치를 취하지 않고 있다.

거래소 관계자는 "ELW 시장이 당초 예상보다 3배나 빠른 속도로 급성장하면서 유가증권시장의 주문이 한꺼번에 몰리는 현상이 자주 발생하고 있다"며 "매매체결 시스템의 서버 용량을 늘리는 방식으로 이 문제를 해결하는 방안을 검토하고 있다"고 말했다.

금융위 "거래소 매매 비용 많고 체결속도 느려"(종합)

한국거래소(자료사진)

(서울=연합뉴스) 박초롱 기자 = 금융당국이 대체거래소(ATS)의 연내 도입에 대한 의지를 드러냈다.

김학수 금융위원회 자본시장과 과장은 21일 서울 여의도에서 열린 '코스콤 오픈데이(Open Day)' 행사에서 "자본시장법 개정안이 조만간 국회를 통과할 것으로 기대한다"며 "개정안이 통과되면 국내 자본시장에 일대 변화를 불러올 ATS를 하반기 내로 도입할 수 있을 것"이라고 말했다.

ATS는 정규 거래소의 주식 매매체결 기능을 대체하는 증권거래 시스템을 뜻한다. 과거 시장구성원에 지나지 않았던 증권사나 주식브로커, 딜러가 독자적으로 매매체결 시스템을 운영할 수 있게 된다.

한국거래소의 독점 체제에서 벗어나 거래소끼리 경쟁을 통해 서비스의 질을 높인다는 취지에서 도입이 논의되고 있다.

김학수 과장은 "한국거래소가 국내에서 독점적 지위를 갖고 있어 매매비용이 많고 체결 속도가 선진 거래소보다 느리다는 평가가 나온다"며 "경쟁 시스템이 도입되면 시장 효율성이 매매 체결 한층 높아질 것"이라고 강조했다.

ATS가 도입되면 투자자들의 매매비용이 줄어들고 매매체결 속도 또한 빨라질 것으로 금융당국은 기대하고 있다.

ATS에서 체결되는 주식거래 비중은 지난해 기준으로 미국이 30.3%, 유럽은 39.5% 수준이다. 미국·유럽 시장을 위주로 발달했다.

아시아에서는 홍콩, 일본, 싱가포르 등에서 ATS를 도입한 바 있다.

김 과장은 "자본시장법 개정안 통과는 최근 화두인 '창조경제'의 틀에서도 꼭 필요한 일"이라며 "기업에 대한 자금 공급력을 높여 경제 전체가 역동성을 회복하도록 해야 한다"고 설명했다.

우주하 코스콤 사장은 "ATS 도입에 따른 복수 시장 환경에 대응하기 위해 통합 정보공개 시스템 등 관련 인프라 확충을 준비하고 있다"고 말했다.

이날 코스콤은 금융투자업계 IT담당 임원들을 초청해 오픈소스 활성화 방안, 금융 클라우드 서비스, 금융투자업계 스마트워크 인프라 구축 등 올해 사업계획을 소개했다.


0 개 댓글

답장을 남겨주세요