소스코드 패키지 통합

GHTS 2019. 7. 27. 10:02 Posted by UnHa Kim

Go언어에서 GOPATH 의존성 시스템에서 Go모듈(Module) 시스템으로 넘어가면서,

 

그간 각각의 독립된 패키지에서 개발하던 기능들을

 

하나의 패키지로 모두 통합하고,

 

각각의 기능은 서브디렉토리에 분류하게 되었다.

 

 

GHTS 라이브러리를 불러다 쓰는 입장에서도

 

Go모듈 방식을 채용할 경우 버전 관리등이 한결 편해질 것으로 예상된다.

 

예전에 개발하던 개별 패키지들은 모두 삭제했으며,

 

통합된 패키지의 주소는 다음과 같다.

 

https://github.com/ghts/ghts

 

 

'GHTS' 카테고리의 다른 글

GHTS 개략 설명  (13) 2021.01.13
어제, 오늘, 금일, 당일, 전일.  (0) 2019.10.10
Xing API 현물 주식 주문 TR 테스트 완료.  (0) 2018.06.25
Xing API에 숨겨진 지뢰 3  (0) 2018.06.07
Xing API에 숨겨진 지뢰 2  (0) 2018.06.07

R용 Jupyter 설치

데이터 분석 2019. 7. 27. 09:56 Posted by UnHa Kim

과거 데이터 통계 분석에 유용한 R언어의 개발환경인 Jupyter의 설치법을 기록해 둔다.

 

R 설치

https://www.r-project.org/

 

Python 설치

https://www.python.org/

 

Jupyter 설치 

 

최신 정보는 https://jupyter.org/install 참조

 

python -m pip install --upgrade pip

python -m pip install jupyterlab 

python -m pip install notebook

 

Jupyter용 R 패키지 설치

<R 커맨드 창에서 실행>

install.packages('IRkernel')

IRkernel::installspec()

 

IRkernel::installspec() 실행할 때 'In system2("jupyter", c("kernelspec", "--version"), FALSE, FALSE) :
  명령을 실행하는 도중 에러가 발생하였습니다.'라는 에러가 발생하는 경우 jupyter 및 jupyter-kernelspec 실행화일이 위치한 디렉토리를 실행경로에 포함시켜야 한다.

리눅스에서는 ~/.profile 파일에   PATH=$PATH:<추가할 경로> 를 추가해 주면 된다.

윈도우에서는 고급 시스템 설정의 환경 변수 설정에서 PATH 환경 변수에 추가해 준다.

 

Jupyter 노트북 실행

<cmd 창에서 실행>

jupyter lab 혹은 jupyter notebook

 

P.S> Jupyter 관련 내용에 jupyterlab과 함께 클래식 notebook도 함께 넣음.

Xing API 현물 주식 주문 TR 테스트 완료.

GHTS 2018. 6. 25. 12:30 Posted by UnHa Kim

Xing API 현물 주식 주문 TR 기능 구현 후,

테스트를 진행하던 중 정정 및 취소 주문에서 에러가 발생해서,

오랜 시간동안 디버깅을 진행했다.

 

증상

정상 주문TR 실행 후 즉시, 정정 및 취소 주문 TR을 실행할 경우 에러가 발생.

정상 주문TR 실행 후 0.5초 가량 지난 후, 정정 및 취소하면 에러가 없음.

 

이유

정상 주문TR을 실행한 후 증권사 서버에서 응답을 받았더라도,

거래소 서버에는 아직 등록이 되지 않은 상태에서,

정정 및 취소 주문 TR이 오면 에러가 발생함.

0.5초 가량 기다리면 거래소 서버에도 등록이 되므로,

에러가 발생하지 않음.

 

해결책 

1. 0.5초 기다린다.

   : 0.02초에 주문이 실행되는 컴퓨터 매매 세계에서 0.5초는 기다리고 있기에는 너무 긴 시간.

   : 뭐라도 해야 한다.

 

2. 주문 체결 실시간 정보 확인

  : 거래소 서버에 등록이 된 것을 확인해 주는

   실시간 정보(SC0, SC1, SC2, SC3, SC4)를 수신한 이후에 정정 및 취소하면 에러 없음.

  : 실시간 정보가 UDP로 전달되므로, 패킷 로스로 인해서 제대로 전달되지 않을 가능성 존재.

  : 알고리즘이 복잡해 짐.

 

3. 단순 무식 반복.

  : 정정 및 취소 주문을 낼 때, 

    '잘못된 원주문번호' 내지 '주문 등록 대기 상태'라는 에러가 발생하면,

    정정 및 취소 주문TR 재실행.

 : TR 실행 및 응답은 TCP로 전달되므로, 항상 정확하게 응답을 받을 수 있다.

 : 에러 메시지를 보고 단순 재실행하기에 알고리즘도 간단하다.

 

3번 '단순 무식 반복' 방식을 채택하여 정정 및 취소 주문 TR 에러 해결.

이로써, 현물 주식 주문에 대한 내부 테스트 및 디버깅을 완료하고,

안정적인 주문 실행을 확인하였다.

 

처음에 에러 메시지를 제대로 확인하지 않아서 원인을 알지 못해,

DLL방식과 COM방식을 모두 시도해 보다가,

COM방식에서 에러 메시지를 확인하면서 실마리가 풀렸고,

테스트 서버의 에러 메시지에 버그가 있었던 것을 뒤늦게 발견하고 증권사에 수정 요청을 하는 등,

온갖 우여곡절을 겪은 기나긴 디버깅 이었다.

 

현 상황 : 2018년 6월 25일자로하도록 수정 및 디버깅을 마치고, 소스코드 커밋 완료.

 

이제 데이터 수집 및 분석을 시작할 단계...

'GHTS' 카테고리의 다른 글

어제, 오늘, 금일, 당일, 전일.  (0) 2019.10.10
소스코드 패키지 통합  (0) 2019.07.27
Xing API에 숨겨진 지뢰 3  (0) 2018.06.07
Xing API에 숨겨진 지뢰 2  (0) 2018.06.07
Xing API에 숨겨진 지뢰 1  (0) 2018.06.07