본문 바로가기

퀀트

[퀀트 프로젝트] API를 통한 매매자동화 6. 목차 이번 파트에서는 Excel 파일에 담아둔 20개의 종목들을 증권사 API를 통해 자동매매를 해볼거예요 ! 6.1 모의투자 계정 만들기 API(Application Programming Interface)는 서로 다른 소프트웨어나 애플리케이션 간의 정보 교환과 상호작용을 가능하게 하는 도구나 프로토콜입니다. 간단히 말해, API는 다양한 시스템이나 애플리케이션이 서로 '대화'할 수 있도록 돕는 중간 매개체 역할을 수행합니다. 이러한 API를 통해 증권사 시스템으로부터 데이터를 요청하고 계좌로부터 매매를 요청할 수 있는 거예요. 저는 한국투자 증권의 API를 활용하여 매매를 자동화했으며, 실제 투자에 앞서 충분한 테스트를 위해 모의투자 계좌에서 작업을 진행했습니다. APP KEY와 APP SECR.. 더보기
[퀀트 프로젝트] 멀티팩터 포트폴리오 5. 목차 파트 5는 이전 파트에서 간단하게 살펴보고 검증한 팩터들을 조합하여 최종적인 포트폴리오를 만드는 단계입니다. Step 1: 멀티팩터 포트폴리오가 무엇인지 그리고 멀티팩터 포트폴리오로 유명한 조엘 그린블라트의 마법공식을 사용해서 국내주식으로 구성해보겠습니다. Step 2: 팩터들의 결합 방법에 대해 알아보겠습니다. Step 3: 최종 포트폴리오를 설정하고 이를 구성할 종목을 선정하겠습니다. 5.1 멀티팩터 포트폴리오 밸류 팩터와 퀄리티 팩터는 종종 상반되는 경향을 보이지만, 둘다 각각의 이유로 높은 수익률을 제공합니다. 이 두 팩터를 적절히 조합함으로써, 합리적인 가격에 내재 가치가 높고 우수한 주식을 선별할 수 있습니다. 국내 종목 데이터로 상관관계 표를 만들어보면, 벨류 지표인 PBR(Pri.. 더보기
[퀀트 프로젝트] 퀀트 전략을 통한 종목 선정 #2 (Continued) 저의 포트폴리오를 구성할 두 번째 팩터는 바로바로... 모멘텀입니다!! 4.4 모멘텀 전략 그러므로 모멘텀 전략을 적용할 때 지난 1년 동안의 주식 수익률을 중요한 판단 지표로 활용하는건, 단순한 수익률의 추적을 넘어서는, 보다 심층적인 시장의 동향과 기업의 가치를 이해하려는 노력일거예요! 산술 연율화 수익률: 주어진 기간 동안의 평균 수익률을 연 단위로 환산한 값. 기하 연율화 수익률: 투자 기간 동안의 복리 효과를 고려하여 계산, 실제 수익률에 더 근접한 값을 제공. 연율화 변동성: 주어진 기간 동안의 자산 가격 변동의 연간 표준편차, 자산의 위험 수준을 측정하는 데 사용. 샤프 지수: 초과 수익률(투자 수익률에서 무위험 수익률을 뺀 값)을 투자의 전체 변동성으로 나눈 값. 투자.. 더보기
[퀀트 프로젝트] 퀀트 전략을 통한 종목 선정 #1 4. 목차 이번 파트에서는 최종 포트폴리오 구성을 위한 전략들을 상세히 검토할 것입니다. 포트폴리오 결정 요인들의 이론적 기반과 실제 효과성을 분석하며, 이는 최종 포트폴리오 구성에 앞서 이루어지는 중요한 검증 단계입니다. 4.1 퀀트 전략의 종류 이번 프로젝트에서는 주식, 재무 데이터, 및 가치 평가 지표를 기반으로 퀀트 분석을 통해 투자 대상을 선별합니다. 투자 대상을 선별하는 방식에는 크게 두 가지 방식이 있습니다. 포트폴리오 운용 전략은 역사적 데이터를 활용해 장기적인 관점에서 우수한 주식을 선별하며, 반면 트레이딩 전략은 주가 변동성을 분석해 단기적 매매 시점을 결정하죠. 이번 프로젝트는 특히 포트폴리오 관리 전략에 초점을 맞추어 진행되었습니다. 4.2 팩터 팩터(factor)는 의미 그대로 주.. 더보기
[퀀트 프로젝트] 재무 데이터 크롤링 및 가치지표 계산 3. 목차 이번 파트는 데이터를 크롤링하고 저장하며, 필요에 맞게 수정하는 단계의 마지막입니다! 데이터와 데이터베이스 모듈들과 데이터 구축 스크립트(data_builder.py)에 해당하는 마지막 단계이죠. 3.1 재무데이터 크롤링 FnGuide 웹사이트에서는 연간 및 분기 기준의 손익계산서, 재무상태표, 현금흐름표 등을 제공하고 있습니다. 페이지는 정적이며, GET 방식으로 서버에 데이터 요청합니다. URL 뒤에 파라미터를 붙여서 서버에 전송하면, 표시된 종목코드 값만 변경해서 해당 종목의 재무 데이터를 얻을 수 있습니다. 재무제표는 테이블 형태로 제공되기 때문에, read_html 함수를 사용해서 손쉽게 데이터를 불러올 수 있습니다. 전에 했던 것처럼 데이터 크롤링 및 클린징을 하고 MYSQL에 ko.. 더보기
[퀀트 프로젝트] 주가 데이터 크롤링 2. 목차 파트 2로 주가데이터 크롤링에 대해서 살펴보겠습니다. 2.1 수정주가 기술 분석에 있어서는 원주가가 아닌 수정 주가 데이터를 사용해야 돼요! 2018년 5월, 주가가 265만원에서 다음날 50분의 1인 5만 3000원으로 거래됐습니다. 이런 상황을 무시하면 수익률이 -98%처럼 나타날 수 있습니다. 하지만 액면분할은 기업 가치의 변화가 아닌, 단지 회계적인 조정이죠! 이는 주식 가격을 낮춰 더 많은 투자자가 쉽게 접근할 수 있게 하고 거래량을 늘리는 효과가 있지만, 기업의 실제 가치에는 영향을 주지 않습니다. 그래서 이런 이벤트를 고려하지 않고 투자 분석을 하면, 잘못된 수익률이 나올 수 있으니 주의해야 합니다. 수정주가는 이런 이벤트를 고려해 이전 주가를 50으로 나누어 데이터의 연속성과 정.. 더보기
[퀀트 프로젝트] 종목코드 및 섹터 데이터 크롤링 1. 목차 최근 영업일의 데이터, 주식 종목코드, 그리고 섹터 정보를 포함한 필수 정보를 수집하고, 이를 Mysql 데이터베이스에 저장하는 파트입니다. 최근 영업일을 구해야 시장의 최신 상태를 반영하여 효율적인 데이터 관리와 분석이 가능하죠. 1.1 최근 영업일 크롤링 네이버페이 증권의 국내증시 자금동향에서 최근 영업일 날짜를 자동으로 가져오려고 합니다. 이건 매일 바뀌는 날짜를 프로그램이 실행될 때마다 자동으로 모으기 위해서입니다. 자동화를 통해 최신 시장 상황을 반영한 데이터를 효율적으로 관리할 수 있게 되죠! 개발자 도구로 그 위치를 알아내고 크롤링하면, 최근 영업일 날짜 데이터를 정확히 가져올 수 있습니다. 1.2 종목코드 크롤링 KRX 정보시스템의 업종분류 탭에서 국내 종목의 기본 정보 자동으로.. 더보기
퀀트 프로젝트 프로젝트의 목표 조엘 그린블라트의 마법공식을 사용하여 국내 주식으로 멀티팩터 포트폴리오 구성하기 매매 자동화를 통한 패시브 인컴(Passive Income) 얻기 실제 퀀트(Quant)의 작업 프로세스를 처음부터 끝까지 진행하기 마지막 항목에 제일 큰 의의를 두고 있는데요. 프로젝트의 핵심 목표는 퀀트 분석에 대한 깊은 이해를 쌓고, 나아가 주식 시장의 취약점을 식별할 때 그 정보를 효과적으로 활용할 수 있는 능력을 개발하는 데에 있습니다! 목차 추후 저는 주식 시장에서 개인 트레이더로서 활동하며 얻은 통찰과 노하우를 수학적 원리에 통합해 자동 매매를 구현하고자 해요! 물론, 제 투자 결정에는 직관을 의존하는 부분이 포함되어 있고, 쉽게 수집할 수 없는 데이터에 대한 판단, 그리고 코딩으로 단순화하기 어.. 더보기