-
퀀트킹 - 01. 백테스트 수행하기퀀트 2022. 8. 20. 23:27728x90
01 개념소개
퀀트 (quant: a quantitative analyst): 수학적 및 통계적 방법을 사용하는 재무 및 투자 관리를 하는 전문가
본 포스트에서 설명하고자하는 퀀트투자는 다음과 같은 방식으로 동작하며, 특정 프로그램의 도움을 받을 경우 손쉽게 전략을 찾을 수 있다.
- 데이터에 기반하여 투자할 종목을 고르고, 투자 기간을 선택하여, 매매를 시도하는 투자 방법
- 특정한 지표들을 추출하고, 그 지표들을 이용한 수식을 만들어서 투자할 종목을 선택한다.
- 특정 주기별로 포트폴리오에 들어갈 종목들을 재계산하여, 매매를 수행하는 리밸런싱을 지속한다.
- 위에서 추출한 지표 및 수식을 과거의 데이터에 적용하여 MDD(Maximum Drawdown)을 낮으면서 CAGR(Compound annual growth rate)은 높은 전략을 찾는다.
MDD(Maximum Drawdown): 변화하는 통계치의 이전 최대값(Peak) 이후에 관측되는 최소값(Trough)의 차이, 즉 최대낙폭을 나타낸다. 특정 전략을 시도할 때 발생할 수 있는 최대피해 정도라고 생각할 수
있으며, MDD가 낮을 수록 최대 손실률이 낮았던 전략이라고 볼 수 있다.
CAGR(Coumpound annul growth Rate): 연평균 복리 성장률을 의미한다.
예를들어 1000원을 2년동안 투자하여, 2000원으로 만들었다면, 위의 공식을 통해 연평균 복리 성장률은 약 41.14% 정도라는 것을 알 수 있다.
02. 프로그램 소개
투자를 위해서는 투자의 판단 근거가되는 주가 데이터, 그리고 여러 지표들을 가지고 있어야 하는데, 그 데이터를 얻는 것자체가 돈이라고 할 수 있다. HTS에서 제공하는 open api나 웹에서 데이터를 긁어오는 형태로 데이터를 구축할 수도 있지만 본 포스트에서는 유료 프로그램인 퀀트킹을 소개하려고 한다.
https://cafe.naver.com/quantking/
퀀트킹 (Quant King) : 네이버 카페
대한민국 1등 퀀트서비스의 퀀트킹입니다.
cafe.naver.com
위의 카페에서 다운로드 가능하며, 무료로도 사용할 수 있지만 사용메뉴가 한정되어 있다. 유료 회원으로 가입을하면 몇몇 기능들이 활성화된다. 가격은 포스트를 작성하는 22/08/20을 기준으로 1년에 160달러이다.
프로그램 최신버전을 다운받고 실행하면 다음과 같은 화면이 나온다.
경제 지표에 대한 여러정보를 제공하는 탭을 기준으로 다양한 메뉴가 존재한다.
여러 메뉴들이 많지만 퀀트킹에서 제공하는 가장 유용한 기능인 백테스트에 대해 알아보려고 한다.
03. 백테스트 기능 소개
백테스트: 특정 전략을 과거의 데이터에 적용했을 때, 어떤 종목을 구매했었고, 어느정도의 수익률을 얻을 수 있었는지를 확인하는 과정
- 백테스트 버튼을 클릭한다.
- 로직 이름 정하기
나의 로직을 클릭하면 100개의 로직을 저장할 수 있는 슬롯이 있는데, 사용할 슬롯을 선택한 후에 오른쪽에 있는 텍스트 상자에 로직의 이름을 지정한다.
본 포스트에서는 "2021_PEG지표활용"이라는 이름으로 로직을 만들었다.
- 매매 방식 정하기
(매매주기) 다음은 매매방식을 정해야한다. 퀀트킹에서는 월간/분기/반기/연간/시즌제 매매방식을 지정할 수 있다. 리밸런싱을 월에 1회 하면 월간, 분기당 1회하면 분기, 연 2회하면 반기, 연 1회하면 연간, 매입 시점, 매도 시점을 정해서 1년중 특정기간만 주식을 들고 있는 전략을 취할거면 시즌제를 선택하면된다.
본 포스트에서는 분기별 1회 리밸런싱을 하는 전략을 선택했다.
(테스트 기간) 테스트 기간은 메뉴를 통해 과거 몇년치 데이터를 이용할 것인지를 정할 수 있다. 최대 14년 전의 데이터를 비교할 수 있다.
본 포스트에서는 과거 10년의 데이터만 비교한다.
(편입갯수) 포트폴리오에 담을 주식의 수를 의미한다. 20으로 설정하면 내가 결정한 수식으로 계산했을 때 상위 20개에 해당하는 종목을 담겠다는 의미이다.
본 포스트에서는 20개의 종목을 편입하는것으로 설정한다.
(매도수수료) 매도시 발생하는 수수료율을 나타낸다.
본 포스트에서는 1.5%로 설정했다.
(거래정지시 손실처리율) 내가 투자한 종목이 상장폐지되었을때의 손실을 처리할 방법을 정한다.
본 포스트에서는 100%손실로 설정했다.
- 업종 및 시장 선택
주식의 분야별로 투자할 곳을 정할 수 있다.
본 포스트에서는 코스피/코스닥을 설저했고, 정확한 비교를 위해 관리 종목도 매매를 하도록 지시했다. 또한 해외본사.스팩,금융,지주사는 제외했다.
- 수식 결정하기
(필터식) 특정 지표를 이용하여 필터를 사용할 수 있다. 대부분의 지표에 따라 필터식을 적용할 수 있다.
1) 상하위 % 설정: 위의 그림은 시가총액 기준으로 하위 20%에 해당하는 종목만 고려하겠다는 것을 의미한다.
2) 최소값, 이상: 이 필드에 값을 넣으면 시가총액이 최소값 이상인 종목만 고려하겠다는 것을 의미한다.
3) 최대값, 이하: 이 필들에 값을 넣으면 시가총액이 최대값 이하인 종목만 고려하겠다는 것을 의미한다.
(점수식) 점수식 필드에 값을 넣으면 특정 지표에 부여하는 가중치를 결정할 수 있다. 예를 들어 아래 그림처럼 설정하면 GP/A라는 지표에 10점의 가중치를 부여한다.
이런식으로 점수식, 필터식을 설정한 후에, 백테스트 시작 버튼을 클릭한다.
백테스트가 진행되며, 월간수익률이 계산된다.
CAGR이 54.3프로, MDD가 25.3인 전략이라는 것을 확인할 수 있으며, 해당 전략의 경우 거래정지 종목이 2개 발생했음을 알 수 있다.
히스토리를 클릭하면, 그동안 매도하고 매입한 종목을 알 수 있다.
오늘의 종목을 클릭하면, 이 전략을 통해 오늘 리밸런싱을 진행한다면 보유하고 있어야하는 주식의 리스트를 알 수 있다.
- 사용한 전략을 간략하게 요약하면 다음과 같다.
1) 시총 하위20% 필터
2) GP/A (가중치 10)
3) 분기PEG (가중치 10)
4) 당좌비율 최소값(100) 필터
5) 분기 매출액 증가율(% YOY) (가중치 10)
6) 연환산 지배주주순이익(억) (0.01 이상) 필터
7) 분기 지배주주순이익(억) (0.01 이상) 필터
본 포스트는 백테스트 기능을 사용하는 방법을 다룬 것으로, 전략에 사용된 항목들에 대해서는 다음 포스트에서 다루도록 하겠다.
728x90'퀀트' 카테고리의 다른 글
퀀트킹 - 02. 경제지표 소개 (Feat. 백테스트 비교) (0) 2022.08.25