반응형
주식 데이터를 pyplot을 통해서 시각화 하던중,
buy와 sell을 한 날짜를 표시해주고 싶었다.
그럼 아래 코드를 통해서 buy (초록색), sell(빨간색)을 차트 상의 종가에 표시해줄 수 있다.
전제조건은 df 의 column 안에 buy와 sell이 표시되어 있어야 한다.
아래 예제에서는 buy 값이 1인 경우 매수, sell 값이 1인 경우 매도를 뜻한다.
import matplotlib.pyplot as plt
# 그림 사이즈 설정
plt.figure(figsize=( 30,6))
# 종가 기준으로 차트를 그림
df['close'].plot(grid=True)
# buy가 1 인경우 초록색으로 해당 종가에 표시
plt.scatter(df.loc[df.buy == 1].index, df.close[df.buy == 1],
color='green',
label='Buy',
marker = '^',
alpha=1)
# sell가 1 인경우 빨간색으로 해당 종가에 표시
plt.scatter(df.loc[df.sell == 1].index, df.close[df.sell == 1],
color='red',
label='Sell',
marker = '^',
alpha=1)
plt.ylabel('Price ($)')
plt.xlabel('Date')
plt.title('Price')
참고로 위 코드는 종가상을 기준으로 buy sell을 표시한 것이라 실제 매수, 매도 가격은 다를 수 있다.
실제 매수, 매도 가격으로 변경하고 싶다면 df.close[df.buy == 1]을 부분을 데이터에 맞게 변형해서 사용하면 된다.
반응형
'Python' 카테고리의 다른 글
[python pandas] 주식 이격도(disparity) 구하기 (0) | 2021.10.17 |
---|---|
[python pandas] 주식 이동평균선 구하기 (0) | 2021.10.17 |
python 판다스(pandas) - 중복 index 제거 하기 (2) | 2021.10.11 |
[python3] sys.stderr.write(f"ERROR: {exc}") 에러 해결법 (0) | 2021.08.13 |
[python] datetime 날짜와 시간 차이 구하기 (0) | 2021.06.26 |