[MFC] TA-LIB 설치

반응형

상용 HTS 프로그램을 사용하면 차트와 연계하여 이동평균선, MACD 등의 지표 정보를 볼 수 있습니다.

하지만 xingAPI, Kiwoom Plus 같은 증권사 API를 이용하면 지표를 별도로 계산해야 합니다.

각 지표에 대한 계산식은 쉽게 찾을 수 있지만 그 지표들를 직접 계산하는 코드를 작성하는 것은 시간낭비라고 생각합니다.

왜냐하면 이미 누군가 만들어두었기 때문에 갖다 쓰면 됩니다.

대표적인 기술적 지표 분석 라이브러리 TA-LIB을 MFC 프로젝트에 설치하는 방법을 알아보겠습니다.

 

1. TA-LIB에 대하여 

TA-Lib은 트레이딩 소프트웨어 개발자들을 위한 기술적 분석 라이브러리로서 오픈소스입니다.

아래 경로에서 TA-Lib 소스코드를 다운로드할 수 있습니다.

https://ta-lib.org/

 

TA-Lib - Technical Analysis Library

Use TA-Lib to add technical analysis to your own financial market trading applications 200 indicators such as ADX, MACD, RSI, Stochastic, Bollinger Bands etc... See complete list... Candlestick patterns recognition Core written in C/C++ with API also avail

ta-lib.org

 

2. 라이브러리 파일(.LIB) 생성

비주얼스튜디오의 Native Tools Command Prompt를 띄워서 nmake를 실행합니다.

Prompt는 x86 버전과 x64 버전이 구분되어 있으므로 프로젝트에 맞는 비트를 선택해야 합니다.

nmake 실행 화면

 

생성된 LIB파일의 비트 확인은 dumpbin 명령으로 헤더 덤프를 수행하면 됩니다.

dumpbin 실행화면

라이브러리가 정상인지 확인은 .LIB 빌드 때 같이 생성된 ta_regtest.exe를 실행시켜 봅니다.

All tests succeeded 메시지를 확인하면 정상적으로 빌드된 것입니다.

ta_regtest 실행 결과

3. TA-Lib 빌드 결과물을 프로젝트에 추가하기

3.1 lib 파일 프로젝트 폴더에 복사

프로젝트 폴더에 "prebuilt/ta-lib" 폴더 생성 후 cmd, cmr을 복사합니다.

cmr, cmd 복사 결과

3.2 헤더파일 복사

"prebuilt/ta-lib/include" 폴더에 헤더파일을 복사합니다. 응용 코드에서는 "ta_libc.h"만 인클루드 하면 됩니다.

헤더파일 복사 결과

3.3 프로젝트 설정

3.3.1. 디버그, 릴리즈 모드의 프로퍼티에 아래 .lib 파일명을 프로젝트 속성에 추가합니다.

  • Debug-x64 : ta_libc_cmd.lib;ta_abstract_cmd.lib;ta_common_cmd.lib;ta_func_cmd.lib
  • Release-x64 : ta_libc_cmr.lib;ta_abstract_cmr.lib;ta_common_cmr.lib;ta_func_cmr.lib

Property-Linker-Input-Additional Dependencies

3.3.2. lib 파일 탐색 경로를 추가합니다.(디버그, 릴리즈 각각)

Property-Linker-General-Additional Library Directories

3.3.3. 솔루션 탐색기에 헤더파일을 추가합니다.

솔루션 탐색기 헤더파일

4. 테스트코드 작성 및 리턴값 확인

테스트코드 작성 파일에 #include "ta_libc.h" 구문을 추가합니다.

그리고 OnAppAbout() 함수와 같은 임시 영역에 테스트 코드를 작성하고 실행해 봅니다.

리턴결과가 0이 나오면 정상입니다.

리턴값 0은 ENUM_BEGIN에서 확인하면 TA_SUCCESS를 의미합니다.

TA-Lib 테스트 코드
TA_RetCode 0 확인
TA_SUCCESS

이상으로 MFC 프로젝트에 TA-Lib를 적용하는 방법을 알아보았습니다.

반응형

'프로그래밍 > C | C++' 카테고리의 다른 글

[MFC] C++ MiniDumpWriteDump  (0) 2022.08.12
[MFC] 로그(Log) 출력 Logger  (0) 2022.08.12
[MFC] simdjson library 설치  (0) 2022.08.01
엑셀을 활용한 C코드 생성  (0) 2020.11.12
QEMU를 이용한 하드웨어 모델링  (0) 2020.08.15