1. 사용 툴
import pandas as pd
from pandas import DataFrame
from pandas_ta.utils import get_offset, verify_series
from pandas_ta.utils import recent_maximum_index, recent_minimum_index
import matplotlib.pyplot as plt
import yfinance as yf
import numpy as np
import warnings
import datetime
from mpl_finance import candlestick2_ohlc
import matplotlib.ticker as ticker
plt.style.use('dark_background')
warnings.filterwarnings('ignore')
pandas를 기반으로 matplotlib을 통해 그래프출력했음
데이터는 yfinance를 이용하여 해당 티커명의 종가 및 부가정보들을 가져옴.
2. (종가기준) 주가 추이 그래프 가져오기
df = yf.download(tickers = '종목명(티커명)', start = '2020-01-01', end = '2020-08-01')
df['Date'] = df.index
기간은 2020년 1월1일 ~ 2020년 8월1일 로 설정
(코로나 특수로 인한 폭락장에도 수익률이 좋다면 이것은 정말 좋은 전략이라는 판단하에 직접 실험해보기로 함)
대상기업은 불경기에 민감한 에너지 섹터 3개로 설정 : HES / MPC / EOG
3. 그래프 상세 설정
df.Close.plot(figsize = (18,8))
plt.grid(b=True, color='DarkTurquoise', alpha=0.3, linestyle=':', linewidth=2)
plt.legend( loc='upper left', fontsize = 13)
plt.xlabel('Date', fontsize = 17)
plt.ylabel('Close Price', fontsize = 17)
plt.title('Close Price', fontsize = 23, position = (0.5,1.05));
4. 종가 그래프 결과
5. 이동평균선 그래프 위에 씌우기
df['Close'].plot(figsize=(18, 8))
df['Close'].rolling(window=20).mean().plot(label='20이평선')
df['Close'].rolling(window=60).mean().plot(label='60이평선')
df['Close'].rolling(window=120).mean().plot(label='120이평선')
plt.grid(b=True, color='DarkTurquoise', alpha=0.3, linestyle=':', linewidth=2)
plt.legend(loc='upper left', fontsize=13)
plt.xlabel('Date', fontsize=17)
plt.ylabel('Close Price', fontsize=17)
plt.title('Close Price', fontsize=23, position=(0.5, 1.05))
plt.show()
위의 코드를 실행하면 종가 그래프에 20일 이동평균선, 60일 이동평균선, 120일 이동평균선이 추가된 그래프를 확인할 수 있습니다. 이렇게 수정된 코드를 사용하시면 원하시는 결과를 얻을 수 있습니다.
6. 이동평균선 결과
7. 투자 전략 분석 + 수익률 분석
* 나의 이동평균선 전략
60일선기준 60일선을 터치했을때, 지지하는 모습을 보이면 매수 -> 그 위의 구간에서 자유롭게 수익실현 -> 다시 60일선 재 터치시 반드시 매도 ( 위험헷징)
HES 이동평균선 전략
1채 매수매도 수익률 : 최소 13% +@
MPC 이동평균선 전략
1차 매수매도 수익률 : 최소 12% +@
EOG 이동평균선 전략
60일선기준으로 지지하는 구간 단 한개도없음
매수 없음.
반응형
'기업 가치 분석 > 금융데이터 분석과 자동화(파이썬)' 카테고리의 다른 글
[Quant Trading Report] 에너지섹터 (HES/MPC/EOG) 투자보고서 (0) | 2023.11.15 |
---|---|
[Pandas] 볼린저밴드(Bollinger Band) 매매 부수기 ( with python ) (0) | 2023.11.13 |
[pandas] RSI 기법 부수기 ( with python ) (0) | 2023.11.13 |
Pair Trading 기법을 적용한 투자 포트폴리오(에너지 섹터)_ Quant trading with python/Excel (0) | 2023.11.07 |
실습환경 (아나콘다와 Colab) (0) | 2023.09.20 |