벌써 세 번째 L-ATS 사용자 화면을 설계한다.
첫번째 L-ATS 1.0 사용자 화면의 Focus는 '수익과 손실의 설정' 부분이었고,
두번째 L-ATS 2.0 사용자 화면의 Focus는 '매매 처리중인 종목의 표시' 부분이었다.
세번째 L-ATS 3.0 사용자 화면의 핵심은 이것이다.
캡쳐된 화면 표시와 OCR 처리된 문자열
L-ATS 2.0에서 Flexible 스탑로스를 통한 매도의 자동화를 완성한 상태에서
L-ATS 3.0에서는 매수 행위의 자동화를 구현하여 매매의 완전 자동화 를 완성하는 것이 서비스 기획의 핵심 부분이다.
그렇기 때문에 사용자가 보기 편하도록 캡쳐된 화면과 해당 이미지의 OCR 결과를 실시간으로 표시하는 부분에 Focus를 맞췄다.
3.0 버전의 핵심 기능 부분을 부각시키는 것이 사용자 관점에서 서비스의 장점을 직접적으로 잘 나타낼 수 있기 때문에 그때 그때 이미지 캡쳐한 화면과 OCR 처리된 내용을 즉각적으로 표시해줌으로써 사용자의 만족감을 더 높여 줄수 있다.
① 메인 메뉴
메뉴의 구조는 [HTS 로그인], [시스템 설정], [프로그램 종료]로 구성된다.
- HTS 로그인 : 이베스트 증권에 로그인할 수 있도록 기능을 제공한다.
- 시스템 설정 : 메인 화면에는 보이지 않는 시스템적으로 Critical한 값(예; OCR 엔진 정보, 예외처리 문자열, 문자열 파싱 패턴 등)들을 설정할 수 있는 화면을 제공한다.
- 프로그램 종료 : 시스템의 안정적인 운영을 위해 비정상 종료 Case를 없애고 이 버튼으로만 종료될 수 있도록 했다.
② 상태 확인
- HTS 서버 연동 : 증권사(이베스트 증권) API를 통해 HTS와 연동 상태 표시
- 서버 연결 : LINUX Server의 L-ATS Main Server와 연동 상태 표시
③ 프로그램 조작
- 캡쳐 영역 [Button]: 캡쳐할 화면의 영역을 설정할 수 있는 투명한 Form 생성
- 시작 [Button] : 사용자 설정 값으로 자동 매매를 시작하고 정지하는 버튼
- 캡쳐타임(초) : 실시간으로 화면을 캡쳐할 시간 간격
[ 캡쳐 타임이 필요했던 이유 ]
자동매매의 최초 서비스 기획의 핵심은 '누군가' 실시간으로 특정 종목을 언급해 주는 조건이 되어야 하는 것이었다. 근데 과연 누가...?
그렇게 찾고 찾아 선택한 것이 카카오톡과 텔레그램의 일명 뉴스방이었다.
무료로 불특정 다수에게 특정 종목의 당일 Good/Bad 뉴스를 실시간으로(?) 알려주는 고마운 곳.
하지만 이 방들은 소프트웨어적으로 개인이 메시지를 받을 수 없었다. (캡쳐 + OCR 방식을 선택한 이유.)
때문에 이 뉴스방에 새로운 뉴스가 올라온 것을 알 수 있는 방법이 없다. 그래서 일정 간격으로 화면을 지속적으로 캡쳐해서 OCR 결과를 처리하는 방식으로 처리했다. (OCR 기술이 많이 발전했듯 이런것도 해결이 가능한 좋은 방향의 방법이 곧 생기길...)
- 스탑로스(%) : 자동 매도를 위한 손실률 설정
④ 자동매수 설정
- 보유계좌 : 자동 매매에 사용할 사용자의 증권사 계좌
- 매수금 : 자동으로 매수할 경우 1회 매수가
1회 매수가가 10만원일 경우, 1주당 10만원 이상인 종목은 매수하지 않는다.
1주당 10만원 이하인 종목은 10만원 이내에서 최대 매수량을 계산하여 매수한다.
예) 1주당 9천원인 종목이면 11주 매수
⑤ 잔고조회
- 자산총액 : 현재 선택된 사용자 증권사 계좌의 잔고 확인
- 예수금 : 현재 선택된 사용자 증권사 계좌의 예수금 확인
⑥ 캡쳐 이미지
- 캡쳐 영역으로 선택된 화면의 캡쳐된 이미지를 표시
⑦ OCR 결과
- 캡쳐된 이미지의 OCR 변환 결과를 표시
⑧ 실시간 잔고
- 매수가 완료되서 현재 계좌에 보유하고 있는 종목 리스트 표시
표시되는 종목 리스트들은 실시간으로 현재가를 갱신하여 표시하고 스탑로스를 계산
⑨ 거래 완료
- 당일 거래 완료된 종목 리스트 표시
정말 이베스트 증권의 거래 완료 종목 표시를 위한 API는 최악이다.
HTS나 MTS에서 확인할 수 있는 '잔고 조회'의 화면에서 조회되는 값들과 동일한 값들을 표시하기 위해 정말 많은 시행착오를 겼었다. 이 내용은 따로 포스팅 예정이다.
⑩ 종목 추출 결과
- OCR 결과에서 패턴 분석으로 종목명을 추출하고 LINUX Server program으로 전달하여 매수를 위한 해당 종목의 Code 정보를 요청/수신하여 표시
⑪ 실시간 건수
- 현재 계좌에 보유하고 있는 종목의 갯수와 당일 거래 완료된 종목의 갯수 표시
⑫ 거래 완료
- 당일 거래 완료된 종목들의 금액 정보 표시
⑬ 접속 정보
- 사용자의 증권사 계정 접속 정보 표시
L-ATS 시스템이 버전업 되면서 UX/UI는 일부분들이 계승되어 구성되는것 같다.
아무래서 버전 마다 기획하고 설계하고 구현하고 운영하다보면 배우는 것이 있기때문에 버릴건 버리고, 활용할 건 활용하게 되는것 같다.
새로 도전할 캡쳐 및 OCR 처리 부분 개발을 위해 부지런히 손을 움직여야겠다.
'Trading' 카테고리의 다른 글
[Trading] L-ATS 3.0의 운영과 ChatGPT (0) | 2023.10.20 |
---|---|
[Trading] L-ATS 3.0 시스템 구조 설계 (0) | 2023.05.16 |
[Trading] L-ATS 3.0의 시작 (0) | 2023.03.03 |
[Trading] xingAPI - 데이터 표시하기 (4) | 2021.11.07 |
[Trading] xingAPI - 반복 데이터 조회 (2) | 2020.10.10 |