반응형
반응형
코인 거래소는 24시간 365일 거래일이지만 국내 주식 시장은 예정된 이벤트(선거일, 대체공휴일 등) 등으로 토요일과 일요일 이외에도 휴장 하게 됩니다. 파이썬은 관련 모듈이 제공되어 즉시 사용가능 하지만 C/C++ 플랫폼에서의 사용을 위하여 주식시장 휴일 캘린더 클래스를 직접 구현해 보았습니다.1. 휴장일 데이터 확보하기휴장일 정보는 한국거래소 홈페이지의 KRX 시장 > 시장동향 > 증시일정 > 휴장일 경로에서 확인할 수 있고 엑셀 파일로 다운로드 가능 합니다.URL 경로: https://open.krx.co.kr/2. 휴장일 데이터 가공 및 소스코드화KRX에서 제공하는 휴장일 데이터의 메타데이터는 "일자 및 요일", "요일구분", "비고"로서 데이터 샘플은"2017-01-27", "금..
증권사 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 프로젝트를 ..
예스트레이더, 메타트레이더가 아닌 시중에 자동매매 프로그램이라고 판매 중인 증권사 API 기반의 프로그램들은 사용자가 직접 코딩을 할 수 없는 대신 HTS에서 사전에 설정한 조건검색을 기반으로 매수/매도를 하도록 되어 있습니다. 그만큼 API를 이용한 자동매매에는 조건검색 기능이 가장 핵심입니다. 이번 포스팅에서는 이베스트증권의 xingAPI를 활용하여 조건검색을 하는 방법을 알아보겠습니다. 1. xingAPI의 조건검색 TR T1857 사용전 알아야 할 점 키움증권 API는 실시간 종목검색을 5개까지 등록가능하고, OnMsg()에 조건명을 파라미터로 넘겨주기 때문에 어떤 조건에 의한 종목인지 처리하기가 쉽습니다. 하지만 이베스트투자증권 xingAPI는 실시간 종목검색을 2개까지 등록가능하고(작성일 기준..