본문 바로가기

파이썬으로 종목 스크리너 만들기16

뇌동매매 금지 - 11. S-RIM을 이용한 목표주가 계산해보기 - 4. S-RIM 적정주가를 이용한 스크리닝 필터 만들기 저번 포스팅에서는 1차 스크리닝된 기업목록을 대상으로 S-RIM을 이용한 적정주가를 계산해보았습니다. 이번 포스팅에서는 적정주가를 이용한 필터를 만들어봅니다. 11. S-RIM을 이용한 목표주가 계산해보기 - 4. S-RIM 적정주가를 이용한 스크리닝 필터 만들기 저번 포스팅에서 얻은 결과를 대상으로, 다시 시가총액을 기준으로 하위 3~40%의 소형주들만 추려내어 재무제표를 조회하여 여러 데이터들을 가져옵니다. (저의 이전 포스팅들을 참고해주세요.) 그 이후에 재무제표를 조회하여 얻어오는 데이터들을 기반으로 각종 필터링을 진행하는 데요, S-RIM 을 이용한 적정주가를 도출해낸만큼, 이것을 이용해서 필터를 만들어봅니다. 전체종목을 대상으로 괴리율 계산하기. 괴리율 계산방식에 대해서는, 기존에 참고했던 위.. 2022. 11. 27.
뇌동매매 금지 - 11. S-RIM을 이용한 목표주가 계산해보기 - 3. S-RIM 기업가치로 스크리닝한 기업들에 대해 목표주가 계산하기 저번 포스팅에서는 일부 기업을 제외한 코스피, 코스닥 종목에 대해 S-RIM을 이용한 기업가치를 계산하고, 이것을 별도의 엑셀데이터로 저장하였습니다. 이번 포스팅에서는 기존 스크리너에서 각 종목들에 대해 S-RIM 기업가치를 이용한 적정주가를 계산해봅니다. 11. S-RIM을 이용한 목표주가 계산해보기 - 3. S-RIM 기업가치로 스크리닝한 기업들에 대해 목표주가 계산하기 일단 이전에 크롤링을 통해 기업가치를 계산해놓은 엑셀파일을 다시 읽어들여야합니다. 이 데이터를 어떤 타이밍에 읽어들일 것인지를 판단해야 했는데요, 저는 일단 모든 코스피, 코스닥 종목에 대해 적정주가를 계산해야겠다고 생각했습니다. 저는 시가총액 하위 30~40% 의 종목들을 대상으로 스크리닝을 하는데요, 이 소형주 말고도 대형주에서도.. 2022. 11. 27.
뇌동매매 금지 - 11. S-RIM을 이용한 목표주가 계산해보기 - 2. S-RIM 데이터 크롤링하기 이번 포스팅에서는 S-RIM 데이터를 어떻게 구해볼 것인지, 스크리닝 시에 어떻게 할 것인지를 알아봅니다. 11. S-RIM을 이용한 목표주가 계산해보기 - 2. S-RIM 데이터 크롤링하기 그럼 이제 어떻게 S-RIM 데이터를 구해야할지, 이것은 제가 사용하는 스크리너에서 어떻게 사용할 수 있을지를 생각해야합니다. 사실 계산식은 책에 나와있어서 계산하는 것은 문제가 아닌데, 자본총계(특히 지배주주지분)과 평균 ROE를 구하는게 쉬운일은 아니어보였습니다. 그래서 조금 고민하면서 구글링을 하던 도중에, 아래 위키페이지를 알게 되었습니다. https://wikidocs.net/94787 책을 작성하려고 위키독스를 작성하시는 것 같았지만, 뭔가 멈춰있는 그런 느낌이었습니다...? 이 위키의 저자가 만든 라이브.. 2022. 11. 26.
뇌동매매 금지 - 11. S-RIM을 이용한 목표주가 계산해보기 - 1. S-RIM 개념 알아보기 11. S-RIM을 이용한 목표주가 계산해보기 - 1. S-RIM 개념을 알아보고 S-RIM을 구해보기 요새 사경인 회계사의 "재무제표 모르면 주식투자 절대로 하지마라" 를 읽고 있습니다. 재무제표 공부를 너무 안해놓은 것 같아서, 재무제표의 숫자뿐만 아니라 공시정보들에 대해 어떻게 해석해야할지도 배우기 위해 읽어보고 있습니다... 역시나 내용은 좀 어려운데...ㅎ...ㅎㅎ.. 책 후반부에 적정주가 계산하는 방법들을 이리저리 설명을 해놓고 있고, 그 중에서 절대가치를 이용하여 계산하는 RIM 공식을 조금 변형한, S-RIM 방법을 소개하고 있었습니다. 인터넷을 검색해보니 이미 널리 알려진 방법인 것 같긴 한데... 저는 처음알아서 한 번 정리를 싹해보고, 이것을 제가 가진 스크리너를 이용해서 어떻게 구할.. 2022. 11. 26.
뇌동매매 금지 - 10. Bug fix와 이것저것 추가하기 - 3 새롭게 추가한 데이터들에 대해 검증작업을 진행해봅니다. 추가한 데이터에 대해 검증해보기 PEG PEG는 사실 제공해주는 사이트가 없어서 검증하기가 어려웠습니다. QoQ, YoY 증가율 증가율에 대해서는 네이버의 재무제표를 이용해서 검증해보겠습니다. YoY에 대해서는 네이버증권에서는 전년도 동기 대비 증가율이 아니라 해당연도의 최종 사업보고서 (4분기) 기준으로만 기재되어있어서, 증권플러스의 데이터를 참고했습니다. 캡쳐에는 딱 필요한 정보 이외에는 컬럼 숨기기를 했습니다. QoQ 매출액 영업이익 순이익 YoY QoQ, YoY 모두 증권 정보 제공 서비스들과 일치하는 것을 확인할 수 있습니다. YoY에서는, 과거 4개의 데이터가 모두 빈칸인 것을 확인할 수 있는데, 이것은 당연하게도 비교할 데이터군이 없어서.. 2022. 9. 12.
뇌동매매 금지 - 10. Bug fix와 이것저것 추가하기 - 2 다음으로는 extract.py 에 대해서 버그 수정 및 몇가지 팩터데이터 추가, 코드의 리팩토링을 진행해봅니다. Bug fix __find_financial_indicator() 일단 2분기 사업보고서가 발행될때 즈음해서 조회를 하려고 하니 제대로 조회가 되지 않는다거나, 똑같은 연도를 가진 데이터가 2~3개씩 중복으로 들어가는 것을 확인했습니다. 이것은 재무데이터를 조회할 때, 제무데이터가 없음에도 불구하고 조회를 하려고해서 이슈가 발생했습니다. 원래는 extract.py 파일의 __find_financial_indicator() 메소드 내부에 아래의 코드가 있었는데, 여기서의 pass 를 continue 로 수정합니다. 만들면서 일단 pass로 적어도 놓고 코드를 완성시켰었는데, 이 때는 이슈가 없어.. 2022. 9. 12.
뇌동매매 금지 - 10. Bug fix와 이것저것 추가하기 - 1 이 시리즈를 작성할 때에는 2022년 1분기 사업보고서가 발행되고 나서였습니다. 이후에 조금씩 수정을 하다가, 2분기 사업보고서가 새로 발행되고 나서 제대로 동작하지 않는다는 것을 알게 되어서 수정도 하고, 또 이것저것 추가도 하였습니다. 마침 몇 번인가 잘 안돌아가는 것 같다는 문의메일을 받았기에, 이 참에 수정내용을 좀 더 기재해볼까합니다. 다만 기존의 포스트를 수정하지 않는 것은, 이러한 흐름으로 제작되었다~ 라는 것을 기록으로 남기기 위함입니다. 개별 종목 재무데이터 조회하기 이전 포스트까지 기록했던 것은 시가총액이 일정분위 이하의 데이터만 조회하는 것이었습니다. 따라서 재무제표 데이터 계산을 검증을 위해 하나의 종목만 조회해본다거나, 제가 가진 종목만 조회해보고자할때 이것을 할 수 없는 불편함이.. 2022. 9. 12.
뇌동매매 금지 - 9. 스크리너 제작 후기 약 4주간 직장에서 지쳐 돌아와 인터넷에서 자료들을 수집하고 코드를 짜집기하며 만든 후기를 작성합니다. 그래서 주식이 효과가 있었냐하면...? 파이썬을 이용한 스크리너 제작 후기 주식을 하기 시작하면서 하도 뇌동매매가 심해가지고 제대로 버는 나날이 많지 않았습니다. 크게 벌기도 하고 크게 잃기도하고 ... 결과는 0에서 약간의 마이너스 수준이랄까.. 밑빠진 독에 물붓기의 느낌. 이 때 강환국 작가의 하면된다 퀀트투자 책을 알게되었는데, 맥북이라 젠포트나 퀀트킹 같은 프로그램을 돌릴 수가 없기도 했고.. (아마존 인스턴스를 만들었으면 쓸 수 있었겠지만 프로그램 사용료에 인스턴스 사용비도 내야 했고..물론 프로그램 사용료는 1년에 커피 몇 잔 아끼면 쓸 수 있는 돈이긴 했습니다.) 그러던 와중에 인터넷에 검.. 2022. 9. 12.
뇌동매매 금지 - 8. 상장종목 스크리닝 해보기 그동안 만들었던 것들을 조합하여 스크리닝해보겠습니다. main.py 프로젝트 최상단에 main.py 를 하나 만들어서 실행 준비합니다. main.py 에서는 실행시간을 확인하기 위해 간단한 프린트문도 준비해봅니다. 전체 종목 획득 및 소형주의 재무공시 정보 조회 import datetime import time import filter_data from extract_data.extract import Extract from export_data import ExportToData start = time.time() extractor = Extract() exporter = ExportToData() kospi_kosdaq_data = extractor.get_data() print("----------.. 2022. 9. 12.
반응형