일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- graph
- python
- 하이브
- 코딩더매트릭스
- NumPy
- 주식분석
- scrapy
- recursion
- RNN
- Java
- effective python
- 하둡2
- codingthematrix
- hadoop2
- 선형대수
- GRU
- LSTM
- HelloWorld
- tensorflow
- 파이썬
- 딥러닝
- collections
- hive
- 알고리즘
- 텐서플로
- yarn
- Sort
- C언어
- C
- 그래프이론
- Today
- Total
EXCELSIOR
2. 주식 분석 개발환경 설정 - 파이썬 환경 설정 및 실행 본문
주식 분석 개발환경 설정 - 파이썬 환경 설정 및 실행
이전에 포스팅한 1. 주식 분석 개발환경 설정 - 계좌 개설 및 API 설치에서 설치한 Creon 증권API를 파이썬에서 사용하기 위해서는 몇 가지 작업이 필요하다.
1. 파이썬 설치 - Windows 64bit 환경에서 Python 32bit 설치
증권 API를 사용하기 위해서는 Windows 32bit 버전의 파이썬이 필요하다. Creon Plus Q&A 참고
본인의 Windows가 32bit이면 상관이 없지만, 64bit인 경우에는 고작 증권API를 사용하기 위해서 기존에 설치한 파이썬을 지우고 32bit 버전의 파이썬을 설치할 수 없는 노릇이다. 따라서, 아나콘다를 이용해 가상환경으로 파이썬 32bit버전을 설치하도록 한다. 아나콘다를 이용한 파이썬 설치는 여기를 참고하거나 구글에 아나콘다 python 설치
라고 검색하면 참고할 만한 블로그들이 많이 있다. 여기서는 아나콘다를 이용해 32bit 파이썬 가상환경을 설정하는 부분 부터 시작한다.
아나콘다를 이용해 파이썬을 설치하였으면 명령 프롬프트(cmd) 를 열고 아래의 명령어를 통해 Python 3.5 32bit 가상환경을 설정한다.
set CONDA_FORCE_32BIT=1
아나콘다 가상환경 변수를 32bit로 설정conda create -n py35_32 python=3.5
가상환경 이름이 py35_32이고 python 3.5를 생성
설치가 완료되었으면 가상환경(py35_32)에서 python을 실행하여 python 32bit인지 확인한다.
activate py35_32
가상환경 py35_32 활성화(activate)python
python 실행
2. 필요한 모듈(패키지) 설치 - win32com
파이썬 설정이 끝났으면 증권API를 사용하기 위해 win32com
이라는 모듈을 설치해야 한다. win32com
모듈은 Python에서 COM을 사용할 수 있도록 해주는 모듈로써 COM은 Component Object Model이라는 용어의 약자로 여러 컴포넌트 객체를 이용하여 프로그램을 개발된 모델을 의미한다.(COM 설명 참고) 대신증권의 Creon Plus가 COM 방식이기 때문에 win32com
모듈을 통해 증권API를 이용할 수 있다. win32com
을 설치하는 방법은 conda install 또는 pip install을 이용하여 설치할 수 있다.
- conda를 이용한 설치:
conda install pywin32
- pip를 이용한 설치:
pip install pypiwin32
또한, 분석이나 실습을 할 때 사용하기 편하도록 jupyter notebook
을 설치해준다.
- jupyter notebook 설치 :
pip install jupyter
3. Python에서 증권API 사용하기
win32com
설치가 끝났으면 Creon Plus 증권API를 이용하여 데이터를 가져와 보도록 하자.
1) 관리자 권한으로 Creon Plus 실행
CREON HTS 설치가 완료 되었으면 CREON HTS를 반드시 관리자 권한으로 실행 해야한다. 그런 다음, Creon Plus를 선택한 뒤 로그인 한다.
다음과 같은 화면이 나타나면 Creon plus API가 실행 된 것이다.
2) 관리자 권한으로 Jupyter Notebook 실행
jupyter notebook
또한 관리자 권한으로 실행 해줘야 한다. 먼저 아래의 그림처럼 명령프롬프트를 관리자 권한으로 실행한 뒤 다음의 명령어를 입력하여 jupyter notebook
을 실행한다.
activate py35_32
가상환경 py35_32 활성화(activatejupyter notebook
jupyter notebook 실행
3) Python으로 증권API를 이용해 데이터 조회
마지막으로 python 코드로 증권 API를 이용해 데이터를 조회 해보도록 하자. Creon Plus API는 파이썬 코드를 이용해 다양한 데이터를 조회할 수 있는 예제들을 제공하고 있다. 크레온플러스 자료실
그 중에서 주식 현재가 조회 를 해본다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | import win32com.client # win32com 모듈 import # 연결 여부 체크 objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos") bConnect = objCpCybos.IsConnect if (bConnect == 0): print("PLUS가 정상적으로 연결되지 않음. ") # 현재가 객체 구하기 objStockMst = win32com.client.Dispatch("DsCbo1.StockMst") objStockMst.SetInputValue(0, 'A005930') #종목 코드 - 삼성전자 objStockMst.BlockRequest() # 현재가 통신 및 통신 에러 처리 rqStatus = objStockMst.GetDibStatus() rqRet = objStockMst.GetDibMsg1() print("통신상태", rqStatus, rqRet) ''' 통신상태 0 0027 조회가 완료되었습니다.(stock.new.mst) ''' # 현재가 정보 조회 code = objStockMst.GetHeaderValue(0) #종목코드 name= objStockMst.GetHeaderValue(1) # 종목명 time= objStockMst.GetHeaderValue(4) # 시간 cprice= objStockMst.GetHeaderValue(11) # 종가 diff= objStockMst.GetHeaderValue(12) # 대비 open= objStockMst.GetHeaderValue(13) # 시가 high= objStockMst.GetHeaderValue(14) # 고가 low= objStockMst.GetHeaderValue(15) # 저가 offer = objStockMst.GetHeaderValue(16) #매도호가 bid = objStockMst.GetHeaderValue(17) #매수호가 vol= objStockMst.GetHeaderValue(18) #거래량 vol_value= objStockMst.GetHeaderValue(19) #거래대금 # 예상 체결관련 정보 exFlag = objStockMst.GetHeaderValue(58) #예상체결가 구분 플래그 exPrice = objStockMst.GetHeaderValue(55) #예상체결가 exDiff = objStockMst.GetHeaderValue(56) #예상체결가 전일대비 exVol = objStockMst.GetHeaderValue(57) #예상체결수량 print("코드", code) print("이름", name) print("시간", time) print("종가", cprice) print("대비", diff) print("시가", open) print("고가", high) print("저가", low) print("매도호가", offer) print("매수호가", bid) print("거래량", vol) print("거래대금", vol_value) '''결과 -2017.10.29 기준 코드 A005930 이름 삼성전자 시간 1556 종가 2654000 대비 34000 시가 2620000 고가 2666000 저가 2607000 매도호가 2657000 매수호가 2654000 거래량 147850 거래대금 39046225 ''' | cs |
'Python > 주식 분석' 카테고리의 다른 글
6. Pandas와 Plotly를 이용한 MACD 차트 그리기 (3) | 2017.12.03 |
---|---|
5. Pandas를 이용한 Naver금융에서 주식데이터 가져오기 (26) | 2017.11.20 |
4. Plotly를 이용한 캔들차트-Candlestick chart 그리기 (4) | 2017.10.30 |
3. 주식 데이터를 PostgreSQL에 저장하기 (1) | 2017.10.29 |
1. 주식 분석 개발환경 설정 - 계좌개설 및 API 설치 (0) | 2017.10.29 |