본문 바로가기

Python

[python pandas] matplotlib.pyplot으로 주식 차트에 buy sell 표시하기

반응형

 

주식 데이터를 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]을 부분을 데이터에 맞게 변형해서 사용하면 된다.

 

 

반응형