'Trading'에 해당되는 글 2건

  1. 2020.07.08 [Trading] HTS 로그인 설계, 구현
  2. 2020.05.24 [Trading] 첫번째 프로그램

이베스트에서 제공하는 XingAPI에 의한 로그인 기능은 키움API에서 제공하는 기능과는 사뭇 다르다.

 

먼저 키움API의 경우에는 로그인 할때 키움 HTS에서 로그인하는 것과 같은 방식을 제공한다.

로그인과 동시에 HTS 서버에 접속하고 업데이트 버전이 있을 경우 업데이트를 진행하고 그 다음 로그인까지

완료하는 과정을 거친다.

 

L-ATS v1.0을 통해 확인해 보자.

 

'로그인' API를 호출하면 위와 같이 키움 HTS 로그인 화면을 제공한다. 

 

이베스트 XingAPI는 'HTS 서버 연결'과 'HTS 로그인'이 별개로 동작한다.

즉, HTS 서버 연결 상태를 고려하여 로그인/로그아웃 처리를 진행해야 한다. 

물론 HTS 서버에 연결이 되어야 로그인이 될 것이다. 아래 두 경우는 분명 다르게 동작해야 한다.

 

  • 서버가 연결되어 있지 않은 상태에서의 로그인/로그아웃 시도
  • 서버가 연결되어 있는 상태에서의 로그인/로그아웃 시도

간단해 보이지만 쉽게 생각할 수 없는 부분이다. 

 

이베스트 API의 경우 사용자 Form을 이용해서 별도의 로그인이 필요하다.


[ 대략적인 동작 과정 ]

 

1. 프로그램 실행 후 먼저 프로그램 로그인을 시도한다.

 

2. '이베스트 HTS 서버' 연결을 시도한다.

   2-1. 연결이 완료 될 경우, 해당 연결 서버의 정보를 표시한다.

   2-2. 연결이 되지 않을 경우, 환경 설정 값에 의해 서버 연결을 재시도 한다.

      2-2-1. 환경 설정 값에 의한 재연결 시도 횟수 초과 시 자동으로 프로그램을 종료한다.

 

3. '이베스트 HTS 서버' 연결을 별도로 관리한다.

   3-1. HTS 서버와의 연결 상태를 주기적으로 확인하고, 연결 유실 시 재연결을 시도하도록 관리한다.

   3-2. 화면 한편에 현재 HTS 서버와의 연결 상태를 한번에 확인 할 수 있도록 표시한다.

 

LOGIN Flow Chart

 

가장 신중하게 생각해야할 부분은 'Connection 관리' 부분이다. 

 

네트워크 개발을 하던 첫 회사에서 'Connection 관리'가 생각보다 단순하지 않고 쉽지 않다는 것을 많이 느꼈다.

지금 로직을 구성한다 해도 100% 완벽하게 할 수 있을지 의문이다.

 

Connection 관리는 아래 두 개의 환경 설정 값에 의해 동작하도록 해야한다.

  • Connection Check Interval (확인 시간 간격)
  • Connection Check Count (최대 확인 횟수)

솔직히 Connection 관리는 실시간(Realtime)성이 가장 중요한 시스템에서 필수적인 것이지만

Trading 시스템에서는 크게 중요하지 않을 수도 있다. 

때문에 'HTS 로그인' 상태에서 'HTS 서버' Connection이 끊길 경우(네트워크 장애 등) 프로그램을 자동 종료하여도 크리티컬하진 않을 것이다.

 

'L-ATS 로그인 -> HTS 접속 -> HTS 로그인' 까지 완료된 화면.

 

보유 계좌 리스트 조회 완료.

다음 포스팅은 '자산현황' 조회와 '잔고현황' 불러오기가 될 예정이다.

'Trading' 카테고리의 다른 글

[Trading] L-ATS 사용자 시나리오  (0) 2020.08.02
[Trading] 사용자 정보 구조  (0) 2020.07.18
[Trading] 프로그램 로그인  (0) 2020.06.21
[Trading] 두번째 프로그램  (0) 2020.06.07
[Trading] 첫번째 프로그램  (0) 2020.05.24
Posted by [ 브랜든 ]
,

프로그램 명 : L-ATS (Lim's Automatic Trading System)

버전 : 1.0

환경 : Visual Basic

주요기능 : 검색식 기반 주식 매수, 설정값 기반 주식 매도, 스탑로스

API : 키움증권 API

제작기간 : 2015.05 ~ 2015.08

 

 

키움에서 제공하는 검색식 기반 자동매매 프로그램이다. 

구현된 기능 및 UI 구조는 당시 안정성 및 디테일한 기능 제공으로 유명했던 어떤 프로그램을 벤치마킹했다.

 

매수와 매도를 전적으로 프로그램에 맡기는 형태로 검색식을 얼마나 잘 만드냐에 따라 희비가 갈린다.

경험자는 잘 알겠지만 매수를 자동으로 하는것이 매우 어렵다.

때문에 새로만들 두번째 L-ATS는 매도만 하는 프로그램으로 구상했다.

물론 일반적인 스탑로스라면 재미없겠지만, 아직 어느곳에서도 사용되지 않았던 방식의 스탑로스가

적용될 것이다.

 

API는 키움 -> 이베스트로 변경 예정.

C#으로 만들 생각하니 벌써부터 두근두근 거린다.

'Trading' 카테고리의 다른 글

[Trading] L-ATS 사용자 시나리오  (0) 2020.08.02
[Trading] 사용자 정보 구조  (0) 2020.07.18
[Trading] HTS 로그인 설계, 구현  (0) 2020.07.08
[Trading] 프로그램 로그인  (0) 2020.06.21
[Trading] 두번째 프로그램  (0) 2020.06.07
Posted by [ 브랜든 ]
,