반응형

일전에 주식 자동 매매 프로그램 구현을 도전하다가 좌절하고 한동안 허황된 꿈을 접어두고 있던 직장인입니다.

그러다 이번에는 할 수 있다! #퀀트투자 라는 책을 보고 감명을 받아서 자동 종목 선정 프로그램 구현을 시도해봤습니다.

 

이번에도 퇴근 후, 주말에 부인님의 눈치밥을 먹어가면서 어찌어찌 프로그램을 짜봤는데...

결국에는 또 삽질인 것 같습니다.

삽질한 노력이 안타까워 썰을 한 번 풀어봅니다.

 

이번에는 #파이썬으로 작성했고, 파이썬의 #OpenDartReader 를 활용해보려고 했으나 그냥 #Dart 의 '재무정보 일괄 다운로드'를 활용했습니다.

 

최초 전략은 다음과 같았습니다.

 

파이썬에서 Dart API를 이용해서 코스피 상장 기업들의 재무정보를 받아오고 이를 계량 수치화하여 최적의 주식을 선정한다.

 

그런데 Dart API가 생각보다 불안정한 부분도 많고 무엇보다 데이터 요청 횟수의 제한이 있어서 수작업으로 재무정보를 다운로드 받았습니다. (2016 ~ 2019)

https://opendart.fss.or.kr/disclosureinfo/fnltt/dwld/main.do

그리고 어떤 지표를 사용할 것인가, 어떻게 최적의 주식을 선택할 것인가는

강환국님이 쓰신 '할수있다! 퀀트투자'라는 도서의 '밸류 + 퀄리티 + 모멘텀' 콤보를 사용하였습니다.

 

분석에 활용한 데이터는 'PER', 'PBR', 'PCR', 'PSR', 'NEW_F', 'GPA', 'MOMENTUM' 이었고 이를 위해서

Dart API의 재무정보 다운로드와 파이썬의 #pykrx 모듈을 사용하여 raw 데이터를 수집할 수 있었습니다.

 

이전에 먼저 고난의 길을 걸으셨던 분들처럼 저도 데이터 수집에 상당히 애를 먹었는데,

https://www.clien.net/service/board/use/14494799CLIEN

최대한 간소하게 해보자(데이터 없는 기업은 버려!)는 취지로 러프하게 데이터를 수집했더니

2016년도에는 390여개의 기업 그 이후로 점차 나아져서 2019년 3분기에는 495개 기업의 데이터를 수집할 수 있었습니다.

(2019년을 기준으로 코스닥 시장에 약 799개의 기업이 등록되어 있다고 하니 50% 정도의 기업에서만 데이터를 수집할 수 있었습니다.)

 

각 지표는 다음과 같이 산출하였습니다.

PER = pykrx의 get_market_fundamental_by_date 함수 이용

PBR = pykrx의 get_market_fundamental_by_date 함수 이용 

PCR = 시가총액(pykrx의 get_market_cap_by_date) / 영업활동 현금흐름

PSR = 시가총액(pykrx의 get_market_cap_by_date)  / 매출액

NEW_F = 당기순이익, 영업활동 현금흐름이 +인가?

GPA = 매출총이익 / 자산총계

MOMENTUM = 재무정보 조회일 기준 1년 전 주가, 재무정보 조회일 주가의 CAGR

CAGR = 재무정보 조회일 주가, 재무정보 조회일 기준 1년 후 주가의 CAGR

 

이렇게 지표를 선정하고 2016년 1/4분기부터 2019년 4/4분기까지 데이터를 읽어와서 각 분기데이터 별로 순위를 매겼습니다.(rank)

그리고 각 지표 별 순위를 다 더하고 그 순위를 합계한 총합을 또 순위를 내봤습니다!

 

그러니까 정리하면 각 분기의 기업별 재무지표를 바탕으로 지표 별 순위를 매기고 지표 별 순위를 합쳐서 통합 순위를 매겼고,

이를 1년 후 CAGR과 얼마나 상관관계가 있는지 비교해봤습니다.

 

그랬더니 통계학적으로 유의미한 결과가 안 나오더군요.

그래서 혹시나 하는 마음에 머신러닝을 이용해보자 하고 Random Forest를 이용하여 예측을 돌려봤습니다....

 

그런데.. 정말.... 세상살이가 생각대로 되는 것이 하나도 없더군요.

어마어마한 주식시장의 진리를 발견하게 될 줄 알았는데, 그냥 시간만 헛되이 보낸 것 같습니다.

주식 매매 자동화의 꿈은 요원한 것 같네요. ㅜㅜ

반응형
반응형

원래 아이허브에서 #유산균 을 구매해서 먹었었음.

https://iherb.co/6PeXZsP1

이 제품인데, 1000억이라는 어마어마한 균수에 균종, 품질인증 등이 우수해서 구매했었음.

 

그러다가 유튜브에서 이런 영상을 보게 되었는데,

https://youtu.be/zXdb6CaURmA

리틀약사라는 분이 올리신 영상인데 해외 수입 유산균의 경우

유통중간에 균수가 줄어들거나, 국내와 균 측정법 등의 차이로 실제 균수가 줄어들을 수도 있다고 함.

 

생각해보니 비행기나 선박을 통해서 올 때, 컨테이너 박스 안이 꽤 고온 고습일 것 같다는 생각이 들어, 국내에서 판매되는 유산균 제품을 구매해보려고 알아보게 되었음.

 

여러가지 사이트 중에 다음의 블로그 정보가 제일 전문적이고 신뢰가 되었음.

https://ybfarmacista.blog.me/220060157522

 

다만 2014년 게시글이라 그 사이에 추가된 상품들이나 변경된 부분만 체크하면 될 것 같음.

 

그리고 추가로 꼭 봐야할 사이트

https://www.foodsafetykorea.go.kr/portal/fooddanger/testUnfitDom.do?menu_no=2710&menu_grp=MENU_NEW02

식품안전나라 라는 사이트로 식약청에서 운영하는 사이트이고, #프로바이오틱스 균수 미달 제품에 대한 내용임.

검사 이후 개선되었을 수도 있겠지만, 저기에 나온 제품군, 제조사는 일단 거르는 걸로...

 

그리고, #신바이오틱스 라고, 프로바이오틱스와 #프리바이오틱스 (유산균의 먹이)를 합친 제품이 있던데....

왠만한 제품들은 이전부터 유산균의 먹이로 같이 넣어 판매하고 있었음.

 

그래서 결론적으로 #락토500 , #셀티아이 , #일동지큐랩 이 세가지 제품을 염두에 두고 있음.

http://lacto500.com/goods/goods_view.php?goodsNo=1000000039

http://www.cellonix.co.kr/product/product_detail/product_p0114.page

http://www.gqlab.co.kr/

 

가격은 2달치 5~6만원 정도...

 

리틀약사님 처럼 균수 측정 의뢰하기도 어렵고...

생체실험마냥 직접 일일히 먹어보는 수 밖에 없을 듯...

반응형
반응형

#일본 업체에서 #현지전화번호 인증을 요구하는 경우가 있어서 여러가지 검색해본 방법을 공유합니다.

 

1. 휴대폰이 KT일 경우 (미확인)

https://globalroaming.kt.com/product/voice/jp_r2number.asp

 

 

2. 일본 현지 전화 가능 SIM 구매

장점 : 문자 수발신 가능

단점 : 절차 복잡함

 

http://kimtaku.com/japan-mobile-sim/

 

https://scvspace.kr/1026

 

3. #OTO글로벌 어플 사용

장점 : 매우 간편함

단점 : 한달마다 번호가 바뀌는 임시 번호, 일본 현지에서 사용하기 어려움

 

http://otoglobal.co.kr/main.oto?view_id=usage_a<cd=LT0001

 

OTO글로벌 어플을 통해서 일본 현지 전화번호를 착신(수발신)할 수 있습니다.

그런데 문제가... 어플을 설치할 때 전화 인증이 필요하고, SIM이 바뀌어도 재인증이 필요합니다.

(한국에서 전화 인증을 마치고 일본에서 SIM을 갈아끼어도 문제 없다는 말이 있기는 한데, 고객센터에 물어보니 재인증되는 것이 원래 맞다고 하네요..)

 

즉, 일본에가서 SIM을 현지 Data 전용 SIM으로 갈아끼면 전화 인증이 안 되기 때문에 사용할 방법이 없습니다.

한국에서 한국 SIM으로 인증 + 일본 로밍 + 포켓와이파이의 조합이면 재인증이 필요없기 때문에 사용 가능할 것 같지만 확인해보지는 못 했습니다.

 

4. #SmartTalk 사용

장점 : 반영구적인 일본 전화번호 발급

단점 : 조금 복잡함

 

일본의 인터넷 전화번호 (050)를 발급받는 방법입니다.

 

http://webnote.pe.kr/web-note/japan-free-050-ipphone/

 

얼마 전 까지는 잘 되던 방법인 것 같은데, 회원가입하는 과정에 전화인증이 추가가 된 것 같습니다. 해외(비일본) 전화는 인증이 안 되어서... 일본 전화번호를 만들기 위해 일본 전화번호 인증이 필요한 모순이 발생합니다.

 

이 방법을 쓰려면 3번에서 일본 전화번호를 임시로 하나 만들고, 그 번호로 전화인증을 하면 생성이 가능합니다. (한국에서 인증 가능)

반응형

+ Recent posts