반응형
- 자동매매 프로그램 GitHub URL - https://github.com/mujomboy/xingProject.git
GitHub - mujomboy/xingProject
Contribute to mujomboy/xingProject development by creating an account on GitHub.
github.com
[Git] Github 에 있는 파이썬 프로젝트 파이참(PyCharm) 으로 가져오기
1. 파이참에 GitHub Repository URL 연결하기 파이참을 열어 줍니다... 만약 파이참을 열었는데 바로 프로젝트가 오픈 되었다면... 프로젝트를 닫아 주세요. Get From VCS 버튼을 클릭해 줍니다. URL 입력 후
bysik1109.tistory.com
- 주식챠트(N분) 데이터조회 [t8412] 전체 코드
더보기
import pythoncom
import win32com.client
from event.query import QueryEvents
from event.session import SessionEvents
# 세션 객체 요청 및 객체 생성
session = win32com.client.DispatchWithEvents("XA_Session.XASession", SessionEvents)
url = 'demo.ebestsec.co.kr' # 모의 투자
# url = 'hts.ebestsec.co.kr' # 실제 투자
session.ConnectServer(url, 200001)
session.Login("아이디", "비번", "", 0, 0)
while SessionEvents.state == "":
# 로그인 상태 변경 메시지 채크
pythoncom.PumpWaitingMessages()
# 쿼리 이벤트 객체 가져오기
query = win32com.client.DispatchWithEvents("XA_DataSet.XAQuery", QueryEvents)
# 주식챠트(N분)데이터 조회에 해당되는 t8412.res 파일이 있는 경로 가져오기
resfile_path = "C:\\Users\\bysik\\PycharmProjects\\xingProject\\res\\t8412.res"
# 조회 시 입력 파라미터 타입 명 t8412InBlock
inblock = "%sInBlock" % "t8412"
# 조회 시 리턴 파라미터 타입 명 t8412InBlock
outblock1 = "%sOutBlock1" % "t8412"
# 경로를 통해 res 파일를 로드.
query.LoadFromResFile(resfile_path)
# 입력 파리미터를 초기화 합니다.
query.SetFieldData(inblock, "shcode", 0, '009150') # 종목코드 삼성전기
query.SetFieldData(inblock, "ncnt", 0, '5') # (N)분 5분 챠트 데이터
query.SetFieldData(inblock, "sdate", 0, '20220707') # 시작날짜 2022년 7월 7일
query.SetFieldData(inblock, "edate", 0, '20220708') # 종료날짜 2022년 7월 8일
query.SetFieldData(inblock, "comp_yn", 0, "N") # 압축여부
# 조회 요청
query.Request(0)
while not QueryEvents.state:
# 응답 대기
pythoncom.PumpWaitingMessages()
# 응답이 왔으므로 응답 대기 관련 state 값 초기화
QueryEvents.state = not QueryEvents.state
for i in range(query.GetBlockCount(outblock1)):
# 리턴 데이터 추출
date = query.GetFieldData(outblock1, "date", i).strip() # 날짜
time = query.GetFieldData(outblock1, "time", i).strip() # 시간
open = query.GetFieldData(outblock1, "open", i).strip() # 시가
high = query.GetFieldData(outblock1, "high", i).strip() # 고가
low = query.GetFieldData(outblock1, "low", i).strip() # 저가
close = query.GetFieldData(outblock1, "close", i).strip() # 종가
jdiff_vol = query.GetFieldData(outblock1, "jdiff_vol", i).strip() # 거래량
value = query.GetFieldData(outblock1, "value", i).strip() # 거래대금
print(date, time, open, high, low, close, jdiff_vol, value)
# 세션 클래스
class SessionEvents:
state = ""
msg = ""
def OnLogin(self, code, msg):
SessionEvents.state = code
SessionEvents.msg = msg
def OnLogout(self):
print("OnLogout")
def OnDisconnect(self):
print("OnDisconnect")
# 쿼리 클래스
class QueryEvents:
state = False
code = ""
error = ""
msgCode = ""
msg = ""
def OnReceiveData(self, code):
QueryEvents.code = code
QueryEvents.state = True
def OnReceiveMessage(self, error, msgCode, msg):
QueryEvents.error = error
QueryEvents.msgCode = msgCode
QueryEvents.msg = msg
반응형
'xingAPI > 자동 매매 프로그램 만들기 (PYQT5)' 카테고리의 다른 글
[xingAPI, 파이썬, PYQT5 - QtChart] 주식 이동평균선 만들기 (6) | 2022.08.20 |
---|---|
[xingAPI, 파이썬, PYQT5 - QtChart] 주식 봉차트(캔들차트) 만들기 (0) | 2022.07.29 |
[xingApi, 파이썬] 로그인 기능 만들기 (0) | 2022.06.30 |