엑셀을 활용한 C코드 생성

반응형

증권사 API에서 제공하는 TR 종류는 200여 개가 넘는데 각 TR에 대한 헤더파일을 소스코드에 추가하는 작업만 해도 시간이 오래 걸리고 관리도 어렵습니다. 이럴 때 엑셀을 활용하여 C코드를 자동 생성하는 방법을 알아보겠습니다.

 

 1. 엑셀을 활용하여 C 코드를 생성하는 이유

증권사 API(이베스트투자증권 xingAPI)는 용도별로 TR이 구분되어 있습니다.

주식 주문을 하려면 TR CSPAT00600을 호출하면서 계좌번호, 계좌비밀번호, 종목번호, 매수/매도 구분값, 신용/현금 여부 등의 파라미터를 넘기게 됩니다.

이베스트투자증권은 작성일 현재 207개의 TR을 제공합니다.

헤더파일도 207개, TR전송함수 207개, 수신함수 207개, TR별 수신함수 콜백 맵, 흐름제어, 진단모듈에서 정보 참조를 위한 TR별 속성값을 가지고 있는 테이블을 코딩한다고 생각해 보세요.

한두 개 하다 보면 직접 타이핑할 일이 아니라는 것을 금방 깨닫게 됩니다.

이런 점 때문에 시스템 트레이딩 책에서는 매매플랫폼은 개발할 생각 말고 증권사 플랫폼(예스트레이더, 메타트레이더 등)을 이용하여 매매전략 개발에 시간을 더 투자하라고 조언을 해줍니다.

저는 그러한 노력을 줄이기 위해 엑셀에서 C코드를 생성하고 있습니다.

이러한 방식은 휴대폰, 자동차 등을 생산하는 글로벌 제조업에서도 코드 자동생성 엑셀만 만들어 주는 전담팀이 있을 정도로 현업에서도 실제 활용하는 방법입니다.

 

2. 엑셀로 생성한 C 코드의 예

allxingheaders.h 의 include 구문 207줄의 일부
TR 전송제한 제약사항에 따라 흐름제어 대상이 되는 TR들 enum class
수신 패킷의 TR별 데이터 수신(저장) 처리 핸들러
TR별 Request Helper 함수
TR 콜백함수 맵
TR 속성 맵

3. 엑셀로 C 코드를 생성하는 방법

아래와 같이 첫 시트에 모든 TR의 속성을 한 번만 기입해 두면 그 뒤에는 원하는 코드를 생성할 수 있습니다.

TR 속성은 DevCenter에서 각 TR 정보를 클릭하면 우측창에 속성이 나옵니다.

그 속성을 한 번만 옮겨 적으면 그 이후에는 다양한 포맷의 참조 코드를 엑셀 수식으로 생성할 수 있습니다.

Dev Center에서 TR 속성을 보고 옮겨 적음
원하는 포맷의 코드를 다양하게 생성 가능

 

첫 시트의 데이터를 활용하여 다양한 내용을 엑셀 수식을 활용하여 생성할 수 있습니다.

반응형

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

[MFC] C++ MiniDumpWriteDump  (0) 2022.08.12
[MFC] 로그(Log) 출력 Logger  (0) 2022.08.12
[MFC] simdjson library 설치  (0) 2022.08.01
[MFC] TA-LIB 설치  (0) 2022.08.01
QEMU를 이용한 하드웨어 모델링  (0) 2020.08.15