반응형
전략이 수정됨에 따라 총 자산을 불러올 필요가 생겼다.
기존에 예수금을 불러오던 code가 있으니 그대로 응용해보자.
#예수금 불러오기
def get_deposit(self):
self.dynamicCall("SetInputValue(QString, QString)", "계좌번호", self.account_number)
self.dynamicCall("SetInputValue(QString, QString)", "비밀번호입력매체구분", "00")
self.dynamicCall("SetInputValue(QString, QString)", "조회구분", "2")
self.dynamicCall("CommRqData(QString, QString, int, QString)", "opw00001_req", "opw00001", 0, "0002")
# 예수금 확인
self.deposit = self.kiwoom.get_deposit()
이 코드를 그대로 추정 자산 항목으로 바꾸면 될 것 같다.
KOA studio에서 찾아보니 추정자산 관련된 호출은 이렇게 정리되어있다.
둘의 형태로 보아, 총자산을 불러올 함수는 아래와 같이 copy하면 되지 않을까 하는게 내 판단이었다.
def get_totalasset(self):
self.dynamicCall("SetInputValue(QString, QString)", "계좌번호", self.account_number)
self.dynamicCall("SetInputValue(QString, QString)", "상장폐지조회구분", "1")
self.dynamicCall("CommRqData(QString, QString, int, QString)", "OPW00003_req", "OPW00003", 0, "0002")
self.tr_event_loop.exec_()
return self.tr_data
이제 Main 모듈에서도 동작하는지 확인하기 위해 함수를 불러와보자.
# Kiwoom 총자산 조회
self.totalasset = 0
self.totalasset = self.kiwoom.get_totalasset()
print(self.totalasset)
한 번 이대로 코드를 돌려보기로 한다.
AttributeError: 'Kiwoom' object has no attribute 'tr_data'
돌리니까 위와 같은 이상한 경고문이 나오는데, 오랜만에 다뤄서 까먹었지만... request 이름은 미리 정의를 해줘야한다.
opw00001_req를 정의해줬던 함수에서 똑같이 opw0003_req를 정의해줄 수 있도록 하자.
def _on_receive_tr_data(self, screen_no, rqname, trcode, record_name, next, unused1, unused2, unused3, unused4):
"TR조회의 응답 결과를 얻어오는 함수"
print("[Kiwoom] _on_receive_tr_data is called {} / {} / {}".format(screen_no, rqname, trcode))
tr_data_cnt = self.dynamicCall("GetRepeatCnt(QString, QString)", trcode, rqname)
elif rqname == "opw00003_req":
deposit = self.dynamicCall("GetCommData(QString, QString, int, QString", trcode, rqname, 0, "추정예탁자산")
self.tr_data = int(deposit)
print(self.tr_data)
겨우 불러오기 성공!
정말 쉽지않다. tr 하나 다루는게 너무어렵구만.
이제 이 총액을 불러오는 함수를 매일 날짜와 함께 csv 형태로 저장할 수 있도록 해두는 작업이 필요하다.
나중에야 데이터가 추가될지도 모르겠지만 당장은 내 개인적인 기록보관이 가장 우선시되어야 하니까.
오늘 한 일의 의의라면, 참 오랜만의 코드 개선작업이었다는것? 정도가 되겠다.
반응형
'글 > 코딩' 카테고리의 다른 글
심슨의 역설과 데이터 통계 (0) | 2023.11.10 |
---|---|
[코딩] OOP, 객체 지향 프로그래밍에 대해 (0) | 2023.10.27 |
백준 알고리즘 문제 풀이 11659 : 구간 합 구하기 4 (0) | 2023.07.26 |
(교육정리) Pandas와 Data 통계 - 1 (0) | 2023.07.25 |
백준 알고리즘 문제 풀이 1764 : 듣보잡 (0) | 2023.07.05 |