반응형
반응형
Network bridge 방식으로 증권사 API 활용하기-2-Memory Pool Implemantation 이전 글에서 언급한 내용은 아래와 같습니다. 증권사 API 가 32비트로 제공되는데 따른 프로그램 개발 제약사항 Network bridge 방식으로 트레이딩프로그램과 API커넥터 두 개의 프로그램 개발 필요성 두 프로그램 간 데이터 통신용 패킷관리를 위한 메모리풀 구조 스케치 이번 글에서는 이전 글에서 언급한 메모리풀을 실제 코드로 구현하고 동작까지 확인하겠습니다. In the previous article, we mentioned the following: Program development constraints due to the 32-bit provision of the stock API ..
증권사에서 제공하는 COM, OCX, DLL 포맷의 API 라이브러리는 32비트로 개발되어 있습니다. 그래서 개발 프로그램에는 가상 메모리 공간 4GB 크기의 제약이 있고 64비트 기반의 최신 라이브러리와 연동하기 어려운 점이 있습니다. 그래서 API 라이브러리는 증권사 서버와의 커넥터 역할만 하도록 하고 별도의 로직 프로그램을 64비트로 개발하여 커넥터와 로직 프로그램을 연결하고 있습니다. PC에 설치되어 있는 HTS의 OCX 모듈과 연계하는 방식이 아닌 DLL 연계 방식의 API는 커넥터를 여러 개 실행하여 다계정으로 API를 사용할 수 있게 되어 보다 고도화된 프로그램 로직 구현이 가능합니다. Network bridge 방식으로 증권사 API 활용하기-1-Overview 증권사에서 제공하는 API는..
증권사 API로 차트 데이터를 수집하려면 종목코드를 알아야 하는데 전 종목에 대한 종목코드는 주식마스터조회 API를 호출하여 얻을 수 있습니다. 이베스트투자증권의 xingAPI의 TR 에는 t8430(주식종목조회), t8436(주식종목조회 API용), t9945(주식마스터조회 API용)가 있는데 그중 t8430(주식종목조회)를 이용하여 전체 주식종목(주식마스터)을 조회해 보겠습니다. 1. 주식마스터 API 사용방법 알아보기 먼저 DevCenter를 통해 t8430의 속성을 확인합니다. 초당 2회 조회할 수 있고 Block Mode로 응답이 온다고 되어 있네요. Request는 t8430Inblock에 속성을 설정하여 전송하고 응답은 t8430OutBlock에 담겨서 옵니다. 1개 종목의 정보가 t8430..
이전 글에서 차트 데이터 수집기 개발을 위한 다이얼로그 화면 구성, 설정값 내부 변수 저장, 로그인 처리를 하였습니다. 이번 포스팅에서는 수집상태 화면을 완성하기 전에 내부에 작업 스레드를 생성하고 주식마스터 테이블을 생성 후 주식종목조회 TR을 이용하여 전체 주식종목을 메모리에 로딩해 보겠습니다. 1. 작업 스레드 생성하기 메인 다이얼로그에서 수집작업을 수행하면 코드가 실행되는 동안 GUI가 Freezing 상태가 되기 때문에 별도의 Worker Thread를 생성하도록 하겠습니다. MFC에서는 UI Thread와 Worker Thread를 생성할 수 있습니다. MFC에서의 스레드에 대한 정보는 아래 포스팅을 참고하세요. 2023.12.10 - [프로그래밍/C | C++] - [MFC] MFC 스레드 ..
이번 포스팅에서는 차트데이터 수집에 필요한 옵션 설정 기능을 만들어 보겠습니다. 1. 수집 옵션 설정화면 주식마스터 조회 API 호출 시 코스피, 코스닥을 선택하여 조회할 수 있게 되어 있어서 전종목, 코스피, 코스닥, 사용자지정 개별 종목코드를 선택할 수 있도록 하였습니다. 데이터 종류는 틱 데이터, 1분봉 데이터, 일봉 데이터를 설정할 수 있도록 하였습니다. 그리고 수집 기간과 저장 경로를 설정할 수 있도록 하였습니다. 2. 화면 컨트롤 속성 설정 방법 수집 종목 선택에 라디오 버튼을 사용했는데 라디오 버튼을 그룹으로 묶으려면 탭 순서를 연속된 번호로 지정해 주어야 합니다. 리소스 뷰어에서 메인 대화창을 열고 ctrl+D 버튼을 누르면 아래와 같이 탭 순서가 표기됩니다. 아래 그림에서는 연속된 번호로..
MFC기반의 xingAPI 프로그램에서 로그인과 로그아웃 하는 방법을 알아보겠습니다. 이전 포스팅에서 그려둔 화면을 이용하여 로그인 코드를 작성해 보겠습니다. 화면을 만드는 방법은 아래의 이전 포스팅을 참고해 주세요. 2021.10.01 - [트레이딩/시스템트레이딩] - [xingAPI][차트 데이터 수집기 만들기](1) 프로젝트 생성 및 화면 만들기 1. MFC 컨트롤 설정하기 아래 사진에서 빨간색 박스에 해당하는 부분을 설정하는 방법입니다. 로그인에 필요한 아이디, 비밀번호, 공인인증번호, 접속서버(실서버, 모의서버) 정보를 입력받아 로그인을 하거나 로그아웃을 할 수 있는 인터페이스입니다. 컨트롤의 리소스 ID, 속성, 변수는 아래 표를 참고하여 설정합니다. Label Control ID Proper..
이전 포스팅에서 MFC 프로젝트 생성과 Dialog 화면 설계를 마쳤습니다. 이번 포스팅에서는 MFC 프로젝트에서 xingAPI를 사용할 수 있도록 xingAPI를 셋업 하는 방법을 알아보겠습니다. 이전 글 링크: 2021.10.01 - [트레이딩/시스템트레이딩] - [xingAPI][차트 데이터 수집기 만들기](1) 프로젝트 생성 및 화면 만들기 1. xingAPI 프로젝트 셋업 내가 작성하는 코드에서 xingAPI를 사용하기 위해서는 xingAPI에서 제공하는 DLL을 내 프로젝트에 로딩하고 xingAPI 헤더파일들을 내 프로젝트에 포함시켜야 합니다. xingAPI의 DLL은 Debug, Release 두 가지 버전으로 구분되어 제공됩니다. 각각 다운로드하여서 비교해 보면 아래와 같이 DEBUG버전에..
증권사 API를 활용하여 일봉, 주봉 등 차트 데이터를 수집하는 프로그램을 처음부터 만들어 보겠습니다. xingAPI 기반으로 만들어 봅니다. 수집한 데이터를 디스크에 파일로 저장하는 것이 목표입니다. 차트 데이터는 과거 데이터이고 수정주가 반영이 필요할 때 외에는 고정된 값이기 때문에 복잡한 데이터 가공이 필요하지 않으면 데이터베이스 사용 대신 파일로 관리해도 됩니다. "DB로 관리할까 파일로 관리할까"에 대한 여러 의견은 아래 링크에서 추가적으로 읽어보세요. https://quant.stackexchange.com/questions/29572/building-financial-data-time-series-database-from-scratch 1. MFC 프로젝트 생성하기 MFC App 프로젝트를 ..