분류 전체보기
-
지난 게시글에서 살펴봤듯이, 키움증권 Open API 상에서 데이터를 요청하는 방법에는 SetInputValue와 CommRqData를 사용하는 방법과 dynamicCall("")을 사용하는 방법 두 가지가 있다. 이번 게시글에서는 두 가지 방법 중 전자에 해당하는 방법을 사용하는 방법에 대해 알아볼 예정이다. 본인의 경우 항상 코드를 구축하기 전에 앞서 실질적으로 구현해내고자 하는 형태를 고안한 후에 코드를 제작했다. 그니까, 어떤 버튼을 눌렀을 때 어떤 동작이 수행되도록 처리할 것인지를 생각하고 어떤 데이터들을 받아올 것인지에 대해 고민해본 후에 코드를 제작했다는 것이다. 이 과정에서 반복적으로 사용되어야 할 것 같은 코드라면 잘게 잘게 쪼개서 부분적으로 사용할 수 있도록 하는 캡슐화라는 개념이 등장..
[자동 매매 시스템 구축하기] 자료 요청 구조 구축하기(캡슐화)지난 게시글에서 살펴봤듯이, 키움증권 Open API 상에서 데이터를 요청하는 방법에는 SetInputValue와 CommRqData를 사용하는 방법과 dynamicCall("")을 사용하는 방법 두 가지가 있다. 이번 게시글에서는 두 가지 방법 중 전자에 해당하는 방법을 사용하는 방법에 대해 알아볼 예정이다. 본인의 경우 항상 코드를 구축하기 전에 앞서 실질적으로 구현해내고자 하는 형태를 고안한 후에 코드를 제작했다. 그니까, 어떤 버튼을 눌렀을 때 어떤 동작이 수행되도록 처리할 것인지를 생각하고 어떤 데이터들을 받아올 것인지에 대해 고민해본 후에 코드를 제작했다는 것이다. 이 과정에서 반복적으로 사용되어야 할 것 같은 코드라면 잘게 잘게 쪼개서 부분적으로 사용할 수 있도록 하는 캡슐화라는 개념이 등장..
2022.07.02 -
키움증권 Open API 모듈을 이용해서 로그인하는 방법은 개발 가이드 내에서도 자세하게 다루고 있는 내용인데, 사실 이제부터 코드를 구축하기 위해서는 Open API를 사용하기 위한 방법에 대해 알고 있어야 한다. Open API를 통해 데이터를 획득하는 방법에는 크게 두 가지가 있는데, 아래의 사진을 참고하면 된다. 둘 간의 차이점을 알아보자면, 방법 ①은 KOA Studio 상에서 하단의 두 번째 메뉴인 TR 목록에 해당하는 데이터를 의미하고, 방법 ②는 네 번째 메뉴인 개발가이드 내에서 언급하고 있는 함수를 의미한다는 것이다. 보다 자세히 이야기해보자면, 방법 ①은 CommRqData 함수를 사용하는 과정에 있어서 반드시 "opt" 또는 "opw"라는 영단어가 포함된다는 것이고, 방법 ②는 "op..
[자동 매매 시스템 구축하기] 키움증권 Open API 로그인키움증권 Open API 모듈을 이용해서 로그인하는 방법은 개발 가이드 내에서도 자세하게 다루고 있는 내용인데, 사실 이제부터 코드를 구축하기 위해서는 Open API를 사용하기 위한 방법에 대해 알고 있어야 한다. Open API를 통해 데이터를 획득하는 방법에는 크게 두 가지가 있는데, 아래의 사진을 참고하면 된다. 둘 간의 차이점을 알아보자면, 방법 ①은 KOA Studio 상에서 하단의 두 번째 메뉴인 TR 목록에 해당하는 데이터를 의미하고, 방법 ②는 네 번째 메뉴인 개발가이드 내에서 언급하고 있는 함수를 의미한다는 것이다. 보다 자세히 이야기해보자면, 방법 ①은 CommRqData 함수를 사용하는 과정에 있어서 반드시 "opt" 또는 "opw"라는 영단어가 포함된다는 것이고, 방법 ②는 "op..
2022.07.01 -
이전 게시글까지 해서 Pycharm, Python, 키움증권 Open API 모듈, KOA Studio까지 설치했고, 이번 게시글에서는 프로그램을 디자인할 수 있는 근간이 되는 Qt GUI를 설치하여 직접 디자인해보고 코드와 연결하는 내용까지 진행해보도록 하자. Qt GUI 설치하고 실행하기 앞서 설치했던 파이참을 열어보도록 하자. 이전 게시글에서 IDE에 대해 설명했던 적이 있는데, IDE는 말 그대로 통합개발환경을 의미하는 만큼, 다양한 프로그램들을 설치하거나 실행하는 동작들을 모두 수행할 수 있다. 한줄로 요약하자면, 그냥 개발할 수 있는 환경 그 자체를 제공해주니 다른 데 왔다갔다 하지 말고 프로그램 내에서 다 해결할 수 있다는 것이다. 이말인 즉슨, 우리는 파이참을 통해 Qt GUI를 설치할 수..
[자동 매매 시스템 구축하기] GUI 생성·제작·연결이전 게시글까지 해서 Pycharm, Python, 키움증권 Open API 모듈, KOA Studio까지 설치했고, 이번 게시글에서는 프로그램을 디자인할 수 있는 근간이 되는 Qt GUI를 설치하여 직접 디자인해보고 코드와 연결하는 내용까지 진행해보도록 하자. Qt GUI 설치하고 실행하기 앞서 설치했던 파이참을 열어보도록 하자. 이전 게시글에서 IDE에 대해 설명했던 적이 있는데, IDE는 말 그대로 통합개발환경을 의미하는 만큼, 다양한 프로그램들을 설치하거나 실행하는 동작들을 모두 수행할 수 있다. 한줄로 요약하자면, 그냥 개발할 수 있는 환경 그 자체를 제공해주니 다른 데 왔다갔다 하지 말고 프로그램 내에서 다 해결할 수 있다는 것이다. 이말인 즉슨, 우리는 파이참을 통해 Qt GUI를 설치할 수..
2022.07.01 -
모듈이라 함은 정말 기본적인 개념이기 때문에 지금 당장 여기서 이해하지 않아도 추후에 코드를 구축하다보면 모듈이란 무엇인지 어렵지 않게 이해할 수 있다. 그리고 무엇보다도, 코드를 짜는 데에 있어 모듈이라는 개념이 중요하지도 않다. 모듈 설치하기 키움증권 Open API를 사용하기로 했으니, 키움증권에서 제공하는 Open API 모듈을 설치해야 한다. 마찬가지로 키움증권 사이트 내에서 하단부의 Open API를 클릭하고, 절차에 따라 신청하라는 것들을 진행해주면 된다. Open API 사용신청을 하고, Open API를 설치하고, KOA Studio를 설치하면 된다. 그냥 파일을 눌러서 다운로드 해주면 알아서 다 설치되니, ①Open API 모듈과 ②KOA Studio를 설치하고 오도록 하자. 여기서 O..
[자동 매매 시스템 구축하기] 키움증권 Open API 모듈 설치모듈이라 함은 정말 기본적인 개념이기 때문에 지금 당장 여기서 이해하지 않아도 추후에 코드를 구축하다보면 모듈이란 무엇인지 어렵지 않게 이해할 수 있다. 그리고 무엇보다도, 코드를 짜는 데에 있어 모듈이라는 개념이 중요하지도 않다. 모듈 설치하기 키움증권 Open API를 사용하기로 했으니, 키움증권에서 제공하는 Open API 모듈을 설치해야 한다. 마찬가지로 키움증권 사이트 내에서 하단부의 Open API를 클릭하고, 절차에 따라 신청하라는 것들을 진행해주면 된다. Open API 사용신청을 하고, Open API를 설치하고, KOA Studio를 설치하면 된다. 그냥 파일을 눌러서 다운로드 해주면 알아서 다 설치되니, ①Open API 모듈과 ②KOA Studio를 설치하고 오도록 하자. 여기서 O..
2022.06.29 -
IDE란 통합 개발 환경(Integrated Development Environment)의 줄임말로, 단순하게 개발 환경을 의미한다고 보면 된다. IDE에는 Microsoft 사의 Visual Code, JetBrains의 Pycharm 등 다양한 프로그램들이 있지만 개인적으로는 Pycharm(이하 파이참)을 선호한다. 사용하는 이용자들의 의견에 따르면 Visual Code가 조금 더 가볍게 돌릴 수 있다는 이야기들이 있긴 하지만 애당초 IDE는 컴퓨터 성능이 크게 받쳐줘야 하는 게 아니다 보니 본인 취향에 맞게 사용하면 된다. 파이참 설치하기 파이참 설치 사이트에 방문하면 아래의 같이 Community 하단에 다운로드 버튼이 있다. 왼쪽의 Professional은 유료니 우리는 그냥 무료 버전을 다운로..
[자동 매매 시스템 구축하기] IDE와 파이썬 설치하기IDE란 통합 개발 환경(Integrated Development Environment)의 줄임말로, 단순하게 개발 환경을 의미한다고 보면 된다. IDE에는 Microsoft 사의 Visual Code, JetBrains의 Pycharm 등 다양한 프로그램들이 있지만 개인적으로는 Pycharm(이하 파이참)을 선호한다. 사용하는 이용자들의 의견에 따르면 Visual Code가 조금 더 가볍게 돌릴 수 있다는 이야기들이 있긴 하지만 애당초 IDE는 컴퓨터 성능이 크게 받쳐줘야 하는 게 아니다 보니 본인 취향에 맞게 사용하면 된다. 파이참 설치하기 파이참 설치 사이트에 방문하면 아래의 같이 Community 하단에 다운로드 버튼이 있다. 왼쪽의 Professional은 유료니 우리는 그냥 무료 버전을 다운로..
2022.06.29 -
본인은 이제 어느 정도 알고리즘을 기반으로 동작하는 거래 로직이 안정화되었다는 생각이 들어, 이제는 자동 매매 시스템을 구축하고자 하는 분들을 위해 자동 매매 시스템을 구축하는 동안에 쌓아온 지식과 사용해왔던 방법들을 글로나마 남겨두고 싶다는 생각이 들어 작성을 시작하게 되었다. 뭐부터 해야 할까? 자동 매매 시스템을 구축하기 전에 앞서, 여태까지의 경험으로 미루어보아 자동 매매를 진행하기 위해 처리해주어야 하는 데이터들이 예상외로 많고 정상적으로 거래가 이루어지도록 하기 위해 준비해야 하는 준비물들도 예상외로 많다. 따라서 데이터 조회부터 종목 선정 그리고 주문과 후속 데이터 처리를 포함하여 Qt GUI를 이용한 프로그램 제작 등등 다양한 분야의 개념을 사용하여 자동 매매 시스템을 구축하는 방법에 대해..
[자동 매매 시스템 구축하기] 기본 설명서본인은 이제 어느 정도 알고리즘을 기반으로 동작하는 거래 로직이 안정화되었다는 생각이 들어, 이제는 자동 매매 시스템을 구축하고자 하는 분들을 위해 자동 매매 시스템을 구축하는 동안에 쌓아온 지식과 사용해왔던 방법들을 글로나마 남겨두고 싶다는 생각이 들어 작성을 시작하게 되었다. 뭐부터 해야 할까? 자동 매매 시스템을 구축하기 전에 앞서, 여태까지의 경험으로 미루어보아 자동 매매를 진행하기 위해 처리해주어야 하는 데이터들이 예상외로 많고 정상적으로 거래가 이루어지도록 하기 위해 준비해야 하는 준비물들도 예상외로 많다. 따라서 데이터 조회부터 종목 선정 그리고 주문과 후속 데이터 처리를 포함하여 Qt GUI를 이용한 프로그램 제작 등등 다양한 분야의 개념을 사용하여 자동 매매 시스템을 구축하는 방법에 대해..
2022.06.29 -
이번 게시글에서는 백테스팅을 진행하는 과정에 있어서 여러 가지 알고리즘들을 생성하게 될텐데, 그 과정에서 고려해야 하는 요소에 대해 다루어보고자 한다. 목차는 다음과 같으며, 목차를 클릭하면 해당하는 내용으로 들어가게 된다. 백테스팅 시에는 예상외로 고려해야 할 부분들이 많고 소제목 하나 하나의 내용이 길기 때문에, 차분하게 천천히 읽어나가길 권합니다. ※ 퍼갈 경우 반드시 출처를 표기해주시기 바랍니다. [목차] 백테스팅의 의의 "시점이 중요하다". 시점을 기준으로 데이터를 나누어 살펴보아야 한다. 백테스팅 시에는 나타나지 않는 실 거래의 문제점 백테스팅 시에 사용하는 알고리즘이 올바르게 동작하는지 확인해야 한다. 필요한 데이터를 모두 입력하고 확인하라. 백테스팅의 의의 백테스트(Back-test)는 기..
백테스팅 방법론이번 게시글에서는 백테스팅을 진행하는 과정에 있어서 여러 가지 알고리즘들을 생성하게 될텐데, 그 과정에서 고려해야 하는 요소에 대해 다루어보고자 한다. 목차는 다음과 같으며, 목차를 클릭하면 해당하는 내용으로 들어가게 된다. 백테스팅 시에는 예상외로 고려해야 할 부분들이 많고 소제목 하나 하나의 내용이 길기 때문에, 차분하게 천천히 읽어나가길 권합니다. ※ 퍼갈 경우 반드시 출처를 표기해주시기 바랍니다. [목차] 백테스팅의 의의 "시점이 중요하다". 시점을 기준으로 데이터를 나누어 살펴보아야 한다. 백테스팅 시에는 나타나지 않는 실 거래의 문제점 백테스팅 시에 사용하는 알고리즘이 올바르게 동작하는지 확인해야 한다. 필요한 데이터를 모두 입력하고 확인하라. 백테스팅의 의의 백테스트(Back-test)는 기..
2022.06.12 -
키움증권에서 제공하는 개발 가이드 내 실시간 데이터 FID 리스트를 살펴보면 여러 가지 FID들이 제공되고 있지만, 8.19 주문 체결과 8.20 잔고는 OnReceiveRealData 이벤트가 아닌 OnReceiveChejanData 내에서 처리해야한다. OnRecieveChejanData 이벤트 처리하기이 부분은 여타 이벤트 처리 방법과 크게 다르지 않다. 키움증권 내에서 발생하는 이벤트는 아래의 7가지로, 그 외에 발생하는 이벤트는 존재하지 않는다. 따라서 아래 7개의 이벤트만 실행할 함수와 연결해주면 된다.self.kiwoom.OnReceiveTrData.connect(self.receive_trdata) self.kiwoom.OnReceiveRealData.connect(self...
키움증권 Open API - 체결 데이터 및 잔고 관리하기 (1)키움증권에서 제공하는 개발 가이드 내 실시간 데이터 FID 리스트를 살펴보면 여러 가지 FID들이 제공되고 있지만, 8.19 주문 체결과 8.20 잔고는 OnReceiveRealData 이벤트가 아닌 OnReceiveChejanData 내에서 처리해야한다. OnRecieveChejanData 이벤트 처리하기이 부분은 여타 이벤트 처리 방법과 크게 다르지 않다. 키움증권 내에서 발생하는 이벤트는 아래의 7가지로, 그 외에 발생하는 이벤트는 존재하지 않는다. 따라서 아래 7개의 이벤트만 실행할 함수와 연결해주면 된다.self.kiwoom.OnReceiveTrData.connect(self.receive_trdata) self.kiwoom.OnReceiveRealData.connect(self...
2022.05.24 -
[ERROR CODE] sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1193, "Unknown system variable 'transaction_isolation'") 노트북을 새롭게 구매한 후에 세팅하던 중 계속 오류가 발생해서 검색해보니, MySQL 8.0 내 변수로 tx_isolation만 존재하는 오류가 발생했다. 원칙 상, MySQL 5.7.20 버전 이후의 버전부터는 tx_isolation을 사용하지 않고 transaction_isolation을 사용하기 때문에, MySQL 8.0을 사용한다면 tx_isolation은 없고 transaction_isolation만 존재해야 한다. MySQL 설치 시에 함꼐 설치되는 MyS..
mysql 8.0 내에서 tx_isolation만 있는 경우[ERROR CODE] sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1193, "Unknown system variable 'transaction_isolation'") 노트북을 새롭게 구매한 후에 세팅하던 중 계속 오류가 발생해서 검색해보니, MySQL 8.0 내 변수로 tx_isolation만 존재하는 오류가 발생했다. 원칙 상, MySQL 5.7.20 버전 이후의 버전부터는 tx_isolation을 사용하지 않고 transaction_isolation을 사용하기 때문에, MySQL 8.0을 사용한다면 tx_isolation은 없고 transaction_isolation만 존재해야 한다. MySQL 설치 시에 함꼐 설치되는 MyS..
2022.05.02 -
본인은 2019년 9월 경부터 체리 새우를 키우기 시작했고, 2020년 3월 경에는 알비노 모스코 퍼플이라는 상당히 멋있는 고정 구피를 분양해서 키웠던 경험이 있다. 이 과정에서 수초와 더불어 이탄이니 비료니 뭐니 하는 것들과, 수질과 더불어 산성이니 약산성이니 경도니 PH니 하는 것들과, 구피의 질병과 더불어 에로모나스니 칼럼나리스니 솔방물이니 뭐니 하는 것들에 대한 지식을 배웠다. 이 모든 지식들은 모든 생물을 분양 보낸 2022년 4월까지, 거진 3년 동안 길렀으니 대학을 다닌 셈 치자. 모든 생물을 보낸 이유는 단순하다. 키우는 게 너무 힘들었다. 언제부터인진 모르지만 어느 순간부터인가 정이 떨어지기 시작하자 어항을 관리할 엄두가 나지 않기 시작했고, 그렇게 아이들은 아프기 시작했지만 관심을 끄고..
구피의 브라인쉬림프본인은 2019년 9월 경부터 체리 새우를 키우기 시작했고, 2020년 3월 경에는 알비노 모스코 퍼플이라는 상당히 멋있는 고정 구피를 분양해서 키웠던 경험이 있다. 이 과정에서 수초와 더불어 이탄이니 비료니 뭐니 하는 것들과, 수질과 더불어 산성이니 약산성이니 경도니 PH니 하는 것들과, 구피의 질병과 더불어 에로모나스니 칼럼나리스니 솔방물이니 뭐니 하는 것들에 대한 지식을 배웠다. 이 모든 지식들은 모든 생물을 분양 보낸 2022년 4월까지, 거진 3년 동안 길렀으니 대학을 다닌 셈 치자. 모든 생물을 보낸 이유는 단순하다. 키우는 게 너무 힘들었다. 언제부터인진 모르지만 어느 순간부터인가 정이 떨어지기 시작하자 어항을 관리할 엄두가 나지 않기 시작했고, 그렇게 아이들은 아프기 시작했지만 관심을 끄고..
2022.04.30 -
대상 제품 : 인텔 12세대 CPU 장착 LG 그램 본인 제품 : 16ZD90Q-GX56K 기존에 사용하던 삼성 노트북의 성능이 점차 느려짐과 동시에 코딩으로 인해 키스킨의 Ctrl 부분은 구멍이 생겨났고 스페이스바 부분은 하도 눌러대니 키스킨이 늘어났다. 이에 따라 지난 4월 11일, 인텔 12세대 LG 그램을 구매했고 20일이 지난 후인 오늘, 4월 30일이 되어서야 받았다. 기존에 사용하던 노트북(NT900X3L-K38WS)은 13.3인치이긴 하나 860g으로 상당히 가벼운 무게를 자랑하는 노트북이었기에 대학 생활 내내 상당히 만족스럽게 사용해왔고, 과제를 하거나 하는 데에도 전혀 불편함이 없었을 뿐더러 코딩을 시작한 후에도 큰 부담감 없이(렉은 있었지만) 잘 버텨와주었다. 하지만 어느 샌가 버거워..
LG 그램 노트북 SSD 자가 업그레이드대상 제품 : 인텔 12세대 CPU 장착 LG 그램 본인 제품 : 16ZD90Q-GX56K 기존에 사용하던 삼성 노트북의 성능이 점차 느려짐과 동시에 코딩으로 인해 키스킨의 Ctrl 부분은 구멍이 생겨났고 스페이스바 부분은 하도 눌러대니 키스킨이 늘어났다. 이에 따라 지난 4월 11일, 인텔 12세대 LG 그램을 구매했고 20일이 지난 후인 오늘, 4월 30일이 되어서야 받았다. 기존에 사용하던 노트북(NT900X3L-K38WS)은 13.3인치이긴 하나 860g으로 상당히 가벼운 무게를 자랑하는 노트북이었기에 대학 생활 내내 상당히 만족스럽게 사용해왔고, 과제를 하거나 하는 데에도 전혀 불편함이 없었을 뿐더러 코딩을 시작한 후에도 큰 부담감 없이(렉은 있었지만) 잘 버텨와주었다. 하지만 어느 샌가 버거워..
2022.04.30 -
여러 컴퓨터에서 코딩을 한다거나, 아니면 제작한 코드를 배포한다거나 할 경우 코드에서 사용한 파이썬 라이브러리를 그대로 설치해주어야 그 코드를 사용할 수 있다. freeze는 많이 떠돌아다니는 정보니 그렇다 치고, 일단 컴퓨터별로 특정 라이브러리가 설치된 경로가 다르다보니 그대로 사용할 경우에 경로를 찾을 수 없다는 오류들이 발견되곤 한다. ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 실제로 설치가 멈추는 부분들을 살펴보면, 그 내용이 아래와 같이 작성되어 있다. 특징이라면, 중간에 골뱅이가 있다는 것. mysqlclient @ file:///C:/Users/nhk49/mysqlclient..
파이썬 라이브러리 한 번에 옮기기 #[Errno2]여러 컴퓨터에서 코딩을 한다거나, 아니면 제작한 코드를 배포한다거나 할 경우 코드에서 사용한 파이썬 라이브러리를 그대로 설치해주어야 그 코드를 사용할 수 있다. freeze는 많이 떠돌아다니는 정보니 그렇다 치고, 일단 컴퓨터별로 특정 라이브러리가 설치된 경로가 다르다보니 그대로 사용할 경우에 경로를 찾을 수 없다는 오류들이 발견되곤 한다. ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 실제로 설치가 멈추는 부분들을 살펴보면, 그 내용이 아래와 같이 작성되어 있다. 특징이라면, 중간에 골뱅이가 있다는 것. mysqlclient @ file:///C:/Users/nhk49/mysqlclient..
2022.04.25