금융퀀트/프로그램기초
-
파이썬: 멀티쓰레딩을 활용한 기업기본정보 목록 만들기(DART API활용)금융퀀트/프로그램기초 2024. 3. 17. 09:52
멀티쓰레딩풀 활용의 필요성 파이썬: 멀티쓰레딩(Threading)과 멀티프로세싱(multiprocessing) 에서 살펴본 것처럼 단일 함수들의 멀티쓰레딩, 멀티프로세싱은 단순히 구현하면 되지만 함수가 복잡하거나, 수많은 작업을 다시 작은 단위로 묶어서 작업하고 싶을 때(총작업량은 1만 개인데, 100개씩 한 번에 처리하고 싶을 때)는 단순한 멀티쓰레딩이나 멀티프로세싱 구조로는 한계가 있다. 이 경우는 아래의 그림 1처럼 쓰레딩 또는 프로세싱 작업묶음의 풀을 만들어서 해결할 수 있다. 작업풀에 작업묶음1, 2, 3을 동시에 넣고 작업을 수행한 뒤 결과를 한 번에 뽑아내는 방식이다. 멀티쓰레딩과 멀티프로세싱 모두 작업풀로 처리가 가능하지만 이하에서는 멀티쓰레딩풀만을 이용하여 API를 요청한 결과를 가지고 ..
-
파이썬: 멀티쓰레딩(Threading)과 멀티프로세싱(multiprocessing)금융퀀트/프로그램기초 2024. 3. 16. 09:13
파이썬의 GIL(Global Interpreter Lock)파이썬 프로그램의 실행 구조는 아래 그림 1과 같다. 여기서 프로세스는 하나의 실행 중인 프로그램을 의미하고, 프로세스 안에서 일어나는 작업의 단위들을 쓰레드라고 한다. 파이썬에서는 기본적으로 하나의 프로세스는 하나의 코어를(Core) 사용하고 multiprocessing 라이브러리를 사용하면 여러 개의 코어를 사용하여 작업이 가능하다.우리같은 비전문가는 보통 보급형 "Intel(R) Core(TM) i5-9400 CPU @ 2.90GHz" CPU를 사용하고 이 CPU에는 6개의 코어가 달려있기 때문에 멀티프로세스 작업을 6개를 초과해서 수행하면 작업 효율이 더 크게 증가하지는 않는다.그리고 파이썬에서는 하나의 프로세스 안에서는 여러 개의 쓰레드..
-
파이썬 : 함수(Function), 클래스(Class), 모듈(Module), 패키지(Package)금융퀀트/프로그램기초 2024. 1. 31. 06:45
함수, 클래스, 모듈, 패키지의 관계 프로그램을 만드는 것은 각각의 기능들을 만들고 그 기능들을 묶어내서 하나의 구조화된 기계를 만들어내는 과정이라고 생각하면 된다. 여기서 가장 최소의 기능을 가지는 것을 "함수(Function)"라고 하고, 그 함수들을 클래스(Class)로 묶어도 되고 묶지 않아도 된다. 클래스로 묶이거나 묶이지 않은 함수들은 모듈(module)이라는 하나의 파일에 담긴다. 그리고 이 모듈들은 패키지(package)라는 하나의 폴더에 담긴다. 함수, 클래스, 모듈, 패키지의 관계를 그림으로 그리면 아래 그림 1과 같다. 위 그림 1과 같이 클래스로 묶인 함수 혹은 그냥 함수들이 모여서 하나의 모듈을 이루고, 모듈이 모여서 하나의 패키지 혹은 라이브러리가 된다. python 에서 다른 ..
-
[AWS]RDS 서버 만들기금융퀀트/프로그램기초 2024. 1. 12. 07:45
AWS에서 RDS 서비스의 의미 AWD에서 RDS 서비스의 기능은 아래 그림과 같이 정리할 수 있다. EC2에서 만든 서버는 사용자에게 직접 데이터를 저장하는 부분이고, 서비스 과정 중 어떤 데이터를 저장하거나 불러올 때 RDS 서비스를 통해 만든 DB에 저장하게 된다. 이 DB 또한 하나의 서버인데 MySQL, Oracle, Aurora 등 다양한 DB서버가 존재한다. EC2가 하나의 컴퓨터라면 EC2에 바로 local DB서버를 만들 수도 있지만 일반 사용자와 접점이 있는 EC2 서버에 DB 서버를 만들면 내가 제공하는 서비스의 DB의 보안성이 취약해진다. 또한 EC2는 정보를 처리하는데 집중되어 있고, 저장용량이 한정적인데 반해 RDS의 경우 정보를 저장하는데 집중되어 있어서 저장용량이 사용자 선택..
-
[AWS]EC2 인스턴스(가상서버) 만들기금융퀀트/프로그램기초 2023. 12. 27. 00:10
AWS에서 EC2 서비스의 의미 [AWS]클라우드 호스팅 서비스 이용:AWS(아마존) 가입하기 에서 AWS에 가입했다면, 가장 많이 사용하게 되는 기본적인 서비스는 EC2이다. EC2는 그냥 AWS에서 컴퓨터를 한 대 빌리는 것이다. 그리고 이 빌린 컴퓨터를 다른 컴퓨터에서 요청한 작업을 처리할 수 있게 만들면 서버가 된다. 이 서버를 AWS에서는 인스턴스라고 한다. EC2 인스턴스 만들기 인스턴스 시작 AWS 상단 서비스 검색창에 EC2라고 치면 바로 서비스에 들어갈 수 있고, 인스턴스 시작을 누르면 바로 EC2 인스턴스를 만드는 화면이 뜬다. 여기에서 본인의 리전이 서울로 선택되어 있는지(우측 상단) 한 번 더 확인하고 추가 진행을 하면 된다. OS 선택 인스턴스는 서버이고 서버는 컴퓨터이므로 운영체..
-
파이썬 32비트 환경에서 MYSQL 사용하기:DLL load failed while import _sqlite3 대응금융퀀트/프로그램기초 2023. 11. 28. 07:14
32비트 가상환경 만들기 및 필요라이브러리 설치 아나콘다-파이썬 사용자가 32비트 환경을 구현하기 위해서 굳이 32비트용 아나콘다를 다운로드할 필요는 없다. 아나콘다 프롬프트에서 "set CONDA_FORCE_32BIT=1" 명령어로 환경을 32비트로 만들어 준 뒤에 가상환경을 만들어서 activate 시켜주면 32비트 환경에서 작업을 할 수 있다.(자세한 내용은 [키움API]아나콘다-파이썬 가상환경 만들기 참조) 보통은 증권사 API 같은 것들이 32비트 환경에서 구현되어 있어서 가상환경을 만들어서 작업한다. 그런데 대량의 시장 데이터를 이용하는 증권사 API를 사용할 때 데이터베이스 작업도 필수적이다. 보통은 아래와 같이 sqlalchemy와 pymysql을 설치해서 데이터베이스 작업을 한다. "DL..
-
파이썬 판다스(pandas) 데이터 합치기 concat&merge 활용금융퀀트/프로그램기초 2023. 6. 15. 06:49
concat 함수 활용 concat 함수 예제: 기초데이터 파이썬의 pandas 라이브러리를 이용하면, 기존의 데이터 아래쪽에(행 기준) 데이터를 붙일 수도 있고, 오른쪽에(열 기준) 데이터를 붙일 수도 있다. 이 때 사용하는 함수가 concat 이다. 함수의 사용을 위해서 아래 그림 1과 같이 종목코드와 종목명 컬럼을 공통으로 가지는 df1과 df2 의 데이터 예시를 생각해 볼 수 있다. df1은 종목코드, 종목명, 배당수익률로 이루어진 데이터이고, df2는 종목코드, 종목명, pbr 로 이루어진 데이터이다. concat 함수의 사용과 axis 옵션 df1, df2를 이용해서 concat 함수를 사용하면 아래 그림2와 같다. 앞에 오는 df1이 기준이 되는 데이터, df2가 붙일 데이터, axis는 데..
-
(OpenAPI)ChatGPT OpenAPI 사용: 데이터 분석(KOSPI200지수 예측)금융퀀트/프로그램기초 2023. 3. 29. 07:16
분석용 데이터 준비 챗GPT에 데이터에 관련된 사항을 물어보면 불가능하다는 답변이 나온다. 하지만 우리가 데이터를 넣어주기만 한다면 그 분석 자체는 가능할 것이다. 그럼 챗GPT에게 코스피 200 지수 데이터를 넣고 분석을 시켜보자. 아래와 첨부된 것과 같이 "2020-01-02" ~ "2023-02-28" 약 3년 치 코스피 200 지수 데이터를 넣어줄 것이다. 데이터 수집 KRX 정보데이터시스템 활용 코스피 200 지수 데이터는 KRX 정보 시스템 통계 -> 기본통계 -> 주가지수 -> 개별지수 시세추이 에서 "코스피 200"을 검색해서 다운로드하면 구할 수 있다. 엑셀로 데이터 편집이 가능하다면, 다운로드 후 위에 업로드한 파일처럼 종가만 남기고 나머지 컬럼을 모두 삭제해 주면 된다. 그리고 챗GP..