금융퀀트/프로그램기초
-
(OpenAPI)DATA.GO.KR(공공데이터포털): 데이터 추출금융퀀트/프로그램기초 2023. 3. 11. 08:52
일반 문서 사용 공공데이터 포털(https://www.data.go.kr/)에서 데이터를 제공하는 방식은 파일을 다운로드해서 사용할 수 있도록 제공하는 방식과 OpenAPI를 이용해서 제공하는 방식 두 가지로 나뉜다. 파일로 데이터를 제공할 때는 PDF 파일 형식, CSV 파일 형식, HWP 파일 형식(한글파일) 등 우리가 아는 형식으로 제공되지만 OpenAPI로 데이터를 제공할 때는 XML 형식이나 JSON 형식이라는 생소한 형식으로 제공이 된다. XML과 JSON의 차이는 구 주소랑 신 주소 표기 차이 정도로만 이해하면 된다. 중앙박물관을 "서울특별시 용산구 용산동 6가 168-6"로 표시하든 "서울특별시 용산구 서빙고로 137"로 표시하든 위치는 똑같은 것처럼 XML 형식이든 JSON 형식이든 데이..
-
(OpenAPI)DATA.GO.KR(공공데이터포털): 인증키 발급금융퀀트/프로그램기초 2023. 3. 11. 06:21
공공데이터포털(DATA.GO.KR) 이란? "내일 기상청이 예상하는 날씨는 어떤지?", "내가 사는 지역 치킨집은 얼마나 있는지?" 같은 정부기관 및 각 지역자치기구가 관리하는 크고 작은 데이터를 우리는 공공데이터포털(https://www.data.go.kr/)이란 사이트에서 손쉽게 접할 수 있다. 공공데이터포털에는 각종 정부 기관이 각각 정보를 제공하고 있는데 "신용보증기금", "금융위원회", "한국예탁결제원" 등도 정보 제공기관에 포함된다. 그만큼 우리 문송한"투자자"들이 활용할 정보가 많다는 뜻이다. 또한 공공데이터 포털에서는 Open API를 제공하고 있어서 각종 정보를 추출하고 가공하는 것이 매우 편리하다. API 키 발급절차 회원가입/로그인 OpenAPI를 사용하려면 먼저 회원가입을 해야한다...
-
MYSQL에 CSV file 삽입하기: DATA IMPORT WIZARD 등금융퀀트/프로그램기초 2022. 9. 27. 06:42
TABLE DATA IMPORT WIZARD 스키마 선택 및 위자드 실행 MySQL의 Workbench는 CSV 파일 import를 지원한다. 아래 그림 1 위쪽처럼 "스키마 이름" 부분을 우클릭해서 Table Data Import Wizard를 실행하면 그림 1 아래쪽처럼 파일 선택 화면이 뜬다. 다음 단계에서 아래 그림2 왼쪽 그림처럼 현재 존재하는 테이블에 데이터를 넣을 것인지 신규 테이블을 만들 것인지 선택한다. 마지막 단계에서 아래 그림 2 오른쪽 그림처럼 encoding 선택하고 next를 누르면 import 가 완료된다. 제약사항 현재 MySQL Table Data Import Wizard에서는 encoding을 utf-8, utf-16, cp1250, latin1, latin2 만 제공한다..
-
SQL 기초: MySQL 중심으로금융퀀트/프로그램기초 2022. 9. 26. 06:45
SQL의 기본 정의 자동매매를 위해서는 데이터베이스를 조작할 수 있어야 한다. 쌓아 놓은 수많은 과거 데이터를 재료로 모델을 만들고, 가격을 예측하기 때문이다. 데이터베이스를 조작하는 프로그램은 MySQL, Oracle, SQLite 등이 있는데 전부 SQL 문 베이스로 근본은 똑같다. SQL 문은 사용자가 데이터베이스에 질문을 하는 것이다. 엑셀에서 "sheet1에 "A6" 셀에 있는 데이터를 보여줘"라는 식의 질문을 컴퓨터가 알아먹을 수 있도록 던지는 것이라고 생각하면 된다. SQL 문의 분류 SQL 문은 기본적으로 CRUD로 구성된다. CRUD 는 위키피디아에 검색해보면 아래와 같은 표를 확인할 수 있다. 이름 조작 SQL Create 생성 INSERT Read 읽기 SELECT Update 갱신 ..
-
MYSQL : Python 웹스크레핑 데이터 MySQL 서버 저장하기금융퀀트/프로그램기초 2022. 8. 27. 08:14
sqlalchemy, pymysql 라이브러리 설치 sqlalchemy는 python에 제공되는 ORM(Object-relational Mapping)이라고도 하는데, MySQL 서버를 URL (인터넷 주소 치듯이)로 접속할 수 있도록 만들어주는 것이라고 생각하면 된다. URL 객체가 만들어지면 이 객체와 connection 하고 SQL 문을 주고받고 해야 하는데 이것을 pymysql 라이브러리가 도와준다. 설치는 아나콘다 cmd를 켜고 아래와 같은 명령어만 입력하면 된다. ( 추가적인 설명은 "01 파이썬 라이브러리 설치(Windows)"를 참조 ) # sqlalchemy 설치하기 pip install sqlalchemy # pymysql 설치하기 pip install pymysql python_sql..
-
MYSQL 설치(Windows)금융퀀트/프로그램기초 2022. 8. 24. 07:41
데이터 보관 관리 데이터 모으는 것까지는 해봤는데, ( 02 웹스크레핑: 네이버 파이낸스 데이터수집 참조 ) 모은 데이터를 분석해야 투자 여부를 결정할 수 있다. 엑셀로도 데이터 분석이 가능하지만 데이터가 늘어날수록 점점 힘들어진다. ( 코스피 종목수는 약 900 개 이므로 데이터 종가만 저장해도 엑셀 1,800 행이다. ) 데이터가 쌓일수록 파일은 느려지고, 내가 원하는 데이터를 찾는 것도 점점 힘들어진다. 심지어 엑셀은 유료이다. MYSQL 설치 MYSQL의 구조 엑셀 대신 데이터 관리 TOOL로 사용되는 것 중 하나가 MYSQL이다. MYSQL 구조는 그림 1로 설명할 수 있다. 폴더 안에 엑셀 파일 여러 개 있는 거라고 생각하면 된다. 파일 경로를 고민 안 해도 되고 데이터 구조도 한눈에 들어오면..
-
파이썬 : 웹스크레핑 네이버 파이낸스 데이터수집금융퀀트/프로그램기초 2021. 7. 15. 00:58
BeautifulSoup 함수 사용 find/find_all 함수 앞서 글에서 ( "02 웹 스크레 핑: Beautiful Soup 라이브러리" 참조 ) 우리는 Beautiful Soup으로 뽑아낸 네이버 파이낸스 데이터를 soup이라는 인스턴스에 넣었다. 이 인스턴스에 Beautiful Soup에서 제공하는 다양한 함수들을 넣어서 필요한 값을 찾을 수 있다. 우리가 지금 네이버 파이낸스 데이터를 수집하기 위해 필요한 함수는 find, find_all, get_text 정도이다. find 함수는 아래 예시의 첫 번째 줄로 설명하면 "table"이란 태그를 가진 것 중 최초 검색 결과를 가져온다. 여기에 attributes(attrs)라는 상세 값을 주어서 검색을 더욱 정교화할 수 있는데 아래 예시의 두 ..
-
파이썬 : 데이터 형식(&Pandas 데이터)금융퀀트/프로그램기초 2021. 7. 5. 23:58
튜플(tuple) 튜플은 데이터를 괄호( "( )" )로 둘러싼다. 보통 아래와 같이 쓰인다. tuple1 = () tuple2 = (1, 2, 3, 4) 튜플은 튜플 속의 요소들을 변경할 수 없다는 점에서 리스트(list) 형식과 구분된다. 하지만 어차피 프로그램 한 번 돌려서 SQL Database 나 Excel 에 저장해 두고 그것을 다시 불러와서 작업하는 형태이기 때문에 요소들을 변경할 수 없다는 점이 무슨 쓰임이 있는지는 모르겠다. 리스트(list) 리스트는 데이터를 대괄호( "[ ]" )로 둘러싼다. 보통 아래와 같이 쓰인다. list1 = [] list2 = [1, 2, 3, 4] list3 = [[1, 2, 3, 4],[1, 2, 3, 4]] 리스트의 특징은 튜플과 다르게 요소들을 변경할 ..