컴퓨팅/프로그래밍

이트레이드증권 주문처리 과정

에어버스 2012. 1. 3. 12:09

안녕하세요.

개발하실때 가장 어려운 것중에 하나인 주문시스템에 대해서 설명을 드리려고 합니다.

이것은 주식 주문에 한정된 것이 아니라

모든 주문 시스템의 기본 방식입니다.

상품별로 이 방식을 베이스로 하여 약간의 변형이 이루어지게 됩니다.

※ 주문에서의 Layer

(1) 다음 화면은 주문을 전송했을때의 각 Layer 입니다.

img3.gif

(2) 각 단계별로 어떤일들이 일어나는지 설명하도록 하겠습니다.

1. Request() 함수
(
1) Request ID 생성
-
생성 실패시 0 보다 작은 값 반환
(
2) 당사 서버로 TCP/IP를 사용하여 전송
- TCP/IP
전송 실패시 Request() Return 값으로 0 보다 작은 값을 반환
-
TCP/IP의 성격상 서버가 데이터를 받아야만 TCP/IP 전송 성공으로 인식하게 됩니다.
img6.gif

2. 서버에서의 처리

(1) PC로부터 데이터를 수신
(
2) 각 필드의 정합성 검사
- 종목코드, 주문가격, 주문수량 등
(3) 증거금 체크
(4) 주문번호 생성
(5) 거래소로 패킷 전송
- 거래소에서는 패킷에 대한 거부를 주지 않습니다.
- 거래소에서 거부가 발생할 경우에는 거래소로부터 실시간 주문거부 패킷이 전송됩니다

(6) PC로 주문패킷의 응답을 전송
(7) 실시간주문접수 패킷 전송
- 실시간 주문접수 패킷은 거래소에서 생성되는 것이 아니라 당사에서 생성하여 전송되는 패킷입니다 img7.gif

3. 거래소에서의 처리

(1) 체결 발생시 실시간 주문체결 전송

(2) 거부 발생시 실시간 주문거부 전송

(3) 정정/취소 주문 인 경우에는 실시간 주문(정정/취소)확인 전송

- 확인 패킷은 정정/취소 주문에 대해서 거부가 발생하지 않는다는 의미로 전송됩니다.

img8.gif

※ 전체 흐름도

img9.gif

※ 주의

1. 실시간 주문접수는 당사에서 발생시키며 나머지 실시간은 거래소에서 발생시킵니다.

그렇기 때문에 실시간 주문접수보다 실시간 주문체결등이 먼저 PC로 전송되는 일이 발생하기도 합니다.

유의하시기 바랍니다.