컴퓨팅/프로그래밍

이트레이드, 이베스트 SC0 주문접수

에어버스 2013. 1. 14. 23:33

<<SC0 주문 접수>>

SC0에서 체결구분을 사용하는것 보다는

trcode 를 사용하시기 바랍니다.

간단하게 주문전송후의 처리를 설명하면

1. 주문TR을 서버로 전송(PC)

2. 주문번호 취득(서버)

3. 거래소로 전송(서버)

4. PC로 주문접수(SC0) 전송(서버)

5. 정정일 경우 주문정정(SC2) 전송(거래소)

6. 취소일 경우 주문취소(SC3) 전송(거래소)

7. 거부일 경우 주문거부(SC4) 전송(거래소)

8. 체결시 주문체결(SC1) 전송(거래소)

<SC0 : 주문접수>

SC0 는 당사서버에서 나머지는 거래소에서 주는 패킷입니다.

단순히 주문TR에 대해서

증거금, 가격의 정합성, 수량의 정합성 등만을 체크한 후에

문제 발생시에는 TR에 대한 응답으로 거부를 전송하게 되고

문제가 발생되지 않은 경우에는 주문번호를 취득한 후에 거래소로 보내지게 됩니다.

주문번호는 거래소가 만드는 것이 아니라 당사 서버에서 만드는 것입니다.

SC0는 주문접수이므로 정정이나 취소등에 대해서도 주문접수는 발생하게 됩니다.

--------------------

추가:
매매(매수,매도)주문 : ordno=매매주문번호, prntordno=매매주문번호, orgordno=0
수정주문 : ordno=수정주문번호, prntordno=매매주문번호, orgordno=수정주문번호일듯 (확인못함)
취소주문 : ordno=취소주문번호, prntordno=매매주문번호, orgordno=수정주문번호일듯, 수정주문없으면 orgordno=매매주문번호 

<SC1 : 주문체결>

SC1 은 체결이 발생하였을때 거래소에서 주는 데이터입니다.

부분체결이 발생할 경우 여러번 전송될 수 있습니다.
------------------------------
추가:
ordno=매매주문번호, orgordno=0

<SC2 : 주문정정>

SC2는 정정주문을 하였을때 거래소에서 주는 데이터입니다.

이것은 더이상 정정주문에 대해서는 거부가 발생하지 않는다는 뜻입니다.

<SC3 : 주문취소>

SC2는 취소주문을 하였을때 거래소에서 주는 데이터입니다.

이것은 취소주문이 완전히 끝났다는 것을 의미합니다.
----------------------
추가:
ordno=취소주문번호일듯, orgordno=매매주문번호

<SC4 : 주문거부>

거래소에서 여러가지 이유로 거부가 발생할 수 있습니다.

예를 들면 ...

주문마감시간에 당사에서는 2시 59분 59초에 거래소에 전송했으나

거래소에서 3시에 받게 되면 거부가 떨어질 수 있습니다.

하지만 대부분의 주문체크는 당사에서 하기 때문에 발생이 거의 없습니다.

또한 SC4는 주문접수 이후에 발생하게 됩니다.

특히 정정/취소 일 경우에 주문이 서버에서 거래소로 가는 사이에 체결이

발생하는 경우가 종종 있어서 이 경우에 거부가 발생합니다.

그래서 SC2, SC3 가 있는것입니다.

이 정도가 실시간주문TR에 대한 내용입니다.

상당히 복잡해 보이는데 전체적인 구조를 보시면 쉽게 이해가 갈거라고 생각합니다.

QnA 게시판의 공지사항 5개 중 하나인 [개발팁] 주문 처리 방식 을 보시면 쉽게 이해하실거라고 봅니다.