실전 프로젝트가 끝났다.
마무리하는 기념으로 분석 프로세스 정리.
프로젝트 개요 :
목적과 목표 설정 :
야후 파이낸스 모듈 : yfinance
→ 파이썬에서 주식 시장의 데이터를 가져오고 분석할 수 있는 라이브러리, 원하는 종목의 데이터를 볼 수 있음
수집방법 : yfinance(애플, 아마존, 마이크로소프트)
수집기간: 2021-01-01 ~ today-1
사용데이터 : close
<모델 선택 : prophet>
→ 메타에서 공개한 시계열 예측라이브러리로 시간에 따른 트렌드, 계절성, 휴일효과등을 반영하여 미래의 값을 예측할 수 있음
→ y(t)=g(t)+s(t)+h(t)+ϵi
g(t) :시간 t에 대한 트렌드를 나타냄
s(t) : <푸리에 급수>를 사용하여 연간, 월간, 주간, 일간의 주기성을 나타냄
h(t) : 휴일 및 특별 이벤트와 같은 외부요인에 대한 변동을 나타냄
<모델링 적용>
1. Apple
a. 학습데이터 설정 : '2021-01-01'~'2023-09-30'
b.모델링 학습
c.성능평가
2. Amazon
a. 학습데이터 설정 : '2021-01-01'~'2023-09-30'
2023년 1월달의 급증을 완화하고자 최근 하락한 구간을 포함
a-1. prophet을 활용한 amazon의 주가 트렌드 확인
b. 모델링 학습
c. 성능평가
MSE 80.5708 → MSE 37.6734
3. Microsoft
a. 학습데이터 설정 : '2021-01-01'~'2023-09-30'
2023년 1월달의 급증을 완화하고자 최근 하락한 구간을 포함
a-1. prophet을 활용한 microsoft의 주가 트렌드 확인
b. 모델링 학습
c. 성능 평가
MSE 332.8274 → MSE 120.8591
빅쿼리란 :
모델링을 통해 예측된 값과 기타 대시보드를 위한 값들 csv 형태로 저장 후
google.cloud, pandas-gbq 모듈을 통해 빅쿼리에 적재를 위한 코드를 하나로 통합하여
파이프라인을 구축
google.cloud: Google이 제공하는 클라우드 컴퓨팅 플랫폼으로, 다양한 서비스와 도구를 제공하여 애플리케이션을 구축, 배포 및 관리
pandas-gbq: 파이썬에서 Google BigQuery와 데이터를 읽고 쓰는 데 사용되는 확장 모듈
1. 종목별 수익률
2. 종목별 가격
3. 종목별 구성 비율
4. 종목별 목표 수익률
5. 종목별 예측 가격
캔틀차트 - 주식의 증감을 색상으로 확인할 수 있음.
상세정보 : 시가, 종가, 최저가, 최고가를 포함.
하루동안 시장에서 일어난 주가의 변동과 매수와 매도 중 어떤 심리가 시장에 작용했는지까지 확인 가능.
캔들차트의 모양과 꼬리의 형태를 직접 확인하고 해석하며 주식시장의 다양한 신호를 파악.
보조지표 - 각 종목마다 차별화된 전략을 세울 수 있도록 다양한 보조지표를 확인 가능.
주가는 높은 확률로 볼린저 밴드의 상한선과 하한선의 안쪽에서 움직인다.
예를 들어, 볼린저밴드의 상하한선의 간격이 좁아지고 넓어지는 것을 이용해 큰 변동성을 예측할 수 있다.
또한 주가가 볼린저 밴드의 상하한선을 이탈한다면,
현재 주가가 과열된 상태거나 과소 평가된 상태이므로 추세가 반전될 가능성이 크다.
골든 크로스(Golden Cross)는 단기 이동평균선이 장기 이동평균선을 아래에서 위로 상향 돌파하는 시점을 의미.
단기적인 주가의 추세가 장기적인 주가의 추세보다 빨리 상승하는 것을 의미하며,
이 교차점에 가격이 상승세로 돌입했다는 강력한 신호로 해석한다.
주식의 종가와 함께 MACD, 장단기 이동평균선, 볼린저 밴드 등
다양한 전통적인 지표를 통해 주식 데이터를 해석을 돕고 의사결정의 근거로 활용할 수 있다.
데이터 예측시 과대적합에 대한 기준을 판단하기 어려움
→ Apple 주식 모델 예측시 MSE가 18로 다른 모델링 대비 오차가 낮게 평가.
→ 마지막 학습 기간에 따라 예측추세가 반영되기 때문에 학습기간 이후 추세에 따라 예측에 오차가 발생.
추천 주식의 범위가 적음
포트폴리오의 크기가 작음(∵기기 성능의 한계 및 중요도 순위)
→ 추천 주식 풀의 사이즈인 100개라는 사이즈가 너무 작으며, 주식을 하나씩만 추천한 것도 너무 제한적.