[논문 리뷰] Automatic Historical Stock Price Dataset Generation Using Python
이 논문은 yfinance 라이브러리와 직접 URL 쿼리 방식을 사용하여 S&P 500 및 나스닥과 같은 주요 인덱스에서 자동으로 종합적인 역사적 주가 데이터 세트를 생성하는 파이썬 기반 프레임워크를 제시한다. 이는 데이터 수집을 자동화하고, 조정 가격을 통해 기업 행위를 처리하며, 기업 이름을 포함한 개별 주식 데이터를 CSV 형식으로 저장하여 연구자들이 수작업을 줄일 수 있도록 한다.
With the dynamic political and economic environments, the ever-changing stock markets generate large amounts of data daily. Acquiring up-to-date data is crucial to enhancing predictive precision in stock price behavior studies. However, preparing the dataset manually can be challenging and time-demanding. The stock market analysis usually revolves around specific indices such as S&P500, Nasdaq, Dow Jones, the New York Stock Exchange (NYSE), etc. It is necessary to analyze all the companies of any particular index. While raw data are accessible from diverse financial websites, these resources are tailored for individual company data retrieval and there is a big gap between what is available and what is needed to generate large datasets. Python emerges as a valuable tool for comprehensively collecting all constituent stocks within a given index. While certain online sources offer code snippets for limited dataset generation, a comprehensive and unified script is yet to be developed and publicly available. Therefore, we present a comprehensive and consolidated code resource that facilitates the extraction of updated datasets for any particular time period and for any specific stock market index and closes the gap. The code is available at https://github.com/amp1590/automatic_stock_data_collection.
연구 동기 및 목표
- 금융 인덱스에서 대규모로 최신 상태인 역사적 주가 데이터 세트를 수작업으로 컴iles하는 데 소요되는 시간과 반복적인 과정을 해결하기 위해.
- 편린하거나 불완전한 코드 조각들에 의존하는 것을 제거하고, 데이터 세트 생성을 위한 통합적이고 재사용 가능한 파이썬 스크립트를 제공하기 위해.
- 연구자들이 주가 예측을 위해 어떤 시간 범위와 인덱스에 대해서든 자동으로 확장 가능하고 정확한 데이터 수집을 가능하게 하여, 주가 예측 연구를 지원하기 위해.
- yfinance 라이브러리를 사용하는 방법과 직접 URL 쿼리 방식을 사용하는 방법의 두 가지 구현 접근 방식을 제공하여, 다양한 환경에서의 유연성과 호환성을 확보하기 위해.
제안 방법
- 이 방법은 파이썬과 yfinance 라이브러리를 사용하여 S&P 500 또는 나스닥과 같은 특정 인덱스의 구성 주식에 대해 역사적 주식 데이터를 프로그래밍 방식으로 다운로드한다.
- S&P 500의 티커 목록은 위키백과에서 추출하고, 다른 인덱스의 경우 대체 자료를 활용하여 정확하고 최신의 기업 심볼 검색을 보장한다.
- 각 티커에 대해 yfinance의 download() 함수를 사용하여 일일, 주간 또는 월간 데이터를 자동 조정(스플릿 및 배당금)과 함께 다운로드한다.
- 스크립트는 날짜 인덱스를 컬럼으로 변환하고, 티커 심볼을 포함한 'Name' 컬럼을 추가한 후, 각 기업의 데이터를 지정된 디렉터리에 별도의 CSV 파일로 저장한다.
- yfinance를 생략하고 Yahoo Finance의 API 엔드포인트에 직접 쿼리 스트링을 구성하여 데이터를 가져오는 대안 방법을 사용한다. 이 경우 타임스탬프와 URL 파rameter를 사용해 pandas의 read_csv를 통해 데이터를 확보한다.
- 오류 처리 기능을 포함하여 요청된 기간 동안 데이터가 없는 기업을 건너뛰고, 성공적으로 확보된 주식 수를 추적한다.
실험 결과
연구 질문
- RQ1어떻게 파이썬을 사용하여 S&P 500 및 나스닥과 같은 주요 인덱스의 역사적 주가 데이터 세트를 자동으로 효율적으로 생성할 수 있는가?
- RQ2수백 또는 수천 개의 티커에 걸쳐 조정된 역사적 주가를 수집하는 데 가장 신뢰성 있고 확장 가능한 방법은 무엇인가?
- RQ3데이터 세트 생성 과정을 수작업 데이터 입력과 분산된 코드 조각들로부터 분리하여 재현 가능성을 향상시킬 수 있는가?
- RQ4대규모 데이터 수집에 있어 yfinance 라이브러리 사용과 직접 URL 기반 데이터 확보 방식 간의 성능 및 신뢰성 차이는 무엇인가?
주요 결과
- 제안된 스크립트는 S&P 500 및 나스닥 인덱스의 각 주식에 대해 완전한 개별 CSV 파일을 성공적으로 생성하였으며, 조정된 종가 가격을 포함한 모든 금융 지표를 포함한다.
- yfinance 라이브러리의 자동 조정 기능을 통해 주식 스플릿 및 배당금과 같은 기업 행위를 정확히 처리하여 데이터 무결성을 확보한다.
- 요청된 날짜 범위 동안 존재하지 않는 주식을 식별하고 제외하여 오류를 방지하고 시스템의 강건성을 향상시킨다.
- 대체로 직접 URL 방식은 yfinance 라이브러리가 필요 없이 동일한 결과를 달성하여 제한된 환경에서 경량 대안을 제공한다.
- 이 프레임워크는 대규모 역사적 데이터 세트를 구축하는 데 소요되는 시간과 노력을 줄여주어 연구자들이 데이터 확보에 집중하기보다 분석에 더 많은 시간을 할애할 수 있도록 한다.
- 코드는 GitHub에 공개되어 있어 재사용, 확장, 연구 워크플로우에의 통합을 지원한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.