본문 바로가기

분류 전체보기180

뇌동매매 금지 - 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.
뇌동매매 금지 - 7. 종목 스크리닝을 위한 필터 만들기 이번 포스트에서는 종목 스크리닝을 위한 필터를 만들어 봅니다. 들어가기에 앞서.. 필터 데이터들의 기반? 출처? 종목 스크리닝의 방법에는 많은 방법들과 데이터들이 있습니다만, 이번 포스트에서는 강환국 작가의 하면 된다! 퀀트 투자 에 소개된 전략들을 필터로 구현해보았습니다. 물론 모든 항목들을 구현한 것은 아니고, 현재의 구현에서 계산할 수 있는 데이터들을 이용해 필터를 만들어보았습니다. 또한 데이터를 계산하는 로직이 틀렸을 수도 있습니다 자동으로 추천을 해주진 않고, 목록에서 고르는 건 결국 본인의 몫 필터링을 한다고해서, 제일 조건이 좋은 종목을 사라! 고 권장하는 그런 것이 아닙니다. 이 시리즈에서 작성하고 있는 정도로는 아직 계산할 수 없는 팩터데이터들도 많고, 시장상황이라던지 업종 상황까지는 반.. 2022. 9. 12.
뇌동매매 금지 - 6. 스크리닝 결과를 엑셀로 저장할 메소드 만들기 본격적인 스크리닝 조건필터들을 만들기 전에, 해당 필터들을 잘 저장할 수 있는 엑셀 모듈을 추가해봅니다. 스크리닝 조건 필터로 걸러진 데이터들을 저장할 모듈 만들기 저는 이전 포스트에서 결과물을 엑셀파일로 저장해서 확인하기 위해 export_to_excel.py 라는 파일을 만들고 내부에 ExportToData 라는 클래스를 정의하고, export_to_excel 이라는 메소드를 생성해보았습니다. import array import pandas as pd class ExportToData: def __init__(self): self.pandas = pd def export_to_excel(self, file_path, file): print("Exporting result to excel file..... 2022. 9. 12.
뇌동매매 금지 - 5. 추출하고 계산한 분기별 데이터 검증해보기 OpenDart를 통해 추출하고, 각각의 재무정보들을 이용해 팩터데이터들을 계산해보았는데, 이번에는 이것이 실제로 맞는지, 문제가 없는지 검증을 해야합니다. 데이터 검증해보기 특정 상품의 데이터들을 검증해보겠습니다. 검증 대상은 가장 최근 분기의 데이터 2021년12월30일 기준의 사업보고서를 기반으로 비교진행하고, 비교대상은 가장 접하기 쉬운 네이버 증권의 정보와 비교해보겠습니다. pykrx와 FinanceDataReader로 추출해온 통칭 기본정보는 스크래핑 데이터에 기반하고, 최근 영업일 종가기준의 데이터이기 때문에 아마 맞을 겁니다만, 일단 전체를 확인하고자 합니다. 오공이라는 종목으로 검증을 해보겠습니다. Pykrx / FinanceDataReader를 이용해 얻은 기본정보 이 기본 종목정보는 .. 2022. 9. 12.
뇌동매매 금지 - 4. 팩터데이터 계산해보기, 기본 필터조건 만들어보기 저번 포스트에서 OpenDartReader를 이용해 공시 재무정보를 읽어보았습니다. 이번 포스트에서는 펙터데이터를 계산해보고, 필터조건을 만들어보기 시작합니다. 팩터데이터 계산하기 앞선 포스트에서는 기본적인 재무정보를 불러오는 작업을 진행했었습니다. def extract_finance_data(self, finance_years, df): #디버깅을 위한 설정 pd.set_option('display.max_columns', None) pd.options.display.float_format = '{:.2f}'.format data = [] count = 1 for row in df.itertuples(): #터미널 상의 추출상황 로깅을 위한 프린트문 현재갯수/전체종목갯수, .. 2022. 9. 12.
뇌동매매 금지 - 3. 분기별 재무정보 조회해보기 OpenDartReader를 이용하여 각 종목의 재무정보를 조회해봅니다. 재무 정보 조회하기 OpenDart API Key 발급받기 재무 정보를 조회해야하는데 어떻게 조회해야할지 막막합니다. 일단 기업에서 매 분기마다 발표하는 재무제표를 기반으로한 공시정보를 조회해야합니다. OpenDartReader는 전자재무공시시스템에서 Api key를 이용하여 재무정보를 손쉽게 조회할 수 있게 도와줍니다. https://opendart.fss.or.kr 여기서 회원가입을 하신다음, API Key를 발급받으면 됩니다. 개인의 경우 한도는 1일 최대 1만회로 제한되어있으며 자주 조회를 하면 조금씩 조회한도를 늘려주는 것 같긴합니다. 단, 무자비한 호출속도를 사용하면 아이피 제한이 걸릴수도 있다 하니 참고하셔야겠습니다. .. 2022. 9. 12.
뇌동매매 금지 - 2. 종목정보 가져오기 한국거래소와 네이버에서 스크래핑을 하는 pykrx 라이브러리를 이용해 종목정보를 가져와보는 작업을 합니다. 상장되어있는 기업들의 정보 확인하기 일단 클래스를 하나 정의합니다. 사실 클래스로 안만들고 모듈로만 만들어도 큰 상관은 없을 것 같습니다. korean_market_factor_data.py import datetime import pandas as pd import FinanceDataReader as fdr from pykrx import stock class KoreanMarketFactorData: def __init__(self): self.stock = stock #pykrx stock library self.fdr_data = fdr.StockListing("KRX") #FinanceD.. 2022. 9. 12.
뇌동매매 금지 - 1. 파이썬 종목 스크리닝을 위한 준비 사실 요새 많은 사람들이 주식을 하고 있는데, 제 개인적으로 너무 뉴스나 소문, 그냥 그 날 느낌적 느낌 에 따라 뇌동매매가 너무 활발하게 이루어지다보니 이익볼 것도 못 보고, 손실만 크게 보는 상황이 반복되고 있었습니다. 이것을 막아보기 위해 제대로 공부를 시작하자라고 생각했고, 이런저런 책들을 사서 보고 있었습니다. 그러는 중 퀀트 투자를 알게 되었고, 각종 지표를 통해서 정량적인 투자를 하는 것에 대해 매력을 느끼게 되었죠. 그럼 원하는 조건에 부합하는 종목을 찾아서 시작을 해야할텐데, 문제는 주식의 종목갯수가 너무 많고, 그 중에 내가 원하는 주식을 찾는 것 부터가 너무 많은 시간이 소모된다는 것이었습니다... 파이썬을 이용한 종목 스크리닝 예전부터 프로그램을 통한 종목 확인 및 매매방법이 있다는.. 2022. 9. 12.
반응형