반응형

퀀트투자 6

한국투자증권 OpenAPI 사용하기(2) - KIS Developers

지난 글에서는 한국투자증권의 api를 쉽게 사용할 수 있게 만들어진 mojito 사용법을 알아보았습니다. 하지만 아쉽게도 mojito에 모든 기능들이 다 구현되어 있지는 않아서 추가로 필요한 기능들은 스스로 추가해 주어야 합니다. 그래서 이번에는 현재(2024/02/25) mojito 버전(0.1.6)에 구현되어 있지 않은 기능을 추가하는 방법을 알아보겠습니다. 그러기 위해서는 먼저 mojito를 가상환경에 설치해 주시고, KIS developers에 접속하시면 됩니다. 이번 글에서는 '호가 정보'와 '주문 체결 조회'를 하는 메서드를 추가해 보겠습니다. 우선 호가 정보를 불러오는 함수를 먼저 만들어보겠습니다. API 문서의 국내주식시세->주식현재가 호가/예상 체결에 들어가 보면 호가 정보를 불러오는 u..

퀀트투자 2024.02.25

퀀트 리밸런싱 테스트: 시가에 살까 종가에 살까?

최근 퀀터스를 사용해서 백테스트를 진행해 보다가 직접 돌려보고 싶어서 전략에 대한 past history 데이터를 받아서 실험을 해보았습니다. 그러다 발견한 재미있는 사실을 공유하고자 글을 작성했습니다. 우선 전략은 성장+가치 소형주(PER, PSR, POR, PGPR, 순이익, 영업이익, 매출총이익, 매출액), 성장+가속 성장 소형주( 순이익, 영업이익, 매출총이익, 매출액) 2가지를 사용해서 진행해 보았습니다. 기간은 최근 10년만 보기 위해 2013년 1월부터 진행했습니다. 리밸런싱은 월별로 진행하였습니다. 초기 자금은 100원으로 설정했고 (편의를 위해) 세금이나 수수료 등을 고려하지 않았습니다. 퀀트는 리밸런싱을 진행하는데 이 리밸런싱은 시가 or 종가 언제 진행하는 것이 좋을까? (월별 첫 거..

퀀트투자 2023.12.01

도파민과 투자 마인드

우연히 보게 된 도파민과 시간의 흐름에 대한 유튜브([1])를 보며 배운 것들과 느낀 점을 작성해 보았습니다. 우리가 나이를 먹을수록 시간이 빨리 간다는 인식은 뇌 과학적 관점으로 설명됩니다. 어린 시절에는 새로운 경험이 많아 시간이 천천히 흐르는 느낌을 준다고 합니다. 각 순간이 참신하고 새롭게 느껴져 시간의 인식을 늘려주는데 반해, 우리가 성숙해지고 경험이 쌓이게 되면서, 반복적인 일상이 우리의 삶을 지배하면서 시간을 빨리 흘러갔다고 느껴지게 만듭니다. 저도 매일 회사->집->회사를 무한 루프 돌며 살아가고 있는 현재, 시간이 매우 빠르게 흘러갔다고 느껴집니다. 영상에서 보면 도파민이 시간적 경험에서 중요한 역할을 한다고 합니다. 불확실한 세상에서 우리의 뇌는 예측과 일치하는 결과가 나올 때 도파민을..

퀀트투자 2023.11.09

한국투자증권 OpenAPI 사용하기(1) - mojito

자동 매매 프로그램을 만들기 위해 다양한 증권사의 API를 사용한 적이 있습니다. 키움, 대신, 이베스트 등을 사용했었는데, 사용하기 쉬운 느낌은 아니었습니다. 사용해 본 적도 없는 PyQT나 이벤트 처리 등을 하는 게 낯설어 처음엔 좀 헤매기도 했습니다. 그런데 드디어 한국투자증권이 Rest API 기반의 오픈 API 서비스를 제공하기 시작했습니다. 이를 모히토(mojito) ([1])라는 라이브러리로 사용하기 쉽게 만들어 주신 고마운 분도 계십니다. 이 라이브러리를 사용하면 파이썬 기초만 아시는 분들도 자동 매매 프로그램을 만들 수 있을 정도로 좋아 보여 이를 활용해서 퀀트 투자를 할 수 있는 방법에 대해 알아보겠습니다. 당연히 한투증권의 api를 사용하기 위해서는 계좌 개설 및 open api를 사..

퀀트투자 2023.11.04

일봉 데이터를 주봉, 월봉으로 변환하기 (with python)

FinanceDataReader([1]) 라이브러리를 사용하면 다양한 주식 혹은 index 등에 대한 일봉 데이터를 가져오기 쉽습니다. 하지만 투자를 할 때 주봉, 월봉도 고려하고 싶어 집니다. 이를 위해 python을 사용해 일봉 데이터를 변환하는 방법을 알아보겠습니다. 주가 데이터는 보통 dataframe 으로 나타내고, python에는 이를 처리하기 위한 pandas라는 강력한 툴이 있습니다. 이 pandas에는 resample([2])이라는 강력한 method도 있습니다. 이 method 에는 'rule'이라는 변수를 넣어야 하는데, 데이터를 resample 할 기준에 대한 값으로, 'Y', 'M', 'W', 'D', 'H', 'T'(min) 등이 들어갈 수 있습니다. 예를 들어 'W'로 값을 넣..

퀀트투자 2023.10.28

대신증권 API로 데이터 가져오기 (분봉, 일봉) with python

퀀트 혹은 백테스팅을 위해서는 과거 주가 데이터는 필수입니다. 이를 수집하기 위한 많은 방법이 있는데, 일봉 데이터를 얻으려면 FinanceDataReader([1])를 사용하여 일봉 데이터를 가져오는 방법이 가장 간단해 보입니다. 하지만 분봉 수준의 데이터는 증권사 api를 사용해야 합니다. 키움, 이베스트, 대신 증권 등에서 모두 이를 지원하는데 대신 증권에서 제공하는 api가 가장 많은 데이터를 가져올 수 있어 이를 이용하여 가져와보겠습니다. 1) 우선 대신증권 api를 이용하는 만큼 CYBOS Touch 어플에서 비대면 계좌개설을 해야하고, 정회원 ID 등록도 마쳐야 합니다. (https://www.creontrade.com/g.ds?m=2222&p=2015&v=2885 페이지 참조). ID 등록..

퀀트투자 2023.10.28
반응형