이번 포스팅에서는 차트데이터 수집에 필요한 옵션 설정 기능을 만들어 보겠습니다.
1. 수집 옵션 설정화면
주식마스터 조회 API 호출 시 코스피, 코스닥을 선택하여 조회할 수 있게 되어 있어서 전종목, 코스피, 코스닥, 사용자지정 개별 종목코드를 선택할 수 있도록 하였습니다.
데이터 종류는 틱 데이터, 1분봉 데이터, 일봉 데이터를 설정할 수 있도록 하였습니다.
그리고 수집 기간과 저장 경로를 설정할 수 있도록 하였습니다.
2. 화면 컨트롤 속성 설정 방법
수집 종목 선택에 라디오 버튼을 사용했는데 라디오 버튼을 그룹으로 묶으려면 탭 순서를 연속된 번호로 지정해 주어야 합니다. 리소스 뷰어에서 메인 대화창을 열고 ctrl+D 버튼을 누르면 아래와 같이 탭 순서가 표기됩니다. 아래 그림에서는 연속된 번호로 지정된 것을 확인할 수 있습니다. 연속 번호로 지정되어 있지 않으면 마우스를 순서대로 클릭하여 다시 연속된 순번의 탭 번호를 가질 수 있도록 해줍니다.
컨트롤의 리소스 ID, 속성, 변수는 아래 표를 참고하여 설정합니다.
Label | Control | ID | Property | Variable |
전체 | RadioButton | IDC_CFG_RADIO_ALL | Group::True | CButton::m_ctrRadioAll, int m_iRadioSelect |
코스피 | RadioButton | IDC_CFG_RADIO_KOSPI | CButton::m_ctrRadioKospi | |
코스닥 | RadioButton | IDC_CFG_RADIO_KOSDAQ | CButton::m_ctrRadioKosdaq | |
사용자지정 종목코드 | RadioButton | IDC_CFG_RADIO_USER | CButton::m_ctrRadioUser | |
사용자지정 종목코드 | EditBox | IDC_CFG_EDIT_USER | CEdit::m_ctrEditUserInput | |
틱 | CheckBox | IDC_CFG_CHECK_TICK | CButton::m_ctrChkTick | |
분봉 | CheckBox | IDC_CFG_CHECK_MIN | CButton::m_ctrChkMin1 | |
일봉 | CheckBox | IDC_CFG_CHECK_DAY | CButton::m_ctrChkDay | |
수집기간시작 | Date-Time | IDC_DATETIMEPICKER_START | CDateTimeCtrl::m_ctrDateStart | |
수집기간종료 | Date-Time | IDC_DATETIMEPICKER_END | CDateTimeCtrl::m_ctrDateEnd | |
수집경로 | EditBox | IDC_CFG_EDIT_DIR | CEdit::m_ctrEditDir | |
경로변경 | Button | IDC_CFG_BTN_CHANGE | CButton::m_ctrBtnDirChange | |
폴더열기 | Button | IDC_CFG_BTN_OPEN | CButton::m_ctrBtnOpenFolder | |
수집시작 | Button | IDC_BTN_START | CButton::m_ctrBtnStart | |
일시정지 | Button | IDC_BTN_PAUSE | CButton::m_ctrBtnPause | |
수집종료 | Button | IDC_BTN_QUIT | CButton::m_ctrBtnQuit |
설정 내용 관리를 위한 구조체를 아래와 같이 정의하였습니다. "수집시작" 버튼을 누를 때 설정창 컨트롤의 내용을 아래 구조체에 저장합니다.
아래와 같이 구조체 변수에 설정값을 저장합니다.
아래 화면처럼 설정 후 로그인 시 사용자가 선택한 옵션이 구조체 변수에 잘 저장된 것을 확인할 수 있습니다.
수집한 차트 데이터의 기본 저장 경로는 프로그램 실행경로 하위에 "repo" 폴더로 하겠습니다.
"경로변경", "폴더열기" 버튼의 이벤트 핸들러에 CFolderPickerDialog와 ShellExecute를 사용하여 코드를 입력하였습니다.
여기까지 데이터 수집에 필요한 설정 사항 모두가 TST_CONFIG_INFO 구조체 변수에 저장되도록 마무리되었습니다.
'트레이딩 > 시스템트레이딩' 카테고리의 다른 글
[xingAPI][차트 데이터 수집기 만들기](6) 주식마스터 조회 (1) | 2021.11.18 |
---|---|
[xingAPI][차트 데이터 수집기 만들기](5) 작업 스레드 생성 (0) | 2021.10.14 |
[xingAPI][차트 데이터 수집기 만들기](3) 로그인/로그아웃 (0) | 2021.10.04 |
[xingAPI][차트 데이터 수집기 만들기](2) 프로젝트 셋업 (2) | 2021.10.04 |
[xingAPI][차트 데이터 수집기 만들기](1) 프로젝트 생성 및 화면 만들기 (0) | 2021.10.01 |