맨날 공부한다고 생각만하고 있어서 그런지 상당히 더디게 프로젝트가 진행되고 있다.
처음에는 python 공부를 목적으로 하였지만.. 그것보단 내가 어떤 주식을 사야할지, 데이터 접근하여 값을 가져오는 용도로 이용하게 될 것같다.
Creon API로 connect 하는 예제 코드이다.
종목 번호를 기반으로 주가를 찍어주는 소스이다.
b_connected = self.obj_CpCybos.IsConnect
if b_connected == 0:
print("connect fail")
return None
이 부분이 앞으로의 프로젝트에 제일 많이 쓰일.. connect 를 체크하는 부분이다.
python 자체를 공부해보지 못해서 다소 소스 해석이 되지않지만 하다 보면 되지 않을까 생각된다.
예제 소스는 다음과 같다.
import time
import win32com.client
import pandas as pd
class Creon:
def __init__(self):
self.obj_CpCodeMgr = win32com.client.Dispatch('CpUtil.CpCodeMgr')
self.obj_CpCybos = win32com.client.Dispatch('CpUtil.CpCybos')
self.obj_StockChart = win32com.client.Dispatch('CpSysDib.StockChart')
def creon_chart_search(self, code, date_from, date_to):
b_connected = self.obj_CpCybos.IsConnect
if b_connected == 0:
print("connect fail")
return None
list_field_key = [0, 1, 2, 3, 4, 5, 8]
list_field_name = ['date', 'time', 'open', 'high', 'low', 'close', 'volume']
dict_chart = { name : [] for name in list_field_name}
self.obj_StockChart.SetInputValue(0, 'A'+code)
self.obj_StockChart.SetInputValue(1, ord('1'))
self.obj_StockChart.SetInputValue(2, date_to)
self.obj_StockChart.SetInputValue(3, date_from)
self.obj_StockChart.SetInputValue(5, list_field_key)
self.obj_StockChart.SetInputValue(6, ord('D'))
self.obj_StockChart.BlockRequest()
status = self.obj_StockChart.GetDibStatus()
msg = self.obj_StockChart.GetDibMsg1()
print("connected status : {} {}".format(status,msg))
if status != 0:
return None
cnt = self.obj_StockChart.GetHeaderValue(3)
for i in range(cnt):
dict_item = (
{name : self.obj_StockChart.GetDataValue(pos,i)
for pos,name in zip(range(len(list_field_name)),list_field_name)}
)
for k,v in dict_item.items():
dict_chart[k].append(v)
print("char {} {}".format(cnt, dict_chart))
return pd.DataFrame(dict_chart, columns=list_field_name)
if __name__ == '__main__':
creon = Creon()
print(creon.creon_chart_search('035420', 20150101, 20171201))
'개발자로 살아남기 > 주식투자' 카테고리의 다른 글
[퀀트 투자] 1달 경과의 데이터 (0) | 2019.09.16 |
---|---|
[Creon API] 지표 좋은 주식 골라보기 (0) | 2019.08.18 |
[Creon API] 종목 코드를 이용하여 여러 정보 가져오기 (0) | 2019.08.14 |
[Creon API] 전체 종목 slice 해서 사용하기 (0) | 2019.08.14 |
[Creon API] 종목 전체 가져오기 (0) | 2019.08.04 |