37강에서 GUI에 선정된 종목을 Text로 저장하는 법을 알아보았습니다. 이번 강의에서는 저장된 Text파일을 불러와 다시 GUI에 전시하는 법을 알아보도록 하겠습니다.
[유튜브 강의, 링크]와 같이 보시면 많은 도움이 되실 겁니다.
#주식 자동매매
#자동으로 Text 로드 후 GUI에 전시하기
장 시작 하루 전날 종목을 선정하여 저장한 후 다음날 아침에 저장된 종목을 불러와 자동매매를 시작해야 하기 때문에 이번 강의가 필요합니다(키움 서버는 오전 5시 30분에 서버가 종료되어 자동매매를 계속 실행시켜 놓을 수 없습니다.)
1. 저장된 Text 불러와 GUI에 전시를 실행하는 명령어 함수
- self.Load_Stock.clicked.connect(self.Load_code) : 37강에서 만든 push 버튼인 Load_Stock을 클릭하면 self.Load_code를 실행되게 해 놓았습니다.
2. 저장된 Text 불러와 임의의 공간에 저장하기
저장된 Text를 불러와 self.Getanal_code에 다 집어넣어 보겠습니다.
- if os.path.exists("dist/Selected_code.txt") : dist라는 폴더 안에 Selected_code.txt파일 있으면 아래 코드를 실행합니다.
- f = open("dist/Selected_code.txt", "r", encoding="utf8) : Selected_code.txt를 읽어 들여 f에 저장합니다. utf8은 문자가 기호들을 컴퓨터에서 읽을 수 있게 변환한다 정도로만 이해하십시오.
- lines = f.readlines() : readlines()라는 파이썬 내부 함수를 이용하여 f에 들어있는 값들을 lines에 입력합니다. 아래 그림을 보시면 3개의 종목 정보가 lines에 입력됩니다.
- for line in lines : lines에 있는 숫자를 순차적으로 line에 넣습니다. 0, 1, 2,... 이런 식으로 요.
- if line != "": 만약에 line이 "" 비어있지 !=않다면 아래 코드를 실행 합니다.
- ls = line.split("\t") : line에 들어잇는 정보들을 \t로 구분하여 ls에 넣습니다.
009150 삼성전기 149500 +1.28을 ==> [009150, 삼성전기, 149500, +1.28] 이렇게 입력시킵니다.
- t_code = ls[0] : ls[0]에는 009150이 들어 있고 이를 t_code에 입력시킵니다. 나머지 동일 합니다.
- dept = ls[3].split("\n")[0] : ls[3]에 들어있는 +1.28을 dept에 집어넣는데 37강에서 마지막 저장을 \n으로 해놨기 때문에 또 split를 이용하여 \n을 불리시킵니다.
- self.Getanal_code.append([t_code, t_name, current_price, dept]) : append 함수를 사용하여 위에서 불러온 모든 값을 저장합니다. 총 3개가 존재하니 [ [삼성전기의 값], [바이넥스의 값], [삼성전자의 값]]으로 저장됩니다.
- f.close() : 다 불러왔으니 열었던 Text를 종료합니다.
3. 임의의 공간에 입력된 값을 GUI에 전시하기
GUI 중 Table Widget에 입력하는 방법은 2번은 설명드렸을 것입니다. 특히 33강에서는 정말 자세히 설명드렸으니 다시 읽어 보시기 바랍니다. 그래도? 다시 또 한 번 설명은 간단히 드리겠습니다.
- colum_head: 열의 이름을 정의합니다.
- len(column_head) : 총 4개의 열이 생성되겠군요
- len(self.Getanal_code) : 총 3개의 종목이 들어 있으니 행은 3개가 만들어지겠군요
- seltColumnCount ~ setSelectionMode를 통해 행과 열을 구성하고 열의 이름도 정의합니다.
- self.buylast.setItem(index, 0, QTableWidgetItem(str(self.Gental_code[index][0]))) : 잘 보시면 index는 rouCount를 가져오니 행의 값입니다. 총 3개의 행이 있으니 0부터 2가 들어 가겠군요. 그리고 self.Gental_code[index][0] 즉 index가 0이면 0번째의 0, 즉, 삼성전기의 종목코드가 로드됩니다. 만약 index가 0이고 1이면 삼성전기의 종목명이 로드됩니다. 그리고 index가 2이고 0이면 삼성전자의 종목코드가 로드됩니다.
이렇게 하면 우리가 원하는 값을 최종 로드할 수 있습니다. 전체 코드는 39강에서 이번 챕터를 마무리하고 공개하도록 하겠습니다. 수고하셨습니다.
'주식 자동매매 강의 > 기초반(모든 코딩의 뿌리)' 카테고리의 다른 글
주식자동매매 39강. 실시간 자동매매 구현(1), KOA Studio등 실시간 매매 개념 잡기,GUI 구성하기 (5) | 2022.06.01 |
---|---|
주식자동매매 38강. 선정 종목 데이터베이스화 하기(3), 저장된 텍스트 파일 삭제 및 코드 공개 (0) | 2022.05.31 |
주식자동매매 37강. 선정 종목 데이터베이스화 하기(1), GUI 및 txet 저장하기 (7) | 2022.05.28 |
주식자동매매 36강. 자동매매 종목 선정(5), 최종 정리 및 코드 공유 (17) | 2022.05.27 |
주식자동매매 35강. 자동매매 종목 선정(4), 선정 종목 삭제하기 (4) | 2022.05.27 |