주식자동매매 20강. 계좌평가잔고내역요청(8), 싱글데이터 삽입하기
본문 바로가기

주식 자동매매 강의/기초반(모든 코딩의 뿌리)

주식자동매매 20강. 계좌평가잔고내역요청(8), 싱글데이터 삽입하기

반응형

19강에서 배운 GUI 텍스트 라벨에 계좌평가 잔고내역 요청을 실시하여 싱글 데이터를 삽입해 보도록 하겠습니다. 삽입될 내용은 총 5개로 아래와 같습니다.

 

[유튜브 강의, 링크]와 같이 보시면 많은 도움이 되실 겁니다.

1. 총매입금액/총평가금액/추정예탁자산/총평가손익금액/총수익률에대한 정보 가져오기

  - KOA Studio에서 받아올 수 있는 데이터 목록은 9개이며, ALBA는 5개만 가져오겠습니다.

 

KOA Studio에서 받아올 수 있는 데이터 목록
KOA Studio에서 받아올 수 있는 데이터 목록

  - 가져오는 방법은 아래와 같습니다.

  - self.k.kiwoom.dynamicCall()을 이용하여 원하는 정보를 보냅니다(혹시 이해안가시는 분들은 18강 이전을 참고하세요). 그리고 GetCommData()함수를 이용하여 받는 데이터는 전부 QString으로 해줍니다(QString은 여러분들이 별도 설정 없이 문자를 받기 위한 방법이라고 생각하시면 됩니다). 그리고 KOA Studio에 있는 싱글 데이터 출력 결과물을 적어주시고 int 또는 float으로 구분합니다. int와 float도 앞서 다 설명드렸는데 int는 여러분들이 일반적으로 사용하는 정수이고 float은 소주점을 사용하기 위한 것입니다.

코드 작성
코드 작성

totalBuyingPrice = int(self.k.kiwoom.dynamicCall("GetCommData(QString, QString, int, QString)", sTrCode, sRQName, 0, "총매입금액"))
currentTotalPrice = int(self.k.kiwoom.dynamicCall("GetCommData(QString, QString, int, QString)", sTrCode, sRQName, 0, "총평가금액"))
balanceAsset = int(self.k.kiwoom.dynamicCall("GetCommData(QString, QString, int, QString)", sTrCode, sRQName, 0, "추정예탁자산"))
totalEstimateProfit = int(self.k.kiwoom.dynamicCall("GetCommData(QString, QString, int, QString)", sTrCode, sRQName, 0, "총평가손익금액"))
total_profit_loss_rate = float(self.k.kiwoom.dynamicCall("GetCommData(String, String, int, String)", sTrCode, sRQName, 0, "총수익률(%)"))

 

  - 각 출력 값들은 totalBuyingPrice ~ total_profit_loss_rate에 입력하였습니다. 

 

2. 출력값 GUI에 텍스트 라벨에 입력하기

  - self.parent를 이용하여 스레드에서 부모 GUI 가져오기

  - 가져올 부모 GUI 이름은 label_1~label_5 총 5개이다.

  - 각각의 텍스트 라벨에 setText()를 이용해 앞서 출력된 값들을 집어넣기

 

텍스트 라벨에 값 집어넣기
텍스트 라벨에 값 집어넣기

self.parent.label_1.setText(str(totalBuyingPrice))
self.parent.label_2.setText(str(currentTotalPrice))
self.parent.label_3.setText(str(balanceAsset))
self.parent.label_4.setText(str(totalEstimateProfit))
self.parent.label_5.setText(str(total_profit_loss_rate))

출력 결과물
출력 결과물

  - 원하는 값 출력은 잘 되었으나 텍스트 라벨의 태그에 대한 정의는 빠져 있네요.

  - 아래 그림과 같이 텍스트 라벨의 태그 삽입을 위해 11강의 기타 함수 위에 아래 코드를 삽입합니다.

 

텍스트 라벨 삽입
텍스트 라벨 삽입
입력 코드
입력 코드

 

### 초기 셋팅

self.label_11.setText(str("총매입금액"))
self.label_12.setText(str("총평가금액"))
self.label_13.setText(str("추정예탁자산"))
self.label_14.setText(str("총평가손익금액"))
self.label_15.setText(str("총수익률(%)"))
반응형

3. 요약

  싱글 데이터를 받아오는 방법과 GUI 텍스트 라벨에 입력하는 방법을 알아보았습니다.

 - 싱글 데이터 받아오기 : QThread_1에 입력

totalBuyingPrice = int(self.k.kiwoom.dynamicCall("GetCommData(QString, QString, int, QString)", sTrCode, sRQName, 0, "총매입금액"))
currentTotalPrice = int(self.k.kiwoom.dynamicCall("GetCommData(QString, QString, int, QString)", sTrCode, sRQName, 0, "총평가금액"))
balanceAsset = int(self.k.kiwoom.dynamicCall("GetCommData(QString, QString, int, QString)", sTrCode, sRQName, 0, "추정예탁자산"))
totalEstimateProfit = int(self.k.kiwoom.dynamicCall("GetCommData(QString, QString, int, QString)", sTrCode, sRQName, 0, "총평가손익금액"))
total_profit_loss_rate = float(self.k.kiwoom.dynamicCall("GetCommData(String, String, int, String)", sTrCode, sRQName, 0, "총수익률(%)"))

 - GUI 텍스트 라벨에 싱글데이터 값 입력하기 : QThread_1에 입력

#################################### 텍스트 라벨에 집어 넣기

self.parent.label_1.setText(str(totalBuyingPrice))
self.parent.label_2.setText(str(currentTotalPrice))
self.parent.label_3.setText(str(balanceAsset))
self.parent.label_4.setText(str(totalEstimateProfit))
self.parent.label_5.setText(str(total_profit_loss_rate))

 - GUI 텍스트 라벨에 태그 값 입력하기 : Login_Machine에 입력

### 초기 셋팅

self.label_11.setText(str("총매입금액"))
self.label_12.setText(str("총평가금액"))
self.label_13.setText(str("추정예탁자산"))
self.label_14.setText(str("총평가손익금액"))
self.label_15.setText(str("총수익률(%)"))
반응형

.link_tit