동시성 향상 방안

주가정보를 가져와서 분석하고, 주문을 실행하는 일련의 과정을 어떻게 나누어 분산시켜야 컴퓨터의 능력을 최대한 활용할 수 있을까? 이 문제에 대해 고민중입니다. 흔히 쓰는 듀얼코어 CPU가 장착된 노트북과 같은 단일 머신의 경우 통상적으로 프로세서 개수는 듀얼코어와 하이퍼스레딩을 통해 4개의 논리적인 프로세서를 활용할 수 있으므로, 단계별로 작업을 수행할 프로세스들은 아래와 같이 구성할 수 있을겁니다. 물론 향후에는 클러스터링을 통해 Scalability를 증가시킬 수 있겠죠. 프로세스 구성 실거래 또는 백테스터 메인 프로세스 1개 주가정보 취득 2개...

September 18, 2016 · 2 min

코스피/코스닥 종목코드, 업종 가져오기

Daum에서 제공하는 코스피/코스닥 전 종목의 정보를 가져오는 코드입니다. 실행결과 [INFO|fetch_symbol_daum.py:12] 2016-09-10 10:11:33,284 > Starting to fetch stocks from daum (pid:5528) [DEBUG|fetch_symbol_daum.py:27] 2016-09-10 10:11:33,285 > Preparing 4 tasks for event loop [DEBUG|fetch_symbol_daum.py:57] 2016-09-10 10:11:33,286 > Fetching task [DEBUG|fetch_symbol_daum.py:65] 2016-09-10 10:11:33,286 > Requesting http://finance.daum.net/xml/xmlallpanel.daum?stype=P&type=S [DEBUG|fetch_symbol_daum.py:57] 2016-09-10 10:11:33,294 > Fetching task [DEBUG|fetch_symbol_daum.py:65] 2016-09-10 10:11:33,294 > Requesting http://finance.daum.net/xml/xmlallpanel.daum?stype=Q&type=S [DEBUG|fetch_symbol_daum.py:57] 2016-09-10 10:11:33,296 > Fetching task [DEBUG|fetch_symbol_daum.py:65] 2016-09-10 10:11:33,296 > Requesting http://finance.daum.net/xml/xmlallpanel.daum?stype=P&type=U [DEBUG|fetch_symbol_daum.py:57] 2016-09-10 10:11:33,299 > Fetching task [DEBUG|fetch_symbol_daum....

September 10, 2016 · 1 min

네이버 주가정보 가져오기

네이버에서 제공하는 주가정보를 가져와 SQLite에 저장합니다. Python의 asyncio를 활용하여 단일 스레드에서 시분할로 작동하게끔 만들었는데, 아래의 작업들을 개별 coroutine으로 분리하여 network IO, disk IO에 따른 block이 발생하면 다른 coroutine으로 제어권이 넘어갑니다. 네이버 웹서버에 접속하여 데이터 가져오기 가져온 정보 파싱하기 데이터베이스에 저장하기 실행방법 (8월부터 삼성전자(005930) 주가와 거래량 가져오기) python3 fetch.py 2016-08-01 2016-09-04 005930 015760 실행결과 [INFO|fetcher.py:16] 2016-09-04 21:28:07,950 > Starting process (pid:1336) [INFO|fetcher.py:17] 2016-09-04 21:28:07,950 > This pricess will fetch interday prices from NAVER [INFO|fetcher....

September 4, 2016 · 1 min

알고리즘 트레이딩 프레임웍

‘16. 6월부터 개발하고 있는 알고리즘 트레이딩 시스템이 모양새를 갖춰가고 있습니다. 앞으로 이 시스템은 주식/채권/파생상품 종목선정부터 자산배분, 리스크관리를 거쳐 증권사 API를 이용해 실제 거래주문을 보내고, 거래결과를 정량적으로 분석/평가할 것입니다. 일단 파이썬으로 프로토타입을 개발해 보았습니다. 메시징큐 라이브러리인 ZeroMQ를 활용해 프로세스간 통신을 구현하였습니다. 주요기능 주가정보 취득, 2) Database에 저장, 3) 종목별 주가 모니터링 등 각각의 기능을 별도의 프로세스로 작동시켜 시스템의 속도를 최대한으로 이끌어 낼 수 있게끔 병렬처리 실행결과...

August 7, 2016 · 1 min