2장: 시장 데이터와 기본 데이터: 소스와 기법

허준·2022년 7월 10일

트레이딩 방법
시장가 주문: 주문 도달 순간 가능한 가격으로 즉시 체결
지정가 주문: 지정된 가격
스탑 주문: 지정 가격 이상 혹은 이하로 내려갈 때 손실을 최소화 하는 방향의 주문. 공매도의 손실을 막는 등의 이유로 사용.
fill or kill
immdiate or cancel

트레이딩 장소:
OTC(장외) 는 종종 낮은 규제. 채권이나 ADR 등등 다양한게 거래된다.
거래는 규칙에 의거해 이루어진다.
나스닥에는 다수의 시장 조성자가 있어 거래 용이. 하지만 시장에 파편성이 존재하므로, 공정 가치 시장 가격을 식별할 때 어려움이 생길 수 있다. 트레이딩이 파편되어 있어 13개가 넘는 트레이딩 베뉴가 존재하며, 총합 거래소에 보고를 하지만 각각 다른 지연시간과 규칙을 갖는다.
다크풀은 대규모 블록 주식 매수자와 매도자를 매치할 수 있게 해줘 익명으로 거래 가능. 단, 거래가 발생한 뒤에는 금융산업규제청에 보고한다. 이를 통해 HFT거래에 전략에 대한 보호를 제공

미국에서 주식 호가창은 3개의 레벨 층으롷 제공.
레벨1 : 많은 온라인 소스에서 실시간 매수와 매도 호가 정보
레벨2 : 특정 시장 조성자에 의한 매수 및 매도 호가, 최근 거래의 크기와 시간에 대한 정보
레벨3 : 시장 조성자와 거래소 회원 기업만 접근 가능 정보.
트레이딩 활동은 시장 참여자들이 보내느 수 많은 메세지를 반영하는데, 이 메세지는 FIX를 준수.

메세지가 FIX 프로토콜을 준수하기 때문에 알고리즘 트레이더들이 이 메세지를 파싱해 시장 행태 추적 가능, 또한 호가창을 재구성할 수 있도록 해 준다. 단, 메세지의 규모가 무척이나 크므로, 이를 처리하는 능력이 경쟁 우위성의 원천. 현재는 5.0 FIX 프로토콜
|를 통해 분리되고, =을 이용한 key-value pair들로 구성.
나스닥은 옥션이나 크로스(매수자와 매도자를 매칭시켜 대규모 거래)도 제공.

토탈뷰에서는 NOII(net order imbalance indicator) 배포. 개장 직전과 폐장 직후 매수 주문 혹은 매도 주문 사이의 불균형에 대해 알려주는 지표.

ITCH 5.0 은 시스템 이벤트, 주식특성, 주문, 수정, 매매에 대한 메세지.

예시코드:
트레이딩 메세지를 통해 order book를 재생성 가능.

하지만 요즘은 이런 일별 데이터를 제공하는 곳이 많아졌고, 그 중 하나가 AlgoSeek이다. 과거 기관 투자자에게만 제공됐던 상당 품질의 일별 데이터를 제공한다.

AlgoSeek 은 SIP에서 제공하는 데이터를 기반으로 만들어진다. SIP을 통해 미국 최고 매수와 매도 호가의 벤치마크 역할을 하므로 중요. AlgoSeek은 첫번째 거래소의 개장부터 마지막 거래소의 폐장까지 거래일 하루 전체를 포함.

분바 데이터에는 최대 54개의 필드 포함.

분 바 데이터는 호가 저보가 있는 버전, 없는 버전, FINRA에 보고된 거래량이 있는 버전과 없는 버전의 4가지이며, 하루에 하나의 압축된 폴더로 티커당 하나의 CSV를 갖는다.

파이썬 내장 API를 통해 시장 데이터에 접근하는 좋은 옵션들도 많다.
대표적인게 yfinance, quantopian, quandl, zipline.

pandas의 read_html를 통해 웹상의 데이터에 접근할 수 있고, 또한 다양한 데이터 공급자의 API단말에 접근 가능하다.

'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies' 에서 read_html로 구성 종목을 알 수 있다.
야후에서 제공하는 데이터는 yfinacne를 이용해 쉽게 스크레이핑이 가능하다.

yfinacne 코드 해설
symbol="META"
ticker = yf.Ticker(symbol) 를 이용하면, 제시한 티커에 대한 종합적인 설명이 yfinance에서 제공되며, 150 가지 정도의 정보를 제공해 준다.
symbol에 "msft aapl goog" 처럼 빈칸을 이용해 여러개의 티커를 입력할 수도 있다.
.history 사용시 다양한 기간과 빈도로 과거 가격을 얻을 수 있다. 분단위로도 받을 수 있으며, 최대 가용범위까지 제공된다.
이 ticker에 있는 정보들
1. 회사 action(배당, 분할)
2. 재무제표(연, 분기), 손익계산서(연, 부기)
3. 현금흐름(연, 분기)
4. 매출, 이익(연, 분기)
5. 지속 가능성 점수(사회 점수, 기업 영역)
6. 애널리스트 평가
7. 예정 이벤트 (ticker.calendar)
8. 옵션 만기일, 옵션 종류들(콜, 풋 모두)

=> 대규모 다운로드, 반복 요청시 IP가 막힐 수 있으므로, 프록시 서버가 필요하다.

yf.download를 이용해 필요한 것들을 데이터 프레임 형식으로 받을 수도 있다.

퀀토피안은 회사 문을 닫았다고 한다. 다만 개발된 코드들은 일부 전문가에 의해 어느 정도 원래의 기능을 유지하고 있다.

Zipline : 백테스트와 실시간 트레이딩 플랫폼을 작동시키는 알고리즘 트레이딩 라이브러리. 맞춤환경을 요구한다.

profile
퀀트 지망(Quant candidate)

0개의 댓글