2023. 9. 17. 20:42ㆍDATA PROGRAMMING/PYTHON
파이썬 퀀트 투자
기본적인 조작법
대신 증권의 cybos 5를 파이썬과 연결해 주식투자를 해보려고 한다. 퀀트 투자는 '수학과 통계를 기반으로 전략을 만들고 이를 바탕으로 투자하는 정량적인 투자법'이다. 수학과 통계를 활용하는 만큼 파이썬을 활용한다면 여러 전략들을 수립해 투자에 적용할 수 있다.
import win32com.client
instCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
print(instCpCybos.IsConnect)
먼저 cybos plus와 파이참 모두 관리자모드로 실행한 이후 cybos plus에 로그인하고 파이참에 위 코드를 작성하면 1 또는 0이 뜬다. 1이 출력되면 정상적으로 연결이 되었다는 뜻이다. 만약 에러가 나거나 1이 뜨지 않았다면 그 이유는 여러 가지가 있을 수 있는데, 대표적으로 관리자모드로 실행하지 않았거나 파이썬이 32비트 버전이기 때문일 것이다.
파이썬으로 주식을 다루기 위해 CpStockCode 클래스를 사용할 것이다.
import win32com.client
instCpStockCode = win32com.client.Dispatch("CpUtil.CpStockCode")
print(instCpStockCode.GetCount())
해당 코드를 입력하면 4800의 값이 나오는데, 이는 주식시장에 존재하는 주식 수이다.
import win32com.client
instCpStockCode = win32com.client.Dispatch("CpUtil.CpStockCode")
naverCode = instCpStockCode.NameToCode('NAVER')
naverIndex = instCpStockCode.CodeToIndex(naverCode)
print(naverCode)
print(naverIndex)
해당 코드를 작성하면 네이버의 코드 번호와 인덱스를 출력할 수 있다.
파이썬으로 주식 다루기
주식은 주식명과 코드로 이루어져 있다. 주식을 다루려면 두 값 모두 중요하기에 주식명과 코드를 쌍으로 하는 딕셔너리를 만들면 유용하다.
import win32com.client
instCpCodeMgr = win32com.client.Dispatch("CpUtil.CpCodeMgr")
codeList = instCpCodeMgr.GetStockListByMarket(1)
print(codeList)
먼저 GetSockListByMarket()이라는 함수에 '1'인자를 대입하면 주식시장의 코드들을 튜플 형태로 불러올 수 있다.
이번엔 이 코드들과 위에서 코드를 통해 해당 주식의 이름을 불러오는 방법, 그리고 반복문을 활용해 모든 종목 코드를 key 값으로, 모든 종목 이름을 value로 갖는 딕셔너리를 만들어 보자.
stock_dic = {}
for i in codeList:
stock_dic[i] = instCpStockCode.CodeToName(i)
print(stock_dic)
간단한 반복문을 통해 모든 코드 주식명 쌍의 딕셔너리를 만들 수 있다.
f = open('c:\\Users\\user\\Desktop\\데이터사이언스커리어\\퀀트스터디\\kospi.csv', 'w')
for key, value in stock_dic.items():
f.write("%s,%s\n" % (key, value))
f.close()
파일 기능을 활용한 해당 코드를 작성하면 엑셀을 통해 더 깔끔하게 확인할 수 있다.
'DATA PROGRAMMING > PYTHON' 카테고리의 다른 글
[파이썬] 대신증권 API를 활용한 알고리즘 개발 (0) | 2023.09.20 |
---|---|
[파이썬] 대신증권 API를 통해 주식투자 하기 (0) | 2023.09.18 |
파이썬으로 엑셀 사용하기 (0) | 2023.09.14 |
[PYTHON] 파이썬을 통해 전화번호부 만들기 (0) | 2023.09.13 |
[Python] Class의 정확한 이해와 사용법 (0) | 2023.09.13 |