전체 글(13)
-
FIX 주문/접수/체결 시나리오
일반적인 주문은 다음과 같은 시나리오가 가정해 볼 수 있다. 1. 주문 시나리오 (1) 신규주문(35=D), 주문접수(35=8,39=0), 부분체결(35=8,39=1) (2) 신규주문(35=D), 주문접수(35=8,39=0), 체결완료(35=8,39=2) (3) 취소주문(35=F), 취소접수(35=8,39=6), 취소확인(35=8,39=4) (4) 정정주문(35=G), 정정접수(35=8,39=E), 정정확인(35=8,39=5), 정정체결(35=8, 39=1 or 2) MsgType(Tag.35) 8 = ExecutionReport (주문접수/확인/체결) 9 = OrderCancelReject (취소주문 거부) D = NewOrderSingle (신규주문) F = OrderCancelRequest (취소주..
2019.12.10 -
FIX 세션 메시지 - 테스트 및 거부
로그인과 리커버리 메시지 외에 테스트요청(35=1), 세션거부(35=3) 등의 메시지가 있다. 테스트 메시지 먼저 테스트요청 메시지를 살펴보겠다. 앞서 로그인 시나리오에서 세션이 비정상일때 송신한 적이 있다. 테스트 요청은 일반 Heartbeat와 유사하지만 MsgType(Tag.35)를 1(TestRequest)로 요청하고 0(Heartbeat)로 응답받는다. 한가지 다른 점은 테스트 요청시에 112 태그에 원하는 메시지를 넣어서 보낸다. 그러면 테스트 요청을 받은 곳에서는 112로 수신된 메시지를 112 태그에 실어서 Heartbeat(35=0)으로 응답한다. [out]8=FIX.4.4^A9=104^A35=1^A34=2294^A52=20111207-04:15:21.533^A49=ACOMPID^A56=..
2019.12.10 -
FIX 세션 메시지 - 로그인
FIX가 세션 정보를 바탕으로 구성을 완료했으면, 실제 메시지가 어떻게 흘러가는지 확인해 보자. 1. 재전송(Recovery)이 없는 경우 로그인 클라이언트 (예: ACOMPID) 서버 (예: BCOMPID) 로그인 요청(35=A) 로그인 응답(35=A) Heartbeat 전송(35=0) Heartbeat 응답(35=0) 시퀀스(Sequence)가 초기화 된 이후의 최초 로그인은 양쪽에서 MsgSeqNum(Tag.34)이 1번부터 시작하므로 재전송이 발생하지 않는다. 초기화 시점이 서로 틀린 경우에는 재전송이 발생할 수 있겠지만, 정상적인 상황을 가정하고 로그인 절차를 살펴보면 다음과 같다. Case #1 8=FIX.4.2^A9=70^A35=A^A49=ACOMPID^A56=BCOMPID^A128=ABC^..
2019.12.10 -
FIX 글로벌 네트웍 구성
해외 브로커 또는 거래소와 FIX 세션을 연결하기 위해서는 먼저 물리적 회선을 구성해야 한다. 글로벌 회선사업자로는 BT Radianz와 TNS가 있고, Fix Hub 사업자는 블룸버그 및 톰슨오텍스 등이 있다. 글로벌 사업자까지의 연결은 SKT, LGU+, KT 등 로컬 회선사업자를 통해 연결한다. 특별히 주문이 않은 경우를 제외하고는 보통 주문회선 용량은 1M 또는 그 이하로 많이 사용한다. 1. 회선사업자 이용 - BT Radianz, TNS 등 물리적 회선이 구성되어 있으면 해당 회선사업자에게 출발지와 목적지 아이피를 보내서 회선사업자 회선 연결을 요청한다. 회선사업자는 각 IP는 자체 라우팅 경로에 등록하고, 각 IP들을 NAT IP로 변경한다. 회선사업자에 의해 제공된 NAT IP를 바탕으로 ..
2019.12.09 -
FEP(대외접속) 이야기
FEP는 Front End Processor의 약자로 증권업계에서는 대외통신 시스템을 의미하며 대외접속으로 불리기도 한다. 거래소 및 기타유관기관과 연결하는 대외접속과 은행, 보험, 카드 등 주로 금융기관을 연결하는 대외접속으로 나눌 수 있다. 좀 더 상세히 구분을 하면 다음과 같이 될 것이다. 1. 국내 주문FEP - 한국거래소 등 국내기관 주문FEP TCP 방식으로 주문을 송신하고 접수/체결 등을 수신하는 송수신 인터페이스를 포함한다. 전문은 구조체를 사용하며 자체 시퀀스 리커버리 방식을 사용한다. 모든 전문은 암호화된 전문으로 통신을 한다. 2. 해외 주문FIX - 해외거래소 및 글로벌 브로커 해외는 FIX라는 표준 프로토콜을 기반으로 대외접속이 이루어진다. 표준이므로 FIX 엔진을 도입하여 그것을..
2019.12.09 -
FIX 세션 구성을 위한 협의 및 세션 메시지
대외기관과의 FIX 세션을 구성하기 위해서는 사전에 협의해야 할 사항이 몇가지 있다. 다음과 같이 세션을 위한 기본 정보확인이 되었으면, FIX 세션을 구성할 수 있다. 1. Client/Server 역할 정의 주문을 받는 경우에는 Sell Side라고 부르고, 보통 Inbound 주문으로 Server 형태로 구성이 된다. 주문들 발주하는 곳은 Buy Side라고 부르며, 보통 Outbound 주문으로 Client 형태로 FIX가 구성이 된다. 2. Heartbeat 주기 보통 30초로 하고, Client에서 로그인시에 설정된 값으로 주기가 결정된다. 3. SenderCompID/TargetCompID Sell side 즉 서버를 담당하는 곳에서 보통 정의를 하는 경우가 많으나, 합의하에 정의할 수 있다..
2019.12.09