Skip to content

Latest commit

 

History

History

02_market_and_fundamental_data

시장 및 기본 데이터: 출처 및 기술

데이터는 항상 거래의 필수적인 원동력이었으며 거래자들은 우수한 정보에 접근하여 이점을 얻기 위해 오랫동안 노력해 왔습니다. 이러한 노력은 적어도 워털루에서 영국의 승리가 해협을 건너 비둘기에 의해 전달되었다는 사전 소식을 듣고 로스차일드 가문이 채권 매입으로 상당한 이익을 얻었다는 소문으로 거슬러 올라갑니다.

오늘날 더 빠른 데이터 액세스에 대한 투자는 Chicago Mercantile Exchange(CME)와 도쿄를 연결하는 주요 고빈도 거래(HFT) 회사로 구성된 Go West 컨소시엄의 형태를 취하고 있습니다. 거래자들이 차익 거래 기회를 이용하기 위해 경쟁함에 따라 뉴욕의 CME와 BATS 거래소 간의 왕복 대기 시간은 이론적 한계인 8밀리초에 가깝게 떨어졌습니다. 동시에, 규제 기관과 거래소는 정보에 대한 불균등한 접근 경쟁에 대한 부정적인 영향을 제한하기 위해 거래 속도를 늦추는 과속 방지턱을 도입하기 시작했습니다.

전통적으로 투자자들은 공개적으로 이용 가능한 시장 및 기본 데이터에 주로 의존했습니다. 독점 설문조사 등을 통해 비공개 데이터 세트를 생성하거나 획득하려는 노력은 제한적이었습니다. 기존 전략은 주식 펀더멘털에 초점을 맞추고 보고된 재무 정보를 바탕으로 재무 모델을 구축하며, 업계 또는 거시 데이터와 결합하여 주당 수익과 주가를 예측할 수도 있습니다. 또는 기술 분석을 활용하여 가격 및 거래량 정보에서 계산된 지표를 사용하여 시장 데이터에서 신호를 추출합니다.

머신러닝(ML) 알고리즘은 특히 다음 장의 주제인 대체 데이터와 결합될 때 인간이 정의한 규칙 및 경험적 방법보다 시장 및 기본 데이터를 더 효율적으로 활용할 것을 약속합니다. 선형 모델부터 순환 신경망(RNN)에 이르는 ML 알고리즘을 시장 및 기본 데이터에 적용하고 거래 가능한 신호를 생성하는 방법을 설명합니다.

이 장에서는 시장 및 기초 데이터 소스를 소개하고 그것이 생성되는 환경을 어떻게 반영하는지 설명합니다. 거래 환경의 세부 사항은 시장 데이터의 적절한 해석뿐만 아니라 전략의 설계 및 실행과 현실적인 백테스팅 시뮬레이션 구현에도 중요합니다. 또한 Python을 사용하여 다양한 소스의 거래 및 재무제표 데이터에 액세스하고 작업하는 방법을 설명합니다.

컨텐츠

  1. 자리표시자_0
    • 자리표시자_1
  2. 자리표시자_2
    • 자리표시자_3
    • 자리표시자_4
    • 자리표시자_5
      • 자리표시자_6
      • 자리표시자_7
    • 자리표시자_8
      • 자리표시자_9
      • 자리표시자_10
  3. 자리표시자_11
    • 자리표시자_12
    • 자리표시자_13
    • 자리표시자_14
    • 자리표시자_15
  4. 자리표시자_16
    • 자리표시자_17
    • 자리표시자_18
    • 자리표시자_19
    • 자리표시자_20
  5. 자리표시자_21
    • 자리표시자_22

시장 분석가는 거래 환경에 대해 설명합니다.

시장 데이터는 거래자가 수많은 시장 중 하나에서 직접 또는 중개자를 통해 금융 상품에 대한 주문을 하는 방법과 주문이 처리되는 방법, 수요와 공급을 일치시켜 가격이 설정되는 방법의 산물입니다. 결과적으로 데이터는 주문, 거래 실행 및 가격 형성을 관리하는 규칙 및 규정을 포함하여 거래 장소의 제도적 환경을 반영합니다. 글로벌 개요는 해리스(2003)을, 미국 시장에 대한 자세한 내용은 존스(2018)을 참조하세요.

알고리즘 거래자는 ML을 포함한 알고리즘을 사용하여 매수 및 매도 주문의 흐름과 그에 따른 거래량 및 가격 통계를 분석하여 수요-공급 역학 또는 특정 시장 참가자의 행동 등에 대한 통찰력을 포착하는 거래 신호를 추출합니다. 이 섹션에서는 NASDAQ과 같은 환경에서 생성된 실제 틱 데이터로 작업을 시작하기 전에 백테스트 중 거래 전략 시뮬레이션에 영향을 미치는 제도적 기능을 검토합니다.

시장 미세구조: 거래의 기본

시장 미시구조는 제도적 환경이 거래 프로세스에 어떻게 영향을 미치고 가격 발견, 매수호가 스프레드 및 호가, 일중 거래 행동, 거래 비용과 같은 결과를 형성하는지 연구합니다. 이는 알고리즘 및 전자 거래의 급속한 발전에 힘입어 가장 빠르게 성장하는 금융 연구 분야 중 하나입니다.

오늘날 헤지 펀드는 빠르게 변화하는 복잡한 세부 사항을 추적하고 가능한 최고의 시장 가격으로 실행하고 시장 마찰을 활용하는 설계 전략을 보장하기 위해 사내 분석가를 후원합니다. 이 섹션에서는 거래를 통해 생성된 데이터를 살펴보기 전에 주요 개념, 즉 다양한 시장 및 주문 유형에 대한 간략한 개요를 제공합니다.

  • 거래 및 교환 - 실무자를 위한 시장 미세구조, 래리 해리스, 옥스포드 대학 출판부, 2003
  • 우리 주식 시장 데이터 시장 이해, 찰스 존스, NYSE, 2018
  • 자리표시자_27
  • 주문 중심 시장의 경제 물리학, Abergel 외, 2011
    • 주문 중심 시장의 모델링 및 분석에 대한 다양한 커뮤니티(물리학자, 경제학자, 수학자, 금융 엔지니어)의 아이디어와 연구를 제시합니다. 이들 연구에서 주요 관심 대상은 가격 통계의 통계적 규칙성을 유도하는 메커니즘입니다. 시장 영향, 거래 전략의 수익성 또는 미세 구조 효과에 대한 수학적 모델과 같은 기타 중요한 문제와 관련된 결과도 제시됩니다.

빈도가 높은 시장 데이터 작업

두 가지 범주의 시장 데이터는 Reg NMS에 따라 거래되는 미국 거래소에 상장된 수천 개의 회사를 포괄합니다. 통합 피드는 각 거래 장소의 거래 및 견적 데이터를 결합하는 반면, 각 개별 거래소는 해당 특정 장소에 대한 추가 활동 정보가 있는 독점 제품을 제공합니다.

이 섹션에서는 먼저 주문, 거래 및 틱 단위로 발생하는 결과 가격의 실제 흐름을 나타내는 NASDAQ에서 제공하는 독점 주문 흐름 데이터를 제시합니다. 그런 다음 불규칙한 간격으로 도착하는 연속적인 데이터 스트림을 고정된 기간의 막대로 정규화하는 방법을 보여줍니다. 마지막으로, 통합 매매 및 시세 정보를 담고 있는 알고식(AlgoSeek)의 주식 분 막대 데이터를 소개합니다. 각 경우에 Python을 사용하여 데이터로 작업하는 방법을 설명하므로 이러한 소스를 거래 전략에 활용할 수 있습니다.

NASDAQ 주문장 데이터로 작업하는 방법

시장 데이터의 주요 소스는 모든 거래 활동을 반영하기 위해 하루 종일 실시간으로 업데이트되는 주문장입니다. 거래소는 일반적으로 이 데이터를 실시간 서비스로 유료로 제공하지만 일부 과거 데이터를 무료로 제공할 수도 있습니다.

미국의 주식 시장은 점점 더 세분화된 정보와 기능을 제공하는 레벨 I, II, III의 세 가지 계층으로 견적을 제공합니다.

  • 레벨 I: 다양한 온라인 소스에서 제공되는 실시간 입찰 및 매도 가격 정보
  • 레벨 II: 해당 주식의 유동성에 대한 더 나은 통찰력을 제공하기 위해 특정 시장 조성자의 매수 및 매도 가격, 최근 거래 규모 및 시간에 대한 정보를 추가합니다.
  • 레벨 III: 견적 입력 또는 변경, 주문 실행, 거래 확인 기능을 추가하며 시장 조성자 및 거래소 회원사만 사용할 수 있습니다. 레벨 III 시세에 액세스하면 등록된 브로커가 최상의 실행 요구 사항을 충족할 수 있습니다.

거래 활동은 시장 참가자가 보낸 주문에 대한 수많은 메시지에 반영됩니다. 이러한 메시지는 일반적으로 증권 거래 및 시장 데이터의 실시간 교환을 위한 전자 FIX(Financial Information eXchange) 통신 프로토콜이나 기본 교환 프로토콜을 따릅니다.

거래가 전달되는 방법: FIX 프로토콜

거래 활동은 시장 참가자가 보낸 거래 주문에 관한 수많은 메시지에 반영됩니다. 이러한 메시지는 일반적으로 증권 거래 및 시장 데이터의 실시간 교환을 위한 전자 FIX(Financial Information eXchange) 통신 프로토콜이나 기본 교환 프로토콜을 따릅니다.

NASDAQ TotalView-ITCH 데이터 피드

FIX는 압도적인 시장 점유율을 갖고 있지만 거래소는 기본 프로토콜도 제공합니다. Nasdaq은 가입자가 지분 상품의 배치부터 실행 또는 취소까지 개별 지분 상품 주문을 추적할 수 있도록 하는 TotalView ITCH 직접 데이터 공급 프로토콜을 제공합니다.

  • 가려움증 자리 표시자_37
  • 자리표시자_38

코드 예: 틱 데이터 구문 분석 및 정규화

  • NASDAQ TotalView ITCH 주문서 폴더에는 다음을 수행할 노트북이 포함되어 있습니다.
    • NASDAQ Total View 샘플 틱 데이터 다운로드,
    • 바이너리 소스 데이터의 메시지를 구문 분석합니다.
    • 특정 주식에 대한 주문서를 재구성합니다.
    • 주문 흐름 데이터 시각화
    • 틱 데이터 정규화
  • 바이너리 데이터 서비스: struct 기준 치수

추가

AlgoSeek 분 막대: 주식 시세 및 거래 데이터

AlgoSeek은 이전에 기관 투자자에게만 제공되었던 품질의 과거 일중 데이터를 제공합니다. AlgoSeek 주식 막대는 일중 ML 기반 전략을 쉽게 설계하고 백테스트할 수 있도록 하기 위해 사용자 친화적인 형식으로 매우 상세한 일중 시세 및 거래 데이터를 제공합니다. 앞으로 살펴보겠지만 데이터에는 OHLCV 정보뿐만 아니라 매수-매도 스프레드, 가격 상승 및 하락 움직임이 있는 틱 수 등에 대한 정보도 포함됩니다. AlgoSeek은 데모 목적으로 2013년부터 2017년까지 나스닥 100대 주식에 대한 분 막대 데이터 샘플을 친절하게 제공했으며, 이 데이터의 하위 집합을 이 책의 독자들에게 제공할 것입니다.

통합 피드부터 분 표시줄까지

AlgoSeek 분 막대는 이 섹션의 시작 부분에서 언급한 통합 피드를 관리하는 SIP(증권 정보 프로세서)에서 제공한 데이터를 기반으로 합니다. https://www.algoseek.com/data-drive.html에서 설명서를 찾을 수 있습니다.

견적 및 거래 데이터 필드 분 막대 데이터에는 최대 54개의 필드가 포함됩니다. 막대의 시가, 고가, 저가 및 종가 요소에 대한 8개의 필드가 있습니다. 즉,

  • 바 및 해당 거래의 타임스탬프
  • 현재의 호가 호가와 관련 거래의 가격과 규모

막대 기간에 대한 거래량 정보가 포함된 14개의 데이터 포인트도 있습니다.

  • 주식 수 및 해당 거래
  • 매수호가 이하, 매수호가와 중간지점 사이, 중간지점, 중간지점과 매도호가 사이, 매도호가 이상 및 크로스의 거래량
  • 이전 가격 이동 방향에 따라 가격이 상승하거나 하락한 경우와 가격이 변하지 않은 경우 등 상승 또는 하락하면서 거래된 주식 수

코드 예: AlgoSeek 일중 데이터를 처리하는 방법

algoseek_intraday 디렉터리에는 AlgoSeek에서 샘플 데이터를 다운로드하는 방법에 대한 지침이 포함되어 있습니다.

  • 해당 정보는 곧 공개될 예정입니다.

시장 데이터에 대한 API 액세스

Python을 사용하여 API를 통해 시장 데이터에 액세스하는 몇 가지 옵션이 있습니다. 이 장에서는 먼저 '판다' 라이브러리에 내장된 몇 가지 소스를 제시합니다. 그런 다음 거래 플랫폼 양자역학, 데이터 공급자 퀀들(2018년 12월 NASDAQ에 인수) 및 이 책의 뒷부분에서 사용할 백테스팅 라이브러리 '짚라인'을 간략하게 소개하고 다양한 유형의 시장 데이터에 액세스할 수 있는 몇 가지 추가 옵션을 나열합니다. data_providers 디렉터리에는 이러한 옵션의 사용법을 보여주는 여러 노트북이 포함되어 있습니다.

Pandas를 사용한 원격 데이터 액세스

코드 예

데이터 제공자 폴더에는 다양한 데이터 공급자를 사용하는 예제가 포함되어 있습니다.

  1. 팬더 데이터리더을 사용한 원격 데이터 액세스
  2. 금융로 시장 및 기본 데이터 다운로드
  3. 랍스터에서 지정가 주문 틱 데이터를 구문 분석합니다.
  4. 퀀들 데모 API
  5. 집라인 데이터 접근

데이터 소스

  • Quandl 문서 및 Python API
  • 자리표시자_64
  • 자리표시자_65
  • 자리표시자_66
  • 자리표시자_67
  • 자리표시자_68
  • IEX 클라우드 금융 데이터 인프라
  • 자리표시자_70
  • 자리표시자_71
  • 자리표시자_72
  • 자리표시자_73
  • 자리표시자_74
  • 팅고 주식 시장 도구

업계 뉴스

  • 자리 표시자_76, FT, 2018

기본 데이터로 작업하는 방법

기본 데이터는 유가증권의 가치를 결정하는 경제적 동인과 관련이 있습니다. 데이터의 성격은 자산 클래스에 따라 다릅니다.

  • 주식 및 기업신용의 경우 기업 금융은 물론 산업 및 경제 전반의 데이터가 포함됩니다.
  • 국채의 경우 국제 거시자료와 외환 등이 포함됩니다.
  • 원자재의 경우 작물의 날씨 데이터와 같은 자산별 수요 공급 결정 요인이 포함됩니다.

우리는 데이터에 접근하기 쉬운 미국의 주식 펀더멘털에 중점을 둘 것입니다. 전 세계적으로 200만 페이지에 달하는 연례 보고서와 30,000시간 이상의 실적 발표를 생성하는 공개 기업이 약 13,000개 이상 있습니다. 알고리즘 거래에서 기본 데이터와 이 데이터에서 엔지니어링된 기능은 거래 신호를 직접 파생하는 데 사용될 수 있습니다(예: 가치 지표). 이는 기계 학습 모델을 포함한 예측 모델에 필수적인 입력입니다.

재무제표 데이터

증권거래위원회(SEC)는 미국 발행인, 즉 상장회사와 뮤추얼 펀드를 포함한 증권이 3개의 분기별 재무제표(Form 10-Q)와 1개의 연차보고서(Form 10-K)를 제출하도록 요구합니다. 기타 규제 제출 요건.

1990년대 초부터 SEC는 전자 데이터 수집, 분석 및 검색(EDGAR) 시스템을 통해 이러한 파일링을 제공했습니다. 이는 기업 신용과 같은 주식 및 기타 증권의 기본 분석을 위한 기본 데이터 소스를 구성하며, 가치는 발행자의 비즈니스 전망 및 재무 건전성에 따라 달라집니다.

XBRL 마크업을 사용한 자동 처리

SEC가 비즈니스 보고서의 전자 표현 및 교환을 위한 무료 개방형 글로벌 표준인 XBRL을 도입한 이후 규제 서류의 자동 분석이 훨씬 쉬워졌습니다. XBRL은 XML을 기반으로 합니다. 이는 보고서 요소의 의미를 정의하고 보고서의 전자 버전에서 해당 정보를 강조 표시하는 태그에 매핑되는 분류법에 의존합니다. 그러한 분류법 중 하나는 미국의 일반적으로 인정되는 회계 원칙(GAAP)을 나타냅니다.

SEC는 2009년부터 모든 신고자에게 이 형식을 요구하기 전에 회계 스캔들에 대응하여 2005년에 자발적인 XBRL 신고를 도입했으며 필수 적용 범위를 다른 규제 신고로 계속 확대하고 있습니다. SEC는 다양한 서류의 내용을 형성하고 특정 항목을 추출하는 데 사용할 수 있는 현재 분류법을 나열하는 웹사이트를 유지 관리합니다.

SEC에 보고된 기본 데이터를 추적하고 액세스할 수 있는 방법은 여러 가지가 있습니다.

  • EDGAR 공공 보급 서비스(PDS)의 일부로 승인된 제출 서류의 전자 피드를 유료로 사용할 수 있습니다.
  • SEC는 구조화된 공개 제출 목록을 나열하는 RSS 피드을 10분마다 업데이트합니다.
  • 자동화된 처리를 위해 FTP를 통해 모든 서류를 검색하기 위한 공개 인덱스 파일이 있습니다.
  • 재무제표(및 메모) 데이터세트에는 모든 재무제표와 그에 따른 메모에서 구문 분석된 XBRL 데이터가 포함되어 있습니다.

SEC는 또한 6개월 지연되기는 하지만 SEC.gov를 통해 EDGAR 제출용 인터넷 검색 트래픽이 포함된 로그 파일을 게시합니다.

코드 예: 기본 데이터 시계열 구축

재무제표 및 메모 데이터세트의 데이터 범위는 기본 재무제표(대차대조표, 손익계산서, 현금 흐름, 자본 변동, 포괄손익)에서 추출된 숫자 데이터와 해당 재무제표의 각주로 구성됩니다. 2009년부터 데이터를 사용할 수 있습니다.

04_sec_edgar 폴더에는 XBRL 형식의 EDGAR 데이터를 다운로드 및 구문 분석하고 재무제표와 가격 데이터를 결합하여 P/E 비율과 같은 기본 지표를 생성하는 노트북 edgar_xbrl이 포함되어 있습니다.

기타 기본 데이터 소스

  • 자리표시자_85
  • 자리표시자_86
  • 자리표시자_87
  • 자리표시자_88
  • 자리표시자_89
  • 자리표시자_90

Pandas를 통한 효율적인 데이터 저장

이 책에서는 다양한 데이터 세트를 사용할 것이므로 효율성과 성능을 위해 주요 형식을 비교해 볼 가치가 있습니다. 특히 다음을 비교합니다.

  • CSV: 쉼표로 구분된 표준 일반 텍스트 파일 형식입니다.
  • HDF5: 처음에 미국 국립 슈퍼컴퓨팅 센터에서 개발된 계층적 데이터 형식은 PyTables 라이브러리를 사용하여 팬더에서 사용할 수 있는 빠르고 확장 가능한 수치 데이터 저장 형식입니다.
  • Parquet: 효율적인 데이터 압축 및 인코딩을 제공하고 Cloudera와 Twitter에서 개발한 Apache Hadoop 에코시스템의 일부인 바이너리 열 형식 스토리지 형식입니다. pandas의 원저자인 Wes McKinney가 이끄는 pyarrow 라이브러리를 통해 pandas에서 사용할 수 있습니다.

코드 예

05_스토리지_벤치마크 디렉터리에 있는 노트북 스토리지_벤치마크은 이전 라이브러리의 성능을 비교합니다.