3. 튜토리얼/금융 분석 프로그래밍 응용 11

Google Firestore로 경제 매크로 데이터 올리기

Step 0. 파이어스토어 서비스 계정 생성 파이어스토어는 구글에서 제공하는 클라우드 기반 NoSQL 데이터베이스다. 따라서 구글 클라우드 계정이 있어야 하며, 만약 처음이라면 GCP에 접속 후 IAM 관리자에서 서비스 계정을 생성해 준다. 계정을 생성하면 자동으로 인증키 파일(.json)이 다운로드 된다. 해당 파일을 가지고 아래와 같이 인증 후 데이터베이스 객체를 생성해 주자. ​ Step 1. 데이터 전송하기 먼저, 파이어스토어에 전송할 데이터를 확인한다. 이제 데이터를 전송할텐데, 파이어스토어에 데이터가 저장되는 방식은 다음과 같다. 데이터베이스 최상단(루트)에 collection을 생성할 수 있고, 각 collection에는 문서를 집어넣는다. 문서 안에는 필드-필드값 쌍으로 이루어진 데이터를 ..

파이썬 주식 시장 동향 분석 - 자연어처리 감성분석

주식 시장에는 기본적으로 주식을 팔고자 하는 사람과 사고자 하는 사람, 이렇게 크게 두 유형이 있다. 팽팽한 줄다리기 끝에 팔고자 하는 사람이 더 많으면 공급 초과로 가격은 하락하게 된다. ​주가에 영향을 주는 요소는 금융 애널리스트의 예측, 기관 예측, 경제 위기, 그리고 이를 전달하는 뉴스 매체 등으로 셀 수 없이 많지만 결국 그 종착지에는 대중의 움직임이 있다. 그러한 대중의 움직임이 파는 쪽에 더 치우치면 가격은 떨어지고, 사는 쪽에 치우치면 가격은 상승한다. 그렇다면 우리는 지금 이 시간, 대중의 움직임이 어느 방향으로 기울고 있는가를 분석해 볼 수 있다. 그 대상은 특정 종목이나 특정 국가가 될 수도 있고 주식 시장 자체가 될 수 있다. 본 분석은 후자, 주식 시장 자체에 대해 사람들이 어떻게..

주식 가격과 뉴스 기사의 상관 관계에 대하여 - NVIDIA 뉴스 감성 분석

Step 1. 데이터 추출 1-1. 뉴스 기사 수집 먼저 investing.com에서 엔비디아 관련 기사를 수집한다. python requests 패키지를 사용해 post 방식으로 데이터를 가져올 것이다. ​엔비디아 관련 뉴스 기사를 검색했을 때, 네트워크 XHR 탭에서 SearchInnerPage가 뉴스 데이터를 반환하는 것을 확인할 수 있다. 따라서 SearchInnerPage의 헤더 정보를 확인해 요청 데이터를 넣는 payload와 header를 만들어주고, requests.post() 함수를 통해 데이터를 받는다. 실습에서는 최근 300개의 뉴스 기사를 불러와 데이터 프레임으로 만들어줬다. 1-2. 주가 정보 수집 주가 데이터는 간단하게 yahoofinance 데이터를 가져오는 yfinance 패..

파이썬 이더리움 가격 예측 - 회귀모형

많은 딥러닝 입문 도서, 유튜브 콘텐츠 등에서 주가 예측을 소재로 삼고 있다. 자극적이고, 흥미로울 뿐 아니라 예측 결과는 경이로울 정도로 정확해 보여서 주식에 관심 있는 많은 사람들의 관심을 받게 된다. 다음과 같이 'AI가 예측한 주가'라고 하는 시뮬레이션 결과를 보신 적이 있지 않은가? 위 결과는 실제로 모델을 학습시켜 예측한 결과물이며, 심지어 복잡한 딥러닝이 아닌 기본적인 단순 통계모델인 회귀 모형을 사용했다. 딥러닝을 잠깐 접해본 분들은 이 그래프를 보고 '에이, over-fitting 됐네'라거나, '미래 데이터를 학습에 사용했네'라고 지적할 수 있다. 하지만 해당 모델은 over-fitting이 생길 만큼 복잡한 모델을 쓰거나 loss를 과하게 줄이지 않았으며(단순 회귀모형 사용), 위에 ..

파이썬 비트코인 가격 예측 - 1차, 2차, 3차 지수 평활

본 내용은 작년 1월에 교육용으로 준비했던 자료입니다. 데이터를 통해 어떻게 미래 동향을 파악할 수 있는지 확인하고, 현재의 비트코인 가격과 비교해 보시면 좋겠습니다. 예측 결과는 실제 결과와 매우 상이할 것입니다. 과거 데이터만으로 미래를 예측하는 것의 한계를 시사합니다. ​ Step 1. 데이터 전처리 데이터는 2016년 12월 8일부터 2022년 1월 8일까지의 비트코인 일별 종가를 사용한다. 본 실습에서는 미리 확보해둔 데이터를 사용했지만, 꼭 동일한 데이터로 진행할 필요는 없다. 웹에 공개된 데이터가 많으니 비트코인이든 주가 데이터든 직접 스크래핑이나 다운로드 방식으로 데이터 확보를 해보시면 좋겠다. 여기서 종가 데이터만 가져오고 날짜의 경우 datetime 타입으로 변환한 다음 인덱스로 지정해..

Elastic Stack을 활용한 글로벌 경제 매크로 대시보드 구축

Step 0. 파이프라인 Elastic Stack은 Elastic Search를 중심으로 Beats, Logstash, Kibana를 활용해 데이터 파이프라인을 구축하는 일련의 설계 방식이다. 파이프라인의 구성은 다음과 같다. 구성 : Beats : 데이터 수집 및 전송 Logstash : 데이터 전처리(필터링) Elasticsearch : 데이터 저장 및 관리 Kibana : 데이터 시각화 다음은 파이프라인의 동작 방식이다. 동작 : Yahoo Finance에서 각 주요 국가의 시장지수와 금, 은, 유가 등의 각종 매크로 데이터를 추출한다. 추출한 데이터를 Beats로 읽어들여 Logstash로 보내 문자열 처리를 거친 다음, Elastic search로 적재하고, Kibana로 대시보드를 그린다. 먼..

파이썬으로 최적의 포트폴리오 비율 찾기 (한국 주식,국채 + 미국 주식,국채)

주식 시장의 난이도가 올라가면서 개인 투자자들도 자산 배분을 고려하고 있다. 자산 배분의 방식에는 여러 가지가 있겠지만 이번에는 미국과 한국 2개의 시장에만 투자하고, 각 시장에 대해 채권과 주식을 고르게 배분하는 전략으로 전개하고자 한다. 안전자산인 채권과 위험자산 주식을 어떤 비율로 분배하는 것이 가장 효율적일까? Step 1. 야후 파이낸스 데이터 추출 Step 2. 일일 수익률 및 최종 수익률 확인 Step 3. 일일 수익률간 상관관계 시각화 Step 4. 변동성(위험) 대비 수익률 시각화 Step 5. 샤프 지수에 따른 포트폴리오 비율 시각화 Step 6. 사프 지수에 따른 포트폴리오 수익률 및 변동성 시각화 Step 7. 최적의 포트폴리오 비율 Step 1. 야후 파이낸스 데이터 추출 데이터는..

파이썬을 활용한 코스피, 달러 환율정보 수집부터 차트 시각화까지

Step 0. XHR 이란 XHR은 XMLHttpRequest의 약자로, Ajax처럼 페이지 리로드 없이 서버의 데이터를 불러올 수 있는 통신 방식이다. 브라우저 상에서 제공하는 객체 형태의 API라고 이해하면 좀 더 와닿겠다. 그래서 이 XHR은 기본적으로 브라우저가 웹서버와 통신하기 위한 수단이지만, 우리가 직접 사용해 웹 서버에서 직접 원하는 데이터를 호출할 수도 있다. 방식은 크게 2가지로, POST와 GET 방식이 있다. 여기서 두 케이스를 모두 경험해보기 위해 코스피 정보는 krx정보데이터시스템에서, 달러 정보는 yahoofinance에서 긁어보도록 하겠다. 참고로 이렇게 사이트마다 데이터를 호출하는 방식이 다르기 때문에 데이터를 수집하고자 한다면 어떤 형태로 서버와 통신하는지 사전에 확인해야..

과거 주가 데이터로 미래 주가를 예측할 수 있을까? - 파이썬 시계열 패턴 검색

Step 0. 패턴 검색 이번에는 현재 차트와 유사한 차트를 찾아서 매매에 활용하는 패턴 검색을 파이썬으로 구현해보자. 패턴 검색은 과거 주가에서 현재 주가와 유사한 패턴을 관측한 다음, 과거 주가 이후의 흐름을 확인하는 것을 통해 앞으로의 주가를 예상해보는 방식이다. Step 1. 코스피 종가 가져오기 2010년부터 현재까지의 데이터를 스크리닝한다. 즉, 유사한 패턴을 관측하는 가장 먼 시점은 2010년이다. Step 2. 기준 구간 확인 종가만 추출해서 검색하고자 하는 현재 주가의 패턴을 확인한다. 여기서 현재 주가는 6월 2일까지만 확인한다. 마지막에 6월 2일 이후 주가를 그려보면서 패턴 검색 방식의 예측을 검증해보기 위함이다. 코스피는 올해 1월에 급락 후 횡보하는 모습을 보인다. 이와 유사한 ..

존버 vs 자동매매 백테스팅 수익률 비교(카카오) - 파이썬 금융 데이터 분석

Step 0. 전략 과거에 카카오 상장 초기에 배팅했다면 지금쯤 소위 대박을 터뜨렸을 것이다. 이를 아는 상황에서 과연 특정 (차트) 매매 전략이 단순 장기 보유보다 우세한지 확인해 보고자 한다. ​전략은 잘 알려진 골든크로스 매수, 데드크로스 매도 방식을 시도한다. 골든크로스는 단기 이동평균선(보통 20일 이하)이 장기 이동평균선(보통 30일 이상)을 뚫고 올라가는 시점, 데드크로스는 그 반대 시점을 지칭한다. 여기에 모멘텀을 더해 상승 추세의 골든크로스를 매수 포인트로 잡을 수도 있지만, 논의를 단순화하기 위해 이 부분은 고려하지 않겠다. Step 1. 데이터 불러오기 주가 정보를 가져오기 위해 FinanceDataReader를 사용한다. ​ Step 2. 장기 보유 성과 확인 1999년 11월 11..

1 2