금융퀀트/(퀀트)증권사API활용(키움)
-
[키움API]python 샤프지수를 이용한 종목선정 2금융퀀트/(퀀트)증권사API활용(키움) 2024. 1. 28. 16:28
종목별 샤프지수 분석과 UI 변경 샤프지수의 정의 샤프지수는 아래 식으로 나타낼 수 있다.(샤프지수(Sharpe Ratio): 얼마나 덜 쫄리게 많이 벌었나? 참조) 샤프지수 = (투자자산의 수익률 - 기초수익률 ) / 투자자산의 변동성 우리는 [키움API]python 샤프지수를 이용한 종목선정1: 코스피 종목 종가데이터 입수에서 종목별 종가를 입수했기 때문에 종목별 일일 수익률과 계산된 일일 수익률의 표준편차로 수익률의 변동성을 알 수 있다. 그리고 기초 수익률은 해당 종목이 아닌 예금 등 무위험 자산에 투자했을 때 얻을 수 있는 수익률인데 현재 3년 국고채 금리인 3.3% 정도로 잡으면 될 것 같다. 주의해야 할 점은 일일 수익률과 일일 표준편차를 계산했기 때문에 연 금리인 3.3%를 일일 금리로 환..
-
[키움API]python 샤프지수를 이용한 종목선정1: 코스피 종목 종가데이터 입수금융퀀트/(퀀트)증권사API활용(키움) 2024. 1. 22. 07:29
코스피 종목 데이터 찾기: KRX데이터시스템 [키움API]파이썬 주식 종목별 종가정보 불러오기5: UI파일 화면구성(Qt Designer) 및 프로그램module과 CLASS구성까지는 키움에서 제공하는 주식목록입수 API 함수인 GetCodeListByMarket 을 사용해서 약 15,000 개 가량의 종목을 대상으로 입수 작업을 했다. 큰 기업 위주로 투자하겠다는 계획이면 사실 코스피 주식들만 분석해 보면 되기 때문에 약 15,000 개가 되는 데이터 전부를 DB에 저장할 필요는 없다. 코스피 종목은 아래 그림 1과 같이 KRX정보데이터시스템(http://data.krx.co.kr/)에서 지수 -> 주가지수 -> 지수구성종목 항목에서 지수명에 "코스피"를 입력하면 볼 수 있으며 그림 1에 표시된 버튼을..
-
[키움API]파이썬 주식 종목별 종가정보 불러오기6: 데이터 수집시 주의사항금융퀀트/(퀀트)증권사API활용(키움) 2024. 1. 20. 09:10
데이터 요청 횟수 제한 [키움API]파이썬 주식 종목별 종가정보 불러오기5: UI파일 화면구성(Qt Designer) 및 프로그램module과 CLASS구성 에서 완성한 프로그램으로 이제 데이터 수집만 하면 종목 추천을 위한 기본 DB를 구성할 수 있다. 하지만 무작정 아래 그림 1과 같이 종료 인덱스를 10000으로 놓고 기간별 종가 데이터 입수를 하면 안 된다. 키움에서 서버 과부하 방지를 위해서 몇 가지 제약을 걸어놓았기 때문이다. 제약사항은 아래 그림 2와 같이 KOA Studio의 하단 텝의 개발가이드 텝 -> 자주 묻는 질문 -> "키움OpenAPI 개발/구현 중입니다." 항목에 나와 있다. 대표적인 제약사항이 1초당 5회 횟수제한과 서버부하 방지 제한이다. [키움API]파이썬 주식 종목별 종..
-
[키움API]파이썬 주식 종목별 종가정보 불러오기5: UI파일 화면구성(Qt Designer) 및 프로그램module과 CLASS구성금융퀀트/(퀀트)증권사API활용(키움) 2023. 12. 19. 08:07
프로그램 UI 재구성코스피의 전체종목 정보를 불러와서([키움API]파이썬 주식 종가정보 불러오기3: 전체종목 기간별 종가조회)DB에 저장하는([키움API]파이썬 주식 종가정보 불러오기4: 데이터 DB저장(mysql)) 기능을 [키움API]python 메인 화면 만들기(Qt Designer 사용)에서 만든 메인 화면버튼에 추가할 필요가 있다.위 그림 1 처럼 먼저 화면 내에 다양한 모양의 위젯을 추가해 준다. 각 위젯에는 클래스명과 아이디가 있고 위 그림 1에서는 "클래스명":"아이디"로 표시했다. 위젯에서 데이터를 가져오거나 클릭 이벤트를 감지할 때 클래스명과 아이디를 통해서 기능을 구현한다. 프로그램 구조도"주식 종목별 종가정보를 불러오는" 단순한 작업은 "메인화면에서 전체 기능을 조율", "키움 AP..
-
[키움API]파이썬 주식 종가정보 불러오기4: 데이터 DB저장(mysql)금융퀀트/(퀀트)증권사API활용(키움) 2023. 12. 6. 15:37
MySQL연결하기 [키움API]파이썬 주식 종가정보 불러오기3: 전체종목 기간별 종가조회에서 작업해 본 것처럼 종목당 600개 정도의 시계열 데이터가 나오고 전체 종목 수는 약 2,000 개 정도니까 전체 데이터를 전부 수집하면 약 1,200,000 개 정도 된다. 이런 방대한 데이터는 엑셀로 관리하기는 힘들고 MySQL을 통해서 DB로 관리하면 편하다.(심지어 무료다.) 파이썬에서 mysql을 사용하려면 먼저 mysql을 설치한 뒤(MYSQL 설치(Windows)를 참조) 아나콘다 프롬프트에서 내가 현재 작업 중인 가상환경을 활성화 한다. 그리고 pip install pymysql, pip install sqlalchemy를 통해서 파이썬과 mysql을 연결해 주는 라이브러리를 설치해 준다. 설치가 완..
-
[키움API]파이썬 주식 종가정보 불러오기3: 전체종목 기간별 종가조회금융퀀트/(퀀트)증권사API활용(키움) 2023. 12. 2. 09:13
시계열데이터 만들기: GetCommData 함수 재구성 KOAStudio 조회 화면을 보면 아래 그림 1에 표시됨 부분의 숫자가 0에서부터 늘어나면서 599까지 조회가 되는 것을 알 수 있다. 0 번째 인덱스 데이터가 기준일자 데이터이고 599 번째 데이터는 599 영업일 뒤의 데이터니까 약 2년 6개월 정도 기간 동안의 종가 데이터를 한 번에 볼 수 있는 것이다.(1년은 약 250 영업일 정도 된다.) 위 그림 1의 인덱스를 나타내는 부분은 아래 GetCommData 의 세 번째 변수로 지금까지 단순히 0으로 설정했던 부분을 변수로 아래와 같이 바꿔주면 된다. # AS-IS def GetCommData(self, trcode: str, trname: str, item: str): return self...
-
[키움API]파이썬 주식 종가정보 불러오기2: 개별종목 종가조회금융퀀트/(퀀트)증권사API활용(키움) 2023. 11. 30. 07:52
종목별 종가 입수 함수 확인: KOA 스튜디오 구현 예시 종목별 종가정보 조회는 키움 API로 "주식일봉차트조회요청"을 하면 된다. KOA Studio에서 Open API 접속을 한 뒤에 아래 그림 1의 좌측처럼 표시된 칸에 종목코드와 기준일자 정도를 넣으면 그림 1의 우측처럼 결과를 볼 수 있다. 그림 1의 우측 상단에는 어떤 API 함수를 호출해야 하는지 안내가 되어 있다. SetInputValue 함수를 통해서( SetInputValue("종목코드" , "005930"), SetInputValue("기준일자" , "20231129"), SetInputValue("수정주가구분" , "") ) 종목코드, 기준일자, 수정주가구분 설정을 해주고, CommRqData( "RQName" , "opt10081"..
-
[키움API]파이썬 주식 종가정보 불러오기1: 종목코드 목록 입수금융퀀트/(퀀트)증권사API활용(키움) 2023. 11. 24. 07:06
종목리스트 입수 함수 확인 이제 아래 그림 1의 "기간별 종가 데이터 입수" 버튼 기능을 만들어보자.(버튼 이름의 뜻이 명확하지 않아서 바꿨다.) 주식 종목의 기간별 종가 데이터 입수 작업은 "주식코드의 입수 및 목록화 -> 기준일자의 주식코드별 종가 데이터 수집 -> 일자를 바꿔가면서 종가 데이터 반복 수집-> DB저장"으로 나눌 수 있다. 먼저 주식코드의 입수 및 목록화부터 진행해 보자. 키움 API 개발 가이드를 보면 아래 그림 2와 같이 GetCodeListByMarket이라는 함수를 써서 주식코드 목록을 받을 수 있다는 것을 확인할 수 있다. 여기에서 함수에 패러미터로 "0"을 넣으면 장내, "3"을 넣으면 ELW, "4"를 넣으면 뮤추얼펀드 등이 나오는 방식이다. 코스피 종목 리스트 불러오기 ..