3장. 재무 데이터로 작업하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
분명한 것은 데이터가 알고리즘을 능가한다는 것입니다. 포괄적인 데이터가 없으면 포괄적이지 않은 예측을 하게 되는 경향이 있습니다.
롭 토마스 (2016)
알고리즘 트레이딩에서는 일반적으로 표 3-1에 나와 있는 것처럼 네 가지 유형의 데이터를 처리해야 합니다. 이는 금융 데이터 세계를 단순화하지만, 과거와 실시간, 정형과 비정형을 기준으로 데이터를 구분하는 것이 기술적 환경에서 유용할 때가 많습니다.
| 구조화된 | 비정형 | |
|---|---|---|
| 역사 | 전일 종가 | 금융 뉴스 기사 |
| 실시간 | 외환 매수/매도 호가 | 트위터에 올린 게시물 |
이 책은 주로 과거 및 실시간 유형의 구조화된 데이터 (숫자, 표 형식의 데이터)를 다룹니다. 특히 이 장에서는 프랑크푸르트 증권거래소에서 거래되는 SAP SE 주식의 장중 종가와 같은 과거의 정형 데이터에 중점을 둡니다. 그러나 이 범주에는 NASDAQ 증권 거래소에서 거래되는 Apple, Inc. 주식의 1분 막대 데이터와 같은 일중 데이터도 포함됩니다. 실시간 구조화된 데이터의 처리는 7장에서 다룹니다.
알고리즘 트레이딩 프로젝트는 일반적으로 과거 금융 데이터를 기반으로 (백)테스트해야 하는 트레이딩 아이디어 또는 가설로 시작합니다. 이것이 이 장의 맥락이며, 그 계획은 다음과 같습니다. "다양한 출처에서 재무 데이터 읽기"에서는 pandas 를 사용하여 다양한 파일 및 웹 기반 출처에서 데이터를 읽습니다. '오픈 데이터 소스로 작업하기' 에서는 널리 사용되는 오픈 데이터 소스 플랫폼인 Quandl을 소개합니다. "Eikon 데이터 API"에서는 Refinitiv Eikon 데이터 API를 위한 Python 래퍼를 소개합니다. 마지막으로, '효율적인 금융 데이터 저장' 에서는 HDF5 바이너리 저장 포맷을 기반으로 하는 pandas 을 사용하여 과거 구조화된 데이터를 효율적으로 저장하는 방법을 간략하게 보여줍니다.
이 장의 목표는 트레이딩 아이디어와 가설의 백테스트를 효과적으로 구현할 수 있는 형식의 금융 데이터를 확보하는 것입니다. 세 가지 주요 테마는 데이터 가져오기, 데이터 처리, 데이터 저장입니다. 이 장과 이후 장에서는 2장에서 자세히 설명한 대로 Python 패키지가 설치된 Python 3.8을 설치했다고 가정합니다. 현재로서는 정확히 어떤 인프라에서 이 Python 환경이 제공되는지는 아직 중요하지 않습니다. Python을 사용한 효율적인 입출력 작업에 대한 자세한 내용은 Hilpisch(2018, 9장)를 참조하세요.
다양한 출처의 재무 데이터 읽기
이 섹션에서는 Python용으로 널리 사용되는 데이터 분석 패키지인 pandas 의 기능을 많이 사용합니다( pandas 홈페이지 참조). pandas 는 이 장에서 다루는 세 가지 주요 작업인 데이터 읽기, 데이터 처리, 데이터 저장을 포괄적으로 ...