본문 바로가기

분류 전체보기226

[Python] KRX 주가데이터로 수정주가 계산 2023.03.25 - [시스템트레이딩] - KRX 수정주가 조회 및 계산방법 KRX 수정주가 조회 및 계산방법 분명히 예전에는 KRX 정보데이터 시스템에서 종목들의 일일 주가를 조회할 때 수정주가가 적용되지 않았는데 오랜만에 한국거래소 사이트에 들어갔더니 [12003] 개별종목 시세 추이에 수정주가 toniteifly.tistory.com 이전 글에 남긴 것처럼 KRX에서 수정주가를 조회할 수 있으니까 큰 의미는 없지만 나처럼 만들어놓은 데이터베이스가 [12001] 전종목 시세를 매일 크롤링해서 업데이트하고 있다면 특정 종목의 과거 가격 데이터를 긁어 와서 수정주가로 다시 변환하는 작업이 필요하다. 또한 수정주가라는 것이 현재 또는 미래에 벌어질 이벤트에 따라 과거 데이터를 모두 수정해야 되는 문제가 .. 2023. 3. 25.
KRX 수정주가 조회 및 계산방법 분명히 예전에는 KRX 정보데이터 시스템에서 종목들의 일일 주가를 조회할 때 수정주가가 적용되지 않았는데 오랜만에 한국거래소 사이트에 들어갔더니 [12003] 개별종목 시세 추이에 수정주가 적용이 기본으로 설정되어 있는 걸 발견했다. http://data.krx.co.kr/contents/MDC/MDI/mdiLoader/index.cmd?menuId=MDC0201020103# KRX 정보데이터시스템 증권·파생상품의 시장정보(Marketdata), 공매도정보, 투자분석정보(SMILE) 등 한국거래소의 정보데이터를 통합하여 제공 서비스 data.krx.co.kr 현재 만들어놓은 데이터베이스는 [12001] 전종목 시세를 매일 크롤링해서 업데이트하는 방식인데 당연한 것이겠지만 이 화면에서 과거 데이터를 조회하.. 2023. 3. 25.
해외선물 전략들의 근황 2023년은 나스닥 전략 4개, S&P500 전략 1개로 시작했다가 2월에 나스닥 전략 하나를 더 추가했다. 1월은 그럭저럭 할만했는데 죄다 롱만 파는 전략들이라 2월 초부터는 꽤나 잠잠했다. 그러다가 지난주 금요일에 약간의 수익이 났고 일부 포지션은 오버나잇 중인 상태다. 작년 한 해 동안 전략들을 안정화하는데 실패해서 올해는 두 달 동안 지지부진한 전략은 비중을 크게 줄이거나 포트아웃 시키겠다는 생각을 갖고 1월을 맞이했고 이제 3월이 시작되었다. 마침 뜯어보니 두 개 전략이 완만한 하향곡선을 그리고 있다. 몇 차례 변수들을 조절하기는 했지만 그럼에도 불구하고 수익곡선의 우하향이 계속된다는 것은 결국 전략의 뼈대가 되는 핵심아이디어 자체가 실전에서는 시장에 먹히지 않는 문제가 있을지도 모른다는 위험을.. 2023. 3. 5.
코스닥ETF전략 운영성과 (2023년 2월) 선물계좌 쪽으로 자금을 최대한 활용하려고 ETF계좌에서는 자금을 계속 인출하면서 최소 예탁금인 천만 원이 약간 넘는 수준만 유지하려 했다. 어찌 됐든 지난달에 성과가 부진했는데 한 번에 상쇄시키게 되어서 다행이다. 과거에 자금 변동이 많아서 로그 수익률로 바꿔서 다시 계산해 봤다. 지금 봐도 작년에 4, 5번 계좌에서 여러 가지 전략들을 테스트하면서 입은 손실이 아쉽다. 지금 전략들은 꼭 안정화되어 주길... 2023. 3. 1.
Pandas.read_sql 속도 비교 (chunksize, connectorx) 1995년 5월 2일부터 상장된 모든 주식 종목들의 일별 가격 정보가 저장된 SQLITE 데이터베이스인데 크기가 만만치 않아서 Pandas로 불러오는데 시간이 꽤나 걸려서 몇 가지 방법을 찾아봤다. 그냥 Pandas.read_sql을 실행하는 것보다는 적절한 chunksize를 지정해서 불러오는 것이 더 나은 선택이었다. 그보다 더 좋은 방법이 뭐가 있을까 하다가 찾게 된 것이 connectorx라는 라이브러리다. https://github.com/sfu-db/connector-x GitHub - sfu-db/connector-x: Fastest library to load data from DB to DataFrames in Rust and Python Fastest library to load dat.. 2023. 2. 26.
KRX 종목코드로 우선주, 스팩, 외국기업 구분하기 종목코드만 가지고 스팩, 우선주, 외국기업 등을 어떻게 구분할까 고민을 했는데 한참 살펴보다가 방법을 찾았다. KRX에서 관리되는 종목코드는 6개의 자리를 가지는데 이중 나름 의미가 있는 것은 맨 앞 숫자와 맨 뒷 숫자로 보인다. 종목코드의 시작숫자 사실 9번으로 시작하는 외국기업들을 제외하고 나면 일반종목들이 모두 0번으로 시작했다가 점차적으로 1, 2번까지 넘어오면서 자연스럽게 이후 상장되는 스팩들도 뒤쪽 번호로 시작하는 종목코드를 갖기 시작했다. 현재 상장이 유지되어 있는 스팩들은 모두 3, 4로 시작하는 종목코드를 가지고 있다. 종목코드의 끝자리 숫자 유심히 살펴보면 일반종목들은 종목코드가 0으로 끝난다. 이를테면 삼성전자(005930), 카카오(035720), SK하이닉스(000660) 는 끝자.. 2023. 2. 23.
셀트리온의 액면병합(2013년 3월) 수정주가 표시오류 셀트리온이 비교적 과거 이벤트가 다양(?)해서 여러 가지 Source에서 산출된 수정주가를 가지고 비교해 보다가 이상한 점을 발견했다. KRX의 원본데이터 상의 수정전가격에다가 등락폭을 가지고 기준시가를 계산해서 수정주가를 산출한 자료를 네이버에서 크롤링한 자료와 함께 비교해 보다가 차이가 너무 커서 자세히 살펴봤더니... 2023년 3월에 액면병합이 있었는데 네이버에서 표시되는 수정주가가 제대로 표시 되지 않는다. 3월 22일 이전 주가들도 4만 원대로 2배로 조정되어 표시되어야 하는데 차트에서 제대로 보이지 않는다. 그 당시의 주식변동내역을 상세히 보기 위해서 2013년 1분기 분기검토보고서를 찾아봤다. 주석 13의 주식 발행 및 취득 내역을 보면 주식병합 직전까지 총 174,639,638 + 160.. 2023. 2. 22.
무상증자/액면분할/주식배당 시의 수정주가 계산 수정주가를 계산하는 방법을 고민하던 중에 무상증자, 액면분할, 주식배당이 발생하는 경우에 어느 시점에 주가가 조정되고 발행주식수가 변경되는 지를 사례를 통해서 정리해 봤다. 1. 무상증자 기존주주들에게 무상으로 주식을 나누어 주는 개념이고 기업가치가 변하지 않는다는 점에서 사실상 액면분할과 효과는 같다. 다만 액면분할과는 다르게 이익준비금이나 다른 잉여금을 자본금으로 전입하기 때문에 재무제표 상 제원이 있어야 가능하다. 아래는 바이젠셀(308080)의 무상증자 일정들과 주가와 주식수의 변화의 흐름을 나타낸 것이다. 신주배정기준일인 2022년 6월 9일로부터 2 영업일 전인 2022년 6월 7일에는 주식을 보유하고 있어야 신주를 교부받을 수 있는 권리가 생기게 된다. 2022년 6월 8일에는 권리락을 실시.. 2023. 2. 19.
한국거래소 휴장일 (1995년 5월 ~ 2023년 12월) 한국거래소에서 주가 자료들을 내려받고 있는데 중간에 비어있는 일자들이 있어서 휴장일이 맞는지 확인해 보자 생각했다. 처음엔 공휴일정보를 API로 내려 받았는데 2004년 이전 데이터는 없다는 점과 공공데이터 API에서 나오는 공휴일과 한국거래소의 휴장일이 다른 경우가 있었다. https://www.data.go.kr/data/15012690/openapi.do 한국천문연구원_특일 정보 (천문우주정보)국경일정보, 공휴일정보, 기념일정보, 24절기정보, 잡절정보를 조회하는 서비스 입니다. 활용시 날짜, 순번, 특일정보의 분류, 공공기관 휴일 여부, 명칭을 확인할 수 있습니다. www.data.go.kr 의외로 답은 쉬운 곳에 있었는데 한국거래소의 아래 링크로 들어가면 연도별 휴장일이 나온다. 그런데 문제는 .. 2023. 2. 17.