하나의 시스템/프로그램을 설계하는 것은 상당히 고난도의 작업이다.
Architecture-Design에 속하는 이 작업은 Front-End의 User Interface(UI)적 편의성과 간결함, 그리고 정확성을 바탕으로 하는 사용자 친화적 경험 및 지식이 필요하며, Back-End의 Call-Flow(메시지 흐름)와 가장 중요한 Data Structure가 가능해야한다.
현재 L-ATS Flex v2.0은 약 50% 정도 완성이 되었지만, 실제 게시글은 그때마다 작성하지 못했다. 이유는 위에서 '가장 중요한'이라고 말한 Data Structure가 불안정했기 때문이다.
처음 사용해 보는 이베스트 투자증권의 xingAPI에서 얻을 수 있는 Data가 생각보다 제한적이고 API의 사용성 또한 제한적이라 프로그램이 만들어지면서 데이터 구조가 많이 변경되었다.
지금 시점은 xingAPI로부터 얻을 수 있는 데이터가 모두 파악되고, 그 데이터들을 어떤 부분에 사용하고 응용할지 정리가 되었기에, 잠시 개발을 멈추고 글을 작성한다.
1. L-ATS 화면 구성
크게 총 15개의 구역으로 구분이 되며, 각 구역 마다의 설명은 아래 정리되어 있다.
L-ATS v1.0과 가장 큰 차이점은 '매수' 기능이 없어져 그에따른 '미체결' 관련 화면 구역이 없어졌다. 그리고 L-ATS v2.0의 핵심 기능인 '스탑로스 Flex' 관련 설정 및 결과 창이 생겼다.
실은 '스탑로스 Flex'보다 '스탑로스'가 더 표시할 정보가 많이 있는데(설정 조건이 복잡해서...)...결과 창의 위치를 바꾸어야 할 수도 있을 것 같다.
2. L-ATS 상세 화면 구성
① L-ATS v2.0의 주 메뉴 Bar
② L-ATS v2.0 프로그램 사용자 정보
: L-ATS v2.0을 사용하기 위한 사용자 가입 정보.
③ 이베스트 투자증권 HTS 서버 접속 정보
: 접속 (초록색), 미접속 (빨간색)
④ 자동 매매 시작 버튼
: 이 버튼이 눌리지 않는한 자동매매가 시작되지 않음.
⑤ 프로그램 알림 Bar
: 프로그램 동작 중 사용자에게 알림이 필요한 수준의 메시지가 표시됨.
⑥ 사용자 계좌 목록
: 사용자가 보유한 이베스트 투자증권의 계좌 목록 표시. HTS 로그인이 완료되어야 표시됨.
⑦ 실시간 지수 정보
: 실시간으로 증권 시장의 코스피/코스닥 지수를 표시. 약 3초마다 데이터 수신. HTS 로그인이 완료되어야 표시됨.
⑧ 실시간 매매 처리 종목 현황
: L-ATS 프로그램 상에서 처리되고 있는 종목들의 갯수를 실시간으로 표시.
(기존 잔고건수 + 신규 매수 건수) = (거래 완료 건수 + 스탑로스 건수 + 스탑로스 Flex 건수)
⑨ 사용자 계좌의 실시간 자산 현황
⑩ 사용자 계좌의 실시간 잔고 종목 목록
: 현재 사용자가 보유한 종목들의 목록. 이 목록에서 종목별 스탑로스 처리 여부를 정할 수 있음.
⑪ 자동 스탑로스 환경 설정
: 자동 매매 시작 이후 적용될 스탑로스 설정 값.
⑫ 스탑로스 처리 종목 목록
: 실시간 잔고에서 스탑로스 처리를 선택한 종목들에 대한 목록 표시.
⑬ 거래 완료 종목 목록
: 스탑로스 또는 스탑로스 Flex에서 매도처리가 완료된 종목들에 대한 목록 표시.
⑭ 스탑로스 Flex 처리 종목 목록
: 실시간 잔고에서 스탑로스 Flex 처리를 선택한 종목들에 대한 목록 표시.
⑮ 이베스트 투자증권 사용자 정보
: HTS 로그인 후 표시되는 사용자의 이베스트 증권 사용자 정보.
3. xingAPI 사용 구역
위의 15개 구역 중 xingAPI를 통해 얻은 데이터를 표시하는 구역에 대한 설명이다.
생각보다 xingAPI를 사용하는 부분은 많지 않다. 그리고 단순하다.
실시간으로 계속 데이터를 요청하고 수신하여 반영해야하는 '실시간 잔고' 부분을 제외하고는 단순 Request-Response 처리이기에 크게 어려운 부분은 없다.
xingAPI에서 제공하는 TR처리 기능 중 한번 Binding 해두고 값의 변화가 있을 때마다 서버 측에서 데이터를 내려주는 TR 처리 방식이 있는데 실시간으로 변화되는 잔고 정보를 갱신하는 데에 매우 유용할 것 같지만, 경험상 굳이 세션 유지를 신경 쓰며 보다 세세한 예외처리를 하기 위한 노력을 기울이는 것보다 주기적으로 정보를 요청하여 처리하는 것이 더 심플할 것 같다. 프로그램의 기능은 심플한 것이 최고다.
다음은 실제로 구현한 'HTS 로그인' 부분 포스팅이다.
'Trading' 카테고리의 다른 글
[Trading] xingAPI - TR과 데이터 조회 (0) | 2020.08.23 |
---|---|
[Trading] MS VS C# xingAPI 사용하기 (0) | 2020.08.21 |
[Trading] XingAPI - DevCenter 사용하기 (0) | 2020.08.14 |
[Trading] L-ATS 사용자 시나리오 (0) | 2020.08.02 |
[Trading] 사용자 정보 구조 (0) | 2020.07.18 |