2017년 10월 11일 수요일
2017년 9월 26일 화요일
회계부정 적발 & Quality Factor의 $-neutral vs. beta-neutral
간단히 오늘 리서치 정리.
1. 회계부정 기업 적발(financial statement fraud detection)
대표님께서 궁금하시다고 해서 회계부정 적발과 관련해 어제, 오늘 간단히 리서치를 해봤는데 요즘 해외에서는 intelligent fraud detection이라고 이쪽에서도 머신러닝, 딥러닝을 적용한 연구가 많다. 전통적으로 머신러닝을 금융에 일찍 적용했던 분야가 대출과정에서 개인의 파산확률 예측이라든지, 신용카드 부정사용 적발 등인걸 고려하면 회계부정 적발에 관련 방법을 쓰는건 자연스러워 보인다. 실제 정확도도 꽤 높은 편인데 머신러닝 기법과 어닝 리포트의 텍스트 분석을 결합했을 때 90% 이상으로 회계부정 기업을 적발.
반면 국내연구에서는 아직 머신러닝을 적용한 논문이 잘 안보인다. 나쁜 기업을 스크리닝 할 때 쓰는 직전 3년 비적정 감사의견, 불성실 공시법인, 횡령, 배임, 영업 적자 등의 기준을 사용한 고전적인 방법도 많다. 그럼 그냥 내가 재무데이터 가지고 적용해볼까 했는데 일단 회계부정 기업 리스트를 머신러닝 돌릴만큼 충분히 구하는게 노가다여서 포기..
국내 사례에서 과거 연구자료들을 종합해보면 회계부정 적발에 영향을 미치는 팩터를 크게 지배구조 변수와 재무변수로 나눌 수 있다. 지배구조변수로 유의미한 팩터는 경영자 급여, 최대주주 지분율, 감사인 교체여부 등인데 내부적으로 관심있던 신성델타테크의 경우 경영자 급여가 부정기업 쪽에 좀 더 가까우나 판단은 애매하고 감사 교체는 없어 전반적으로 지배구조 측면에서 회계부정 가능성은 중립이다.
재무변수로는 차입금 의존도, 이자보상비율이 유의미하고 특히 수익성 지표인 영업이익률, 순이익률, ROA, OCF/TA이 회계부정기업과 정상 기업간의 차이가 크다. 그외 매출액 증가율, 유형자산 회전율, 총자산 회전율이 유의한 팩터인데 신성델타테크는 차입금 의존도가 1분기 40.71%, 2분기 39.62%로 회계부정기업 평균 36%보다 높다. 이자보상비율이나 수익성 관련 지표는 대체로 회계부정기업들은 -를 기록해 신성델타테크는 해당사항 없고 영업현금흐름 측면에서도 중립적이다. 회계부정기업은 정상기업 대비 유형자산 회전율은 높고 총자산 회전율은 낮은 편인데 신성델타테크는 유형자산 회전율이 낮고 총자산 회전율은 보통인 편으로 재무변수측면에서도 차입금 의존도를 제외하면 특별히 회계부정 의심기업이라고 보기 어렵다.
2. Quality Factor의 $-neutral vs. beta-neutral
Quality Factor는 왜 작동하는지 직관적으로 이해하기 어려운 대표적인 팩터다.(이와 관련해 예전에 페이스북에서 요즘 퀀트투자관련 책을 출판하고 무려 강의까지 하는 분과 의견이 대립한 적이 있다. 난 퀀트야말로 팩터가 왜 작동하는지 깊이 고민하고 적용해야 한다고 주장했는데 그분은 퀀트와 데이터마이닝의 차이를 전혀 이해하지 못하시는듯.. 부디 강의할 때 수강생들에게는 그렇게 가르치지 않았으면 좋겠다)
오늘 Quality factor 관련해 재밌는걸 봤는데 Factor research에 따르면 미국에서는 Quality factor의 $-neutral 과 beta-neutral의 차이가 크지 않은데 그외 지역에서는 차이가 꽤 벌어졌다.

결국 risk adjusted 관점에서 high quality가 작동한다는 말인데 합리적인 것 같으면서도 쉽게 와닿지는 않는다. 뭐 결론은 둘 중에 어느걸로 해도 금융위기 때 수익곡선에서 볼 수 있듯이 quality factor는 시장과 상관관계가 낮아 diversification으로는 제격.
1. 회계부정 기업 적발(financial statement fraud detection)
대표님께서 궁금하시다고 해서 회계부정 적발과 관련해 어제, 오늘 간단히 리서치를 해봤는데 요즘 해외에서는 intelligent fraud detection이라고 이쪽에서도 머신러닝, 딥러닝을 적용한 연구가 많다. 전통적으로 머신러닝을 금융에 일찍 적용했던 분야가 대출과정에서 개인의 파산확률 예측이라든지, 신용카드 부정사용 적발 등인걸 고려하면 회계부정 적발에 관련 방법을 쓰는건 자연스러워 보인다. 실제 정확도도 꽤 높은 편인데 머신러닝 기법과 어닝 리포트의 텍스트 분석을 결합했을 때 90% 이상으로 회계부정 기업을 적발.
반면 국내연구에서는 아직 머신러닝을 적용한 논문이 잘 안보인다. 나쁜 기업을 스크리닝 할 때 쓰는 직전 3년 비적정 감사의견, 불성실 공시법인, 횡령, 배임, 영업 적자 등의 기준을 사용한 고전적인 방법도 많다. 그럼 그냥 내가 재무데이터 가지고 적용해볼까 했는데 일단 회계부정 기업 리스트를 머신러닝 돌릴만큼 충분히 구하는게 노가다여서 포기..
국내 사례에서 과거 연구자료들을 종합해보면 회계부정 적발에 영향을 미치는 팩터를 크게 지배구조 변수와 재무변수로 나눌 수 있다. 지배구조변수로 유의미한 팩터는 경영자 급여, 최대주주 지분율, 감사인 교체여부 등인데 내부적으로 관심있던 신성델타테크의 경우 경영자 급여가 부정기업 쪽에 좀 더 가까우나 판단은 애매하고 감사 교체는 없어 전반적으로 지배구조 측면에서 회계부정 가능성은 중립이다.
재무변수로는 차입금 의존도, 이자보상비율이 유의미하고 특히 수익성 지표인 영업이익률, 순이익률, ROA, OCF/TA이 회계부정기업과 정상 기업간의 차이가 크다. 그외 매출액 증가율, 유형자산 회전율, 총자산 회전율이 유의한 팩터인데 신성델타테크는 차입금 의존도가 1분기 40.71%, 2분기 39.62%로 회계부정기업 평균 36%보다 높다. 이자보상비율이나 수익성 관련 지표는 대체로 회계부정기업들은 -를 기록해 신성델타테크는 해당사항 없고 영업현금흐름 측면에서도 중립적이다. 회계부정기업은 정상기업 대비 유형자산 회전율은 높고 총자산 회전율은 낮은 편인데 신성델타테크는 유형자산 회전율이 낮고 총자산 회전율은 보통인 편으로 재무변수측면에서도 차입금 의존도를 제외하면 특별히 회계부정 의심기업이라고 보기 어렵다.
2. Quality Factor의 $-neutral vs. beta-neutral
Quality Factor는 왜 작동하는지 직관적으로 이해하기 어려운 대표적인 팩터다.(이와 관련해 예전에 페이스북에서 요즘 퀀트투자관련 책을 출판하고 무려 강의까지 하는 분과 의견이 대립한 적이 있다. 난 퀀트야말로 팩터가 왜 작동하는지 깊이 고민하고 적용해야 한다고 주장했는데 그분은 퀀트와 데이터마이닝의 차이를 전혀 이해하지 못하시는듯.. 부디 강의할 때 수강생들에게는 그렇게 가르치지 않았으면 좋겠다)
오늘 Quality factor 관련해 재밌는걸 봤는데 Factor research에 따르면 미국에서는 Quality factor의 $-neutral 과 beta-neutral의 차이가 크지 않은데 그외 지역에서는 차이가 꽤 벌어졌다.
결국 risk adjusted 관점에서 high quality가 작동한다는 말인데 합리적인 것 같으면서도 쉽게 와닿지는 않는다. 뭐 결론은 둘 중에 어느걸로 해도 금융위기 때 수익곡선에서 볼 수 있듯이 quality factor는 시장과 상관관계가 낮아 diversification으로는 제격.
2017년 9월 13일 수요일
한빛 미디어 리얼타임 TALK 01 - 비즈니스 블록체인 세미나 후기
주식시장에서는 10배 오른 주식을 Tenbagger 라고 부른다. 그 유명한 피터린치가 저서에서 사용한 단어로 사람들은 온갖 노력을 기울여 그런 주식을 찾기 위해 애쓴다.
그런데, 나는 올해에만 무려 20배 오른 자산을 가지고 있다. 그리고 앞으로 10배는 더 갈거라 생각하고 홀딩 중이다. 사실 해당 자산군내에서 2,3배 오른 종목들은 부지기수다. 혹자는 튤립버블에 비유하며 그냥 대중의 광기라 치부하고 고전적인 화폐이론을 들어 근본적으로 성립될 수 없다고 주장하지만 그런 말을 하는 사람들 중 해당 자산을 진정 이해하고 있는 사람은 별로 보지 못했다.
언급한 자산군은 비트코인을 대표로한 암호화폐다. 아직 역사가 짧기는 하지만 시계열 특성을 보면 기존의 어떤 자산군으로도 묶기 애매한 새로운 투자수단으로 나는 이더리움이 만원이 되기 전에(지금 30만원이 넘네요 ^^;) 처음 투자를 시작했다. 사실 개인적으로도 비트코인은 화폐로서 실패할 수 있다고 생각하지만 블록체인 기술이 가지는 효용성은 우리생활에 적용될 분야가 무궁무진하다 판단했고 틈틈이 공부해 그간 10여종의 알트코인들에 투자해왔다.
금융업종에 종사하면서 건방지게 최근 한빛미디어의 책 읽는 프로그래머 그룹에 가입했는데(출판사 사정상 출간이 계속 미뤄지고는 있지만 R책을 번역하기는 했으니..) 한빛 미디어에서 비즈니스 블록체인 이란 책을 발간하면서 저자 세미나에 '무료'로 초청해주셔서 다녀왔다. 이전에는 서평단으로 책도 보내주셨었는데(예전 글) 이 자리를 빌어 다시 한번 감사드린다.
세미나는 블록체인의 동작원리와 같은 기술적 내용부터 실제 활용사례를 포함한 비즈니스 측면까지 폭넓게 다뤄 블록체인을 처음 입문하는 사람부터 암호화폐 투자자나 블록체인을 적용하려는 실무자까지 모두 관심있게 들을 수 있었다. 개인적으로는 사토시나 비탈릭이 속한 사이퍼펑크 얘기와 언제들어도 알쏭달쏭한 합의방식을 실제 시뮬레이션으로 설명해주신 점이 인상깊었다. 비지니스적으로는 신원확인과 관련된 코인인 civic이 눈에 띄어 투자하려고 했는데 지금보니 세미나 끝나고 3일 뒤에 가격이 크게 올라있네..
저자인 박지훈님께서 국내 펀드매니저들을 힘들게 하는 S사에서 실제 해당업무를 다루고 계신만큼 기술적인 부분과 비즈니스 활용적인 부분 모두 깊은 내공이 느껴졌다. 아직 책을 읽지 못했는데 구입해서 꼭 읽어봐야겠다.
그리고보니 덕분에 몇개월만에 블로그를 적게됐다. 여전히 매일 퀀트 블로그와 페이퍼로 하루를 시작하고 최근에는 팩터 DB작업과 시뮬레이션 툴을 만들고 있다.딥러닝 쪽 진행하던게 좀 지체됐는데 내일 구글 클라우드 교육 잘받고 와서 속도 좀 내봐야지. 바로 다음날 아마존 AWS 세미나도 있는데 간식이 더 맛있는 쪽 서비스를 이용해야겠다.
추가
1. 요즘 대용량 데이터를 요청하는데 퀀티와이즈 제발 다운 좀 안됐으면..
2. 회사 내부적으로 사용할 팩터 시뮬레이션툴을 만드는데 로이터에서 똑같은걸 만들어 세일즈를 다니시네 ㅎㅎ
2017년 4월 25일 화요일
윈도우에 XGBoost 설치하기
딥러닝 세상이지만 케글이나 각종머신러닝 대회에서 XGBoost 역시 꾸준히 좋은 성능을 보여주고 있다. XGBoost의 이론적인 내용은 접어두고 일단 윈도우, 파이썬 환경에서 설치하는 법을 정리해둬야겠다. (다른 PC에 설치할 일이 생길 것 같은 나를 위해서..)
일단 파이썬은 설치되었다고 가정하면 Git과 MinGW가 필요하다.
링크에서 Git 윈도우 버전을 받아 Bash Shell을 실행하면 터미널이 열린다. XGBoost 를 저장할 경로에서 다음의 명령어를 입력한다.
복사한 XGBoost를 빌드하려면 64bit 윈도우에서 MinGW-W64가 필요하다.
다운을 받고 설치하는데 setting에서 architecture를 x86_64로 변경한다.
다음 과정이 조금 까다로울 수 있는데 위에서 설치한 MinGW의 라이브러리가 있는 폴더를 윈도우에 등록해줘야 한다.
여기를 참고해 디렉토리(예를 들어 C:\Program File s\mi ngw- w64\ x86_ 64-5 .3.0 -pos ix-s eh-r t_v4 -rev 0\mi ngw6 4\bi n) 를 시스템 경로로 추가해준다.
Git Bash를 닫고 다시 열어
를 입력했을 때 위의 디렉토리를 돌려주면 이제 준비 완료.
작업을 편하게 하기 위해 다음을 입력하고
XGBoost를 설치한 곳으로 가 다음을 차례대로 입력해준다.
(XGBoost 튜토리얼은 더 간단한데 그렇게 했을 때 왠지 파이썬에서 설치가 안됐다.)
이제 아나콘다 프롬프트 등에서 XGBoost를 설치하면 된다.
파이썬에서 XGBoost를 import 되는 지 다음을 통해 확인하면 진짜 끝.
일단 파이썬은 설치되었다고 가정하면 Git과 MinGW가 필요하다.
링크에서 Git 윈도우 버전을 받아 Bash Shell을 실행하면 터미널이 열린다. XGBoost 를 저장할 경로에서 다음의 명령어를 입력한다.
$ git clone --recursive https://github.com/dmlc/xgboost
$ cd xgboost
$ git submodule init
$ git submodule update
| cs |
복사한 XGBoost를 빌드하려면 64bit 윈도우에서 MinGW-W64가 필요하다.
다운을 받고 설치하는데 setting에서 architecture를 x86_64로 변경한다.
다음 과정이 조금 까다로울 수 있는데 위에서 설치한 MinGW의 라이브러리가 있는 폴더를 윈도우에 등록해줘야 한다.
여기를 참고해 디렉토리(예를 들어 C:\Program File
Git Bash를 닫고 다시 열어
$ which mingw32-make
| cs |
작업을 편하게 하기 위해 다음을 입력하고
$ alias make='mingw32-make'
| cs |
(XGBoost 튜토리얼은 더 간단한데 그렇게 했을 때 왠지 파이썬에서 설치가 안됐다.)
$ cd dmlc-core
$ make -j4
$ cd ../rabit
$ make lib/librabit_empty.a -j4
$ cd ..
$ cp make/mingw64.mk config.mk
$ make -j4
| cs |
cd code\xgboost\python-package
python setup.py install
| cs |
파이썬에서 XGBoost를 import 되는 지 다음을 통해 확인하면 진짜 끝.
1
2
3
4
5
6
|
import os
mingw_path = 'C:\\Program Files\\mingw-w64\\x86_64-5.3.0-posix-seh-rt_v4-rev0\\mingw64\\bin'
os.environ['PATH'] = mingw_path + ';' + os.environ['PATH']
import xgboost as xgb
| cs |
2017년 4월 5일 수요일
주가 패턴분석 (K-Means Clustering)
혼자 몰래하는 블로그였는데 systrader님(블로그) 페이스북에 포스팅2개가 링크되면서 갑자기 방문객이 늘었다..; 스스로 나중에 보려고 올리는 글들이라 다른 사람들에게 도움이 될 지 모르겠다. 꾸준히 블로그를 올릴만큼 부지런하지는 않으니 곧 다시 나만 하는 블로그가 되겠지.
K-Means Clustering 이라는 비지도 학습(unsupervised learning)을 이용하면 군집 분석을 쉽게 할 수 있다. 정해진 K개 그룹의 중점(centroid)을 구하고 데이터와 거리를 계산해 업데이트 방법으로 원리도 간단하다.
R을 이용해 2007년부터 5일간격으로 삼성전자의 20일 동안 주가를 8개 패턴으로 분류한 결과다. 패턴 8과 같은 경우가 20일 동안 지속적으로 상승하는 유형이고 패턴 2가 반대로 하락하는 유형이다. 빈도수를 보면 8번, 2번, 7번 순으로 많다. 위의 패턴번호를 삼성전자 주가에 표시해 그리면 다음과 같다.
최근엔 지속 상승하는 8번 유형에서 둔화된 7번, 5번 유형으로 변하는걸 볼 수 있다.
이렇게 구한 패턴유형은 다른 모델의 input feature로 활용할 수 있다. 자신의 트레이딩 규칙, 알고리즘이 어떤 패턴에 잘 맞는지 확인해보는 것도 좋을 듯하다.
다른 분들처럼 본문에 R 코드를 삽입할까 했는데 코드가 너무 간단해 생략...
2017년 3월 22일 수요일
멀티팩터모델 조합 Composite vs. Integrated
최근 페이스북이나 스넥에 일반인들의 팩터 인베스팅에 대한 글이 자주 올라온다. 너무나 쉽게 몇십퍼센트의 수익률을 올릴 수 있다고 광고해서 개인들은 현혹하는 측면이 없지 않으나(전략의 robustness에 대한 언급이 없다. 아마 글을 쓰는 저자 스스로도 관련된 지식이 없을 것이다. 실제 팩터인베스팅으로 운용을 상당 기간 해왔다면 백테스팅처럼 되지 않는다는 것을 분명 느낄 것이다. 특히 최근 몇년간은..) 개인들에게 퀀트 운용을 널리 알렸다는 것은 바람직한 것 같다.
개인적으로 팩터 연구를 지난 몇 년간 해오면서 멀티팩터 운용시 팩터들을 어떻게 조합할 것인가에는 크게 시간을 쏟지 않았다. 그보다 무언가 알파가 나올 것 같은 개별 팩터를 찾는데 대부분의 시간을 쏟았고 역시나 그런 팩터들은 특정기간에 알파를 내다 소멸되다를 반복한다. 지금은 장기간 robust하게 성과를 내는 팩터들(주로 이런 팩터는 이미 널리 알려진 것들이다)을 잘 조합하는게 정답이 아닌가 싶다. 물론 팩터들의 로테이션에도 관심을 가지고 딥러닝을 응용시키고자 하고 있으나 그 유용성에 대해 AQR의 Asness 아저씨는 최근에도 부정적인 의견을 내놓으셨다..(Factor Timing is Hard)
팩터를 조합하는 방법은 개별 팩터별로 주식을 뽑아 섞는 Composite, 혹은 Portfolio Blend 방법과 개별 팩터 스코어를 모두 더해서 한번에 주식을 뽑는 Integrated, 혹은 Signal Blend 방법으로 나뉜다. 두 방법 모두 지지자들이 있는데 전자는 간단하고 직관적인 반면 두 팩터간의 상호 작용을 고려하지 않아 비효율적이라는 비판을 받는다. 철인3종 경기의 대표를 뽑는데 수영, 육상, 싸이클을 각각 잘하는 선수를 뽑아 선발한다고 비유하면 될까.
해당 논란에 대해 작년말 골드만삭스의 액티브베타 에퀴티 스트레티지 팀(트렌디한 이름이군..)이 다음의 논문을 냈다. Constructing Long-Only Multi-Factor Strategies: Portfolio Blending versus Signal Blending
결론은 포트폴리오의 factor exposure 정도에 따라 선호도가 달라진다.
개인적으로 팩터 연구를 지난 몇 년간 해오면서 멀티팩터 운용시 팩터들을 어떻게 조합할 것인가에는 크게 시간을 쏟지 않았다. 그보다 무언가 알파가 나올 것 같은 개별 팩터를 찾는데 대부분의 시간을 쏟았고 역시나 그런 팩터들은 특정기간에 알파를 내다 소멸되다를 반복한다. 지금은 장기간 robust하게 성과를 내는 팩터들(주로 이런 팩터는 이미 널리 알려진 것들이다)을 잘 조합하는게 정답이 아닌가 싶다. 물론 팩터들의 로테이션에도 관심을 가지고 딥러닝을 응용시키고자 하고 있으나 그 유용성에 대해 AQR의 Asness 아저씨는 최근에도 부정적인 의견을 내놓으셨다..(Factor Timing is Hard)
팩터를 조합하는 방법은 개별 팩터별로 주식을 뽑아 섞는 Composite, 혹은 Portfolio Blend 방법과 개별 팩터 스코어를 모두 더해서 한번에 주식을 뽑는 Integrated, 혹은 Signal Blend 방법으로 나뉜다. 두 방법 모두 지지자들이 있는데 전자는 간단하고 직관적인 반면 두 팩터간의 상호 작용을 고려하지 않아 비효율적이라는 비판을 받는다. 철인3종 경기의 대표를 뽑는데 수영, 육상, 싸이클을 각각 잘하는 선수를 뽑아 선발한다고 비유하면 될까.
해당 논란에 대해 작년말 골드만삭스의 액티브베타 에퀴티 스트레티지 팀(트렌디한 이름이군..)이 다음의 논문을 냈다. Constructing Long-Only Multi-Factor Strategies: Portfolio Blending versus Signal Blending
결론은 포트폴리오의 factor exposure 정도에 따라 선호도가 달라진다.
위 그림에서 3번이 Composite 에서 투자하는 부분, 2번이 Integrated 에서 투자하는 영역이다. 일반적으로 기대하는 것과는 다르게 의외로 3번의 액티브 리턴이 2번보다 우월하다. 다만 그림에서 보듯이 Factor exposure가 커질수록(팩터가 강한 소수 종목에 집중할 수록) 2번 영역이 우상향하면서 Integrated 성과가 우월해진다. 즉 얼만큼 집중투자를 하느냐에 따라서 선호도가 다르다. 이렇게 한 가지 그림으로 직관적으로 이해시키는 대가들에 감탄할 따름이다.
사실 물론 1번에만 투자하는게 최고다. 러셀에서 1번처럼 개별 팩터의 exposure를 최대화 시키는 방법론을 설명한 문서를 봤는데 개인적으로는 그게 가장 우수하지 않나 싶다. 일반일들도 퀀트 인베스팅을 많이 하는만큼 edge를 내기 위해 이런 차별화 연구를 계속 진행해야겠다.
2017년 3월 8일 수요일
Volatility Drag - 레버리지 ETF 투자가 수익이 낮은 이유
삼성증권 김동영 위원님이 무려 테일러 급수가 포함된 리포트를 내셨다. 이로써 아무도 퀀트 리포는 보지 않는다는 사실이 분명해졌다..ㅎㅎ
일반적으로 레버리지 상품이 장기투자에 적합하지 않다고는 알고 있지만 이유를 확실히 대지 못하는데 본 리포트에서는 변동성이 누적 복리 수익률(기하평균)을 갉아먹기 때문이라 설명한다.
흔히 수익률이 하락할 때 효과가 상승보다 크니까 레버리지가 안좋다고 생각하지만 volatility drag 혹은 volatility drain 효과 때문에 지속적으로 상승하는 자산이라도 상승률의 변동성이 크면 레버리지 상품의 수익률을 하락하게 된다. 흔히 low vol effect라 불리는 anomaly에도 이런 효과가 포함된 것으로 판단된다.
리포트 후반 이런 효과 때문에 디레버리지 상품의 가능성을 언급하셨는데 비트코인을 이러한 방식으로 개발하면 알파가 나올 수 있을 것 같다. 뭐 비트코인은 현재 심사를 앞두고 있는 ETF 부터 통과해야겠지만...
일반적으로 레버리지 상품이 장기투자에 적합하지 않다고는 알고 있지만 이유를 확실히 대지 못하는데 본 리포트에서는 변동성이 누적 복리 수익률(기하평균)을 갉아먹기 때문이라 설명한다.
흔히 수익률이 하락할 때 효과가 상승보다 크니까 레버리지가 안좋다고 생각하지만 volatility drag 혹은 volatility drain 효과 때문에 지속적으로 상승하는 자산이라도 상승률의 변동성이 크면 레버리지 상품의 수익률을 하락하게 된다. 흔히 low vol effect라 불리는 anomaly에도 이런 효과가 포함된 것으로 판단된다.
리포트 후반 이런 효과 때문에 디레버리지 상품의 가능성을 언급하셨는데 비트코인을 이러한 방식으로 개발하면 알파가 나올 수 있을 것 같다. 뭐 비트코인은 현재 심사를 앞두고 있는 ETF 부터 통과해야겠지만...
2017년 3월 7일 화요일
잔고를 자주 확인하지 말자!
대다수의 투자자들은 항상 내 포트폴리오가 언더퍼폼 한다고 느낀다. 물론 매일 청산을 하는 단기 투자자는 그 느낌이 실제 투자성과이지만 장기적으로 수익을 내는 포트폴리오를 가지고 있는 투자자 조차 그런 느낌을 받고 실제 성과가 나기 전에 포트를 교체하는 것이 문제가 된다.
이는 개인이 수익과 손실을 바라보는 관점이 다르기 때문이다. 대다수의 투자자는 손실이 발생할 때의 아픔이 수익을 냈을 때의 기쁨보다 크다. 전문가도 예외가 아니라 평소 멘탈이 강하다고 생각했던 매니저분들이 계좌가 하락할 때 크게 낙심하는 것을 종종 보게 된다. 학계에서는 이를 prospect theory 라고 부른다. 금융의 영역을 떠나 일상 생활에서도 사람들은 주로 절대적인 자신의 상황에 비관하고 불행해하지만 남과 비교해 상대적으로 나을 때 행복을 느낀다는 점을 보면 맞는 이론인 듯 하다.
제목부터 강렬한(A Watched Portfolio Never Performs) Longboard의 최근 글에서는 다음 그래프로 이러한 현상을 잘 나타냈다.
실제 수익률은 위의 파란 그래프를 따라가지만 성과를 확인하는 주기에 따라 투자자들이 체감하는 수익은 아래처럼 감소하게 된다. 대다수의 투자자가 그러하듯 매일 계좌를 확인하면 장기간 투자에도 난 항상 손실이야 하고 느끼는.. Newfound는 팩터별로 상대 성과도 이런 효과가 있다는 포스팅을 했다.
이런걸 보면 매일 관련종목 뉴스와 공시를 크롤링해서 메신저로 보내주고 수익률을 체크하는 것이 잘하고 있나 생각이 든다. 고전적 퀀트모델이든 알고리즘 트레이딩이든 딥러닝을 적용하든 모델을 잘 만들어 주기적으로 리밸런싱만 해주는 투자방법이 옳다는 확신도 들고. 액티브가 됐든 패시브가 됐든 결국 이상적인 전략은 꾸준히 투자전략을 유지할 수 있어야 한다.
이는 개인이 수익과 손실을 바라보는 관점이 다르기 때문이다. 대다수의 투자자는 손실이 발생할 때의 아픔이 수익을 냈을 때의 기쁨보다 크다. 전문가도 예외가 아니라 평소 멘탈이 강하다고 생각했던 매니저분들이 계좌가 하락할 때 크게 낙심하는 것을 종종 보게 된다. 학계에서는 이를 prospect theory 라고 부른다. 금융의 영역을 떠나 일상 생활에서도 사람들은 주로 절대적인 자신의 상황에 비관하고 불행해하지만 남과 비교해 상대적으로 나을 때 행복을 느낀다는 점을 보면 맞는 이론인 듯 하다.
제목부터 강렬한(A Watched Portfolio Never Performs) Longboard의 최근 글에서는 다음 그래프로 이러한 현상을 잘 나타냈다.
실제 수익률은 위의 파란 그래프를 따라가지만 성과를 확인하는 주기에 따라 투자자들이 체감하는 수익은 아래처럼 감소하게 된다. 대다수의 투자자가 그러하듯 매일 계좌를 확인하면 장기간 투자에도 난 항상 손실이야 하고 느끼는.. Newfound는 팩터별로 상대 성과도 이런 효과가 있다는 포스팅을 했다.
이런걸 보면 매일 관련종목 뉴스와 공시를 크롤링해서 메신저로 보내주고 수익률을 체크하는 것이 잘하고 있나 생각이 든다. 고전적 퀀트모델이든 알고리즘 트레이딩이든 딥러닝을 적용하든 모델을 잘 만들어 주기적으로 리밸런싱만 해주는 투자방법이 옳다는 확신도 들고. 액티브가 됐든 패시브가 됐든 결국 이상적인 전략은 꾸준히 투자전략을 유지할 수 있어야 한다.
2017년 2월 16일 목요일
Decomposing Equity Returns
매일 퀀트 리서치를 하고 관련 자료를 읽지만 그걸 블로그 등으로 남기는 것은 꽤나 성가신 일이다. 새삼 블로그로 유명한 분들이 대단해 보인다..
최근 인상깊게 본 리서치는 newfound의 anatomy of a bull market
주식시장은 상승, 하락장을 번갈아가며 장기간 우상향하지만 개별 상승, 하락장을 분석하면 그 특성이 달라진다. 그래서 주식에 투자하면 미국 기준 장기 평균 대략 9-10% 수익을 기대할 수 있지만 실제 투자자들이 얻는 수익은 거의 저 평균과 상당히 차이가 있다. 대부분 상승장에서는 10%초과, 하락장에서는 20%이상 하락.
newfound는 상승장에서 수익이 어디서 나오는 지 분석했다. 70-80년대는 인플레이션, 2009년부터 지금까지 이어져온 상승장에서는 밸류에이션 상승이 주식 수익률에 크게 기여했다.
밸류에이션으로 오른 시장이라니 가장 취약한게 아닌가 싶지만 다행히도 밸류에이션을 과거 하락장에서 하락한 밸류의 회복과 새로운 밸류에이션 확대로 나눠서 봤을 때 이번 상승장은 밸류에이션 회복 효과가 크다. 뭐 그럼에도 어닝이 올라오는 것 대비 밸류가 빨리 상승한다는 것은 변함이 없지만..
아래는 10년기준으로 시장 수익의 원천을 나타낸 그래프. 재밌는건 윈도우 기간을 어떻게 잡느냐에 따라 원천이 달라지는데 짧을 때는(3년) 밸류에이션이 가장 큰 역할을 하지만 30년으로 길어지면 밸류에이션은 거의 의미가 없어진다. 그런데 3년도 길지 않나요...?
2017년 1월 28일 토요일
[책 리뷰] 딥러닝 첫걸음
얼마 전 한빛미디어에서 IT 전문 서평단 <나도 리뷰어>를 모집했고 감사하게도 당첨이 돼 책을 배송받았다.
딥러닝을 실무에 적용시키려고 공부중인 나에게 딱 맞는 책이 아닐 수 없다.(텐서플로우 첫걸음, 밑바닥부터 시작하는 딥러닝도 보내주시면 안되나요...?)
책을 받자마자 앉은 자리에서 한 번에 책을 다 읽었다. 그만큼 부담스럽지 않고 읽기 쉽게 술술 쓰여진 책이다. 모두의 연구소 스터디의 산출물이라 그런지 딥러닝을 공부하는 입장에서 이해가 안되는 부분들을 쉽게 풀어써 주었다.
텐서플로우와 같은 라이브러리를 이용하는 사용자라 할지라도 역전파(backpropagation)알고리즘과 cross entropy의 원리를 이해하는 것은 중요하다. 실제 문제를 적용할 때 어떻게 initial weight을 설정하고 어떤 최적화 알고리즘을 쓰는게 효과적일지는 이런 기본 원리를 알아야 문제에 맞게 적용할 수 있기 때문이다. 보통 블로그나 메뉴얼들이 기본 원리보다는 바로 코드를 적용하기에 바쁜데 책을 통해 그런 갭을 줄일 수 있었다. fully connected network를 공부하다 처음 접하면 햇갈리는 CNN도 매우 직관적으로 잘 설명해 주었다.
다만 다소 아쉬운 점은 책의 서문에서 책의 독자를 실제로 딥러닝을 연구하는 사람과 딥러닝에 관심 있는 일반인이라 밝혔는데 실제로는 그 중간쯤에 위치한 사람에게 알맞은 책인듯 하다. 첫걸음이긴 하지만 RNN을 다루지 않은 점도 아쉽다. 개인적으로 읽는데 문제는 없었지만 matlab 대신 python 코드가 독자들에게 더 익숙하리라 생각된다.
김성훈 교수님의 강의나 다른 기초 자료들을 통해 딥러닝을 맛본 사람이 체계적으로 기초를 공부해보고 싶다면 추천한다. 첫걸음의 후속편도 비슷한 형식으로 나와줬으면 좋겠다.
2017년 1월 19일 목요일
보유기간이 베타에 미치는 영향
이제 한국시간으로 내일 새벽이면 트럼프가 미국의 대통령이 된다.
트럼프 당선 이후 금융시장 전망이 분분한데(그 중 일부는 전망보단 마케팅에 가깝고..)
재정지출이 많아지고 인프라 투자가 늘면 씨클리컬을 사야하고 베타를 높여야 하고 뭐 이런 이야기를 종종한다.
재정지출이 많아지고 인프라 투자가 늘면 씨클리컬을 사야하고 베타를 높여야 하고 뭐 이런 이야기를 종종한다.
하지만 증권사 리서치에서조차 베타란게 보유기간에 따라 크게 달라진다는 것을 깨닫고 있는지 의문이다. 베타를 측정하는 윈도우 사이즈에 따라 주식의 베타는 크게 달라진다. 주식의 속성(size, value, momentum, liquidity)에 따라 기간별 베타의 민감도도 달라지게 된다.
Avraham Kamara, Robert Korajczyk, Xiaoxia Lou, Ronnie Sadka의 논문 "Short-Horizon Beta or Long-Horizon Alpha"에 따르면 시장 베타는 1달 구간에서는 작지만 2개월에서 13개월 구간에서 급격히 오르고 23-25개월에는 크게 하락한다. 이런 효과는 주식의 사이즈에도 크게 영향을 받는데 아래그림처럼 소형주일수록 기간에 따라 베타의 변동이 심하다.
논문에는 스타일별 프리미엄의 기간 구조도 나와있는데 liquidity는 단기에서 프리미엄이 가장 크고 market 베타는 6개월에서 1년, value 프리미엄은 장기에서 가장 크다. 결국 risk factor가 분산 투자로 좋은 수단임이 이를 통해서도 알 수 있다.
직관적으로도 가치투자는 장기, 모멘텀은 단기라고 생각할 수 있는데 투자스타일에 따라 포트폴리오의 특성을 제대로 알고 있어야 온전히 나의 리스크-리턴 프로파일을 이해할 수 있다.
알고리즘 트레이딩 추천 책 리스트
퀀트, 혹은 알고리즘 트레이딩을 시작한다면 아무래도 국내보단 해외 블로그, 서적을 보는게 낫다. 자산 배분과 관련된 퀀트 접근이라면 best practice 가 논문이나 운용사들의 블로그, white paper에 나와있으므로 비교적 빠른 시간에 익힐 수 있다.
다만 알고리즘 트레이딩은 시장경험, 프로그래밍 등 종합적인 능력이 요구되므로 시간이 오래 걸린다. 더구나 시장에 실제 워킹하는 전략은 대부분 공개가 안된다. 위의 자산 배분전략과 달리 전략의 capa가 작기 때문에 시장에 공개되는 순간 알파가 사라지는게 큰 이유일 것이다.
결국 기초적인 수준의 알고리즘을 직접 구현해보면서 본인의 전략을 하나하나 테스트해보는 수 밖에 없다. 다음 사이트에서 입문하는데 유용한 책들이 소개돼있으니 참고하시길.
essential-books-algorithmic-trading
다만 알고리즘 트레이딩은 시장경험, 프로그래밍 등 종합적인 능력이 요구되므로 시간이 오래 걸린다. 더구나 시장에 실제 워킹하는 전략은 대부분 공개가 안된다. 위의 자산 배분전략과 달리 전략의 capa가 작기 때문에 시장에 공개되는 순간 알파가 사라지는게 큰 이유일 것이다.
결국 기초적인 수준의 알고리즘을 직접 구현해보면서 본인의 전략을 하나하나 테스트해보는 수 밖에 없다. 다음 사이트에서 입문하는데 유용한 책들이 소개돼있으니 참고하시길.
essential-books-algorithmic-trading
2017년 1월 4일 수요일
Testing Strategies' Robustness
전통적인 퀀트 방식이 됐든 알고리즘 트레이딩이 됐든 전략의 robustness를 측정하는 것은 매우 중요하다. in-sample 기간에 훌륭한 성과를 내는 전략들이 실제로는 부진한 결과를 내는 일이 빈번히 일어나는데 전략의 견고함에 대한 확신이 있어야 일정기간 부진한 성과를 내도 자신감을 가지고 전략을 끌고 나갈 수 있다.
기본적으로 전략이 견고해지려면 오랜 기간의 데이터를 사용해야 한다. 다만 이 역시 주의해야 하는게 자산의 특성, 마켓의 regime이 바뀌면 오히려 과거 데이터가 독이 될 수 있다.
대표적으로 gold의 diversification effect를 꼽을 수 있는데 기본적인 GEM(Global Equities Momentum)전략에 gold를 섞으면 연 수익률이 18%에서 21%로 상승한다. 하지만 대부분의 효과는 1970년대 상승에 기인한다. gold를 포트폴리오 안정화를 위해 편입해야한다고 많이들 이야기 하지만 오히려 최근들어 gold와 전통적 자산간의 상관관계는 높아지고 개별 수익률도 매력적이지 않아 큰 효과가 없다. 자세한 내용은 Antonacci 아저씨의 블로그 참고
(http://www.dualmomentum.net/2017/01/are-commodities-still-good-portfolio.html)
이를 해결하려면 여러 구간을 나눠서 테스트해야 한다. Meb Faber아저씨는 “Relative Strength Strategies” paper에서 미국 주식의 모멘텀을 10년씩 나눠서 아웃퍼포먼스를 측정했다.
이정도면 일단은 안심하고 사용할 수 있어 보인다. 추가적으로 견고함을 체크하고 싶다면 위에서 언급한 market regime별로(상승장, 하락장, 보합장 등) 검증을 해볼 수 있다.
Rule-based 전략이라면 파라미터들의 sensitivity를 살펴보는 것도 좋다. Gogi Grewal 아저씨가 모멘텀 전략의 look back period와 rebalancing 주기로 이러한 분석을 해놓았다.
출처 : www.sharpereturns.ca
look back period는 200일 이전 구간에서 지나치게 거래가 많이 일어나고 수익률의 변동성도 심해 250일-350일 구간으로 설정하는게 괜찮아 보인다. 모멘텀 전략의 수익률 측정을 1년으로 하는 게 나쁘지 않다는 결론. 밑에 리밸런싱 주기는 20일, 약 1달정도가 바람직해보인다.
머신러닝, 딥러닝의 영역에서는 필연적으로 오버피팅이 일어나므로 전략의 robustness에 대해 더욱 주의해야 하는데 추후에 관련 테크닉을 다뤄보겠다.
2017년 1월 2일 월요일
Factor Correlation
오늘자 삼성증권 김동영 의원님 1월 팩터 포트폴리오 리포트에서 팩터간의 상관관계를 언급한 부분이 좋아 남겨둔다.
1. P/B 팩터와 ROE 팩터의 상관계수 -0.7 기록. 고 ROE 종목일수록 P/B가 높은 경향이 있기 때문. 따라서 퀄리티 팩터인 ROE팩터가 실제로는 고밸류 종목을 지칭할 가능성이 높음
2. 이익모멘텀 팩터간의 상관계수 높음. 이익모멘텀 팩터와 가격모멘텀 팩터(특히 과거수익률 (3m))와의 상관관계도 높은 편
3. Growth 내에서 '순이익/영업이익 증가율 (직전분기, yoy)' 팩터와 'EPS/영업이익 증가율 (FY1)' 팩터 간의 상관계수는 생각보다 크지않음(0.3~0.4 사이). 분기실적 증가율 (직전분기, yoy) 팩터는 이익모멘텀 팩터군과의 상관계수가 약간 더 높음
4. 과거수익률 (1m) 팩터와 기관순매수 강도 (1m) 팩터의 상관계수 0.66 기록. 과거수익률 (1m) 팩터와 목표가 괴리율 (1개월 컨센) 팩터의 상관계수 -0.71 기록. 이는, 종목의 주가 상승 현상이 기관 순매수와 같이 진행되며, 이 때 목표가 괴리율은 축소되는 현상이 같이
진행된다고 볼 수 있음 (목표가 조정이 후행적인데 비해 주가 상승이 빠르면, 괴리율이 축소됨)
5. 변동성 (60일) 팩터와 시가총액 팩터의 상관계수는 -0.41 기록. 저변동성 종목-대형주, 고변동성 종목-소형주의 연관성이 일정 부분 존재함
6. 목표가 변화율 (1m) 팩터와 목표가 괴리율 (1개월컨센) 팩터의 상관계수는 -0.6 기록. 목표가 수정의 후행성 때문에 목표가 변화율은 가격모멘텀 팩터의 특징을 지니며, 목표가 괴리율은 낙폭과대 팩터의 특징을 지니게 됨
1. P/B 팩터와 ROE 팩터의 상관계수 -0.7 기록. 고 ROE 종목일수록 P/B가 높은 경향이 있기 때문. 따라서 퀄리티 팩터인 ROE팩터가 실제로는 고밸류 종목을 지칭할 가능성이 높음
2. 이익모멘텀 팩터간의 상관계수 높음. 이익모멘텀 팩터와 가격모멘텀 팩터(특히 과거수익률 (3m))와의 상관관계도 높은 편
3. Growth 내에서 '순이익/영업이익 증가율 (직전분기, yoy)' 팩터와 'EPS/영업이익 증가율 (FY1)' 팩터 간의 상관계수는 생각보다 크지않음(0.3~0.4 사이). 분기실적 증가율 (직전분기, yoy) 팩터는 이익모멘텀 팩터군과의 상관계수가 약간 더 높음
4. 과거수익률 (1m) 팩터와 기관순매수 강도 (1m) 팩터의 상관계수 0.66 기록. 과거수익률 (1m) 팩터와 목표가 괴리율 (1개월 컨센) 팩터의 상관계수 -0.71 기록. 이는, 종목의 주가 상승 현상이 기관 순매수와 같이 진행되며, 이 때 목표가 괴리율은 축소되는 현상이 같이
진행된다고 볼 수 있음 (목표가 조정이 후행적인데 비해 주가 상승이 빠르면, 괴리율이 축소됨)
5. 변동성 (60일) 팩터와 시가총액 팩터의 상관계수는 -0.41 기록. 저변동성 종목-대형주, 고변동성 종목-소형주의 연관성이 일정 부분 존재함
6. 목표가 변화율 (1m) 팩터와 목표가 괴리율 (1개월컨센) 팩터의 상관계수는 -0.6 기록. 목표가 수정의 후행성 때문에 목표가 변화율은 가격모멘텀 팩터의 특징을 지니며, 목표가 괴리율은 낙폭과대 팩터의 특징을 지니게 됨
2016년 12월 20일 화요일
Factor Rotation의 유용성...무용론?
퀀트 블로그인데 퀀트 글이 없어 급히 하나라도 적어봄.
16년 기준 좋았던 팩터를 비교하면
15년 기준 대형주 성과과 좋았던 팩터와

16년 기준 좋았던 팩터를 비교하면

확연히 시장의 색깔이 달라진 것을 볼 수 있다. 올해는 가치주 만세, 모멘텀 몰락으로 정리되는 한 해인듯.
이처럼 팩터들의 성과가 달라지니 팩터를 로테이션하며 초과수익을 내겠다는 시도들이 많은데 Research Affiliates 와 AQR 이 대립된 의견을 냈다.
Research Affiliates의 Rob 아저씨는 과거에 비해 밸류가 저평가 돼있는 팩터를 사면 된다고 주장하였으나 AQR의 Cliff아저씨는 밸류에이션은 long term guidance 이므로 모멘텀 팩터 처럼 자주 변하는 팩터에는 적용할 수 없다고 주장하셨다.
Newfound가 모멘텀(12개월-1개월)전략으로 미국시장 대상 팩터로테이션을 검증한 결과는 팩터 동일가중보다 연간 1.32% 아웃퍼폼 할 수 있지만 그거 얻으려고 골치아픈 비용을 생각하면 무의미 하다는 결론..
(http://www.thinknewfound.com/wp-content/uploads/2016/04/Market-Timing-Factor-Premiums.pdf)
개인적으로는 단순 모멘텀 전략 대신 다른 방법(시계열 정보를 활용한 딥러닝?)을 쓰면 팩터 웨이트 조절로 유의한 성과를 낼 수 있지 않을까 싶지만 역시 한국 시장엔 노이즈가 많아 잘 할 수 있을지 자신은 없다...
2016년 11월 13일 일요일
윈도우에서 Theano 설치하기
파이썬은 아나콘다에서 쉽게 받아 설치할 수 있지만 Theano 에서는 파이썬 3.5가 지원되지 않아 가상환경을 만들어줘야 한다.
먼저 컴파일러인 tdm-gcc 를 http://tdm-gcc.tdragon.net/ 에서 자신에게 맞는 버전을 찾아 설치한 뒤 커맨드 라인에서 conda create -n theano_env python=3.4 라고 입력하면 가상환경이 만들어진다. 이후 activate theano_env 를 입력하면 가상환경이 시작된다.
다음은 thano에 필요한 패키지를 conda install mingw libpython numpy scipy 로 설치하고 pip install theano로 theano까지 설치하면 완료!
단 왠지 쥬피터 노트북에서 3.4버전(theano_env)가 보이지 않는 경우가 있는데 여러가지 삽질 후 쥬피터 노트북을 그냥 한번 더 설치해줘서 해결했음.. 혹시 같은 문제가 있는 분들은 conda install jupyter 로 쥬피터를 한번 더 설치하고 시도해보시길.
2016년 11월 1일 화요일
RSelenium 오류
R로 매시간 관심종목의 뉴스와 공시내용을 크롤링해 텔레그램으로 보내주는데
지난 주말부터 갑자기 안되고 있었다.
(사실 안되고 있다는 사실 조차 모르고 있다 오늘 보유종목 LO 공시가 오지 않아 알게된..;)
R code를 보니 RSelenium에서 startserver()를 하는데 크롬이 제대로 열리지 않던 것.
대략 오류메세지가 다음처럼 뜬다.
Warning message:
startServer is deprecated.
Users in future can find the function in file.path(find.package("RSelenium"), "example/serverUtils").
The sourcing/starting of a Selenium Server is a users responsiblity.
Options include manually starting a server see vignette("RSelenium-basics", package = "RSelenium")
and running a docker container see vignette("RSelenium-docker", package = "RSelenium")
구글링해보니 윈도우 업데이트 때문에 그렇다는 말도 있고 파이어폭스 버전에서 그렇다는 얘기도 있고..(근데 난 크롬을 쓰는데?)
일단 Selenium을 지우고 다시 최신으로 깔아봐도 오류는 그대로.
(예전에 Selenium 설치가 윈도우에서는 잘 안돼서 어떤 꼼수를 썼던 것 같은데 그게 기억나지 않아 이젠 지금처럼 블로그에 남기려함..)
파이어폭스 버전때문에 안되는 사람들은 드라이버를 다운받아 인자로 넘겨주기에 Selenium 사이트에서 최신버전 크롬 드라이버를 다운받고 다음처럼 startserver()에 넘겨줬더니 일단 성공으로 보임.
selServ <- RSelenium::startServer(javaargs = c('-Dwebdriver.chrome.driver="C:\\Windows\\chromedriver.exe"'))
워닝 메세지는 그래도 나오나 크롬은 뜬다. 휴.
지난 주말부터 갑자기 안되고 있었다.
(사실 안되고 있다는 사실 조차 모르고 있다 오늘 보유종목 LO 공시가 오지 않아 알게된..;)
R code를 보니 RSelenium에서 startserver()를 하는데 크롬이 제대로 열리지 않던 것.
대략 오류메세지가 다음처럼 뜬다.
Warning message:
startServer is deprecated.
Users in future can find the function in file.path(find.package("RSelenium"), "example/serverUtils").
The sourcing/starting of a Selenium Server is a users responsiblity.
Options include manually starting a server see vignette("RSelenium-basics", package = "RSelenium")
and running a docker container see vignette("RSelenium-docker", package = "RSelenium")
구글링해보니 윈도우 업데이트 때문에 그렇다는 말도 있고 파이어폭스 버전에서 그렇다는 얘기도 있고..(근데 난 크롬을 쓰는데?)
일단 Selenium을 지우고 다시 최신으로 깔아봐도 오류는 그대로.
(예전에 Selenium 설치가 윈도우에서는 잘 안돼서 어떤 꼼수를 썼던 것 같은데 그게 기억나지 않아 이젠 지금처럼 블로그에 남기려함..)
파이어폭스 버전때문에 안되는 사람들은 드라이버를 다운받아 인자로 넘겨주기에 Selenium 사이트에서 최신버전 크롬 드라이버를 다운받고 다음처럼 startserver()에 넘겨줬더니 일단 성공으로 보임.
selServ <- RSelenium::startServer(javaargs = c('-Dwebdriver.chrome.driver="C:\\Windows\\chromedriver.exe"'))
워닝 메세지는 그래도 나오나 크롬은 뜬다. 휴.
피드 구독하기:
글 (Atom)







