[Python_trading] 파이썬 알고리즘 트레이딩_과거데이터 가져오기
조회하려는 종목의 코드값을 활용하여, 과거 데이터를 지정한 개수만큼 반환받는다.
#stockchart.py
import win32com.client
instStockChart = win32com.client.Dispatch("CpSysDib.StockChart")
instStockChart.SetInputValue(0,'A003540') #조회하려는 종목의 코드값
instStockChart.SetInputValue(1,ord('2')) #1은 요청방식에 대한 타입, '2'는 개수로 요청할 때 사용한다. 만약 시간으로 요청하기 위해서는 '1'을 넣어주어야한다.
instStockChart.SetInputValue(4,10) #4는 요청개수를 의미하고, 10은 실제로 요청할 데이터의 개수이다.
instStockChart.SetInputValue(5,5) #5는 필드, 필드 배열을 의미, 5는 종가에 해당하는 값 조회,
#ord라는 함수를 통해 문자열 값을 아스키코드로 변환해야한다.
instStockChart.SetInputValue(6,ord('D')) #일 단위의 데이터를 가져오기 위해서 'D' 의 아스키코드 값을 전달한다.
instStockChart.SetInputValue(9,ord('1')) #9는 수정주가 ,'1'은 수정주가, '0' 은 무수정주가이다.
instStockChart.BlockRequest()
numData = instStockChart.GetHeaderValue(3) #인자3은 수신개수를 반환하겠다는 것이다.
for i in range(numData):
print(instStockChart.GetDataValue(0,i)) #인자 0는 요청한 데이터의 인덱스를 의미한다. 앞서 일 단위로 종가 하나만 요청했으므로 이 값으로 0을 이용한 것이다.
#예를 들어 시가, 고가, 종가, 거래량을 얻어오는 경우 시가를 얻기위해서는 0, 고가를 얻는 경우 1을 사용하면 된다. ,i는 numData
#일별로 일자,시가,고가,종가,거래량을 출력하는 코드
#stockchart2.py
import win32com.client
instStockChart = win32com.client.Dispatch("CpSysDib.StockChart")
instStockChart.SetInputValue(0,'A003540')
instStockChart.SetInputValue(1,ord('2'))
instStockChart.SetInputValue(4,10)
instStockChart.SetInputValue(5,(0,2,3,4,5,8)) #날짜, 시가, 고가, 저가, 종가, 거래량
instStockChart.SetInputValue(6,ord('D'))
instStockChart.SetInputValue(9,ord('1'))
instStockChart.BlockRequest()
numData = instStockChart.GetHeaderValue(3)
numField = instStockChart.GetHeaderValue(1)
#일자별로 6개의 데이터가 반환되기 때문에 for 중첩을 사용하여 데이터를 매트릭스 형태로 출력한다.
for i in range(numData):
for j in range(numField):
print(instStockChart.GetDataValue(j,i),end=' ')
print(' ')
댓글
댓글 쓰기