요즘 개발하는 방구석지니 백테스트 기능에 필수 필요한... 퀀트킹 백테스트 후 히스토리 탭에서 이전 투자되었던 종목을 추출해주는 프로그램을 만들어서 무료배포 하고 있다.
다운 장소는 아래 링크로~~
https://cafe.naver.com/conerquant/973
----------------------------------------------------------------------------------------------
안녕하세요. 개미퀀트입니다.
현재 방구석지니에 백테스트 기능을 추가하는 개발을 하고 있습니다.
아시다시피 저희는 퀀트킹처럼 퀀트데이터를 통한 종목 추출을 할 수 없기 때문에 백테스트 시에도 제약이 큰 편입니다. 그동안 저희 카페에서 공유해드렸던 백테스트 방법도 최근 1~2년 정도 기간에, 종목도 분기별 변경이 아닌 같은 종목으로 백테스트를 실행 시켰었죠.
그래서 이번에 백테스트 기능을 개발하면서 분기별로 날짜,기간과 포트폴리오 CSV 파일을 등록해서 등록된 전 기간을 한번에 백테스트 할 수 있도록 구현하고 있습니다. 퀀트 투자를 몇 년간 하면서 분기별 투자한 포트폴리오 종목 CSV가 남아 있어 투자했던 해당 날짜를 입력하면되게 만들었습니다.
문제는 장기간 백테스트와 내가 투자했던 종목이 아닌 퀀트킹에서 백테스트 돌렸던 그 전략의 종목들로 백테스트 해보고 싶을 경우에는... 퀀트킹에서 백테스트 히스토리를 보면 분기별 투자했던 종목을 볼 수 있습니다만 드래그 복사를 할 수 없어서 종목을 가져오지 못하는 문제가 있습니다. 그 많은 종목을 일일이 다 키보드로 입력할 수도 없고 말입니다.
그래서 이번에 그냥 이미지에서 숫자를 인식해서 추출하는 OCR 기능으로 퀀트킹 백테스트 히스토리 이미지에서 종목코드를 추출하는 프로그램을 만들었습니다. 처음에는 방구석지니에 기능을 내장해서 개발하고 있었는데 이 기능을 방구석지니 유료회원이 아닌 분들도, 퀀트킹을 사용하는 많은 분들도 필요해 하실거 같아서 별도로 프로그램을 만들었습니다. 필요한 분은 누구나 사용하시도록 무료로 공개합니다.
1. 설치방법
방구석지니는 R, 키움OpenAPI 등 설치하고 설정해야 하는 부분이 많아 까다롭지만
이 프로그램은 그냥 다운받아 설치만 하면 됩니다. 참 쉽죠.
2. 사용방법
2.1 퀀트킹 백테스트 히스토리 종목 히스토리 캡쳐
- 아래와 같이 '년-월' 이 표시된 부분부터 아래 '코드번호' 종목코드가 있는 영역을 캡쳐해서 jpg나 png로 저장합니다.
2.2 종목코드 추출기 실행 후 추출
우선 [종목 저장 위치 설정] 버튼을 클릭해 캡쳐된 이미지에서 추출된 종목코드 CSV 파일이 저장될 위치를 설정한 후에, [퀀트킹 히스트로 캡쳐 불러오기]를 클릭해서 아까 캡쳐한 이미지를 불러옵니다.
2.3 추출 결과 확인
OCR이 100% 성능을 발휘해 에러없이 종목 추출이 잘 되면 좋겠지만 그렇지 않더군요. 무료 라이브러리이기도 하고 OCR 좀 조사해보니 이미지 전처리도 해야하지만, 후처리도 필요한데 잘못 추출된 단어등은 사전등을 통해 바로 잡아줘야 한다고 하더군요. 그래서 저도 추출된 종목코드가 현존하는 코스피,코스닥 종목코드에 포함되지 않으면 '오류검증'에 '이상'이라고 표시하고, 이상해게 추출된 종목코드를 '오류종목코드' 컬럼에 표시하였습니다.
해당 '이상' 셀에 마우스 클릭을 하면 오른쪽에 해당 이미지가 뜨고 추출된 CSV 파일 내용도 오른쪽에 표시가 되는데요. 오류종목코드는 동일하게 빨간색으로 띄우게 하였습니다. 번거롭지만 여기서 사용자가 캡쳐된 이미지를 보고 수동으로 변경 입력을 해주고 [수정하기] 버튼을 클릭하여 오류를 수정할 수 있습니다.
2.4 대량 이미지 추출
백테스트를 2008년 11월부터 했다면.. 분기별로 투자했을 경우 캡쳐해야할 이미지 양이 상당히 많은데요.. 캡쳐하는데 많은 인내가 필요하긴 합니다만... 한번 캡쳐한 걸로 백테스트에 이용할 수 있으니 한번의 수고는 필요한거 같습니다. 팁을 드리자면 알캡쳐를 사용해서 캡쳐를 우선 한장씩 쭉~ 한 후 모두저장 기능으로 한번에 하면 됩니다.
전 제가 실제 투자하고 있는 전략을 2008년부터 분기투자한 백테스트 히스토리 내역을 56장에 걸쳐 캡쳐하였습니다.
생각보다 오류종목코드 추출이 많지는 않아 몇 번만 수정해주면 됐습니다. '시작일'과 '종료일'도 자동으로 입력되는데 이는 나중에 방구석지니에서 자동으로 백테스트 기간 입력에 사용됩니다.
그럼 즐겁게 사용해 주시고,
프로그램 사용 중 오류나 개선, 개발 아이디어 있으면 언제든 글 남겨주세요.
감사합니다.
* 실행은 되는데 이미지에서 코드 추출시 에러가 나는 분들은 아래 2개 프로그램을 추가로 설치해야 합니다.
https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
댓글 없음:
댓글 쓰기