본문 바로가기
미래걱정/주식

Python의 Quandl을 통해 주가 그래프 그려보기 (with Chat GPT)

by JHistory_ 2023. 1. 28.
반응형

https://youtu.be/SxnYnJ_VaSk

 

▲ chat gpt와의 대화를 실시간으로 녹화해봤습니다. 영상 같이 켜놓고 보실 분은 보시길 바랍니다.

 

- 후 드디어 돌아돌아 제발 오류 없기를 바라며 Quandl에서 PER band chart를 그려보도록 하자. 다만, 그 전에 일단 Quandl로 기본적인 그래프를 그려보자.

● 단순한 특정 Ticker에 대한 chart 그리기 (Quandl로)

 이제는 친구 같다. 다음과 같이 대충 개똥같이 물어봐도 찰떡같이 알아들으니까 이런식으로 물어봅시다.


Could you please full python code with quandl in order to draw a historical stock value of specific ticker?

 

GPT : 

Sure, here's an example of how you can use the Quandl package to retrieve historical stock data for a specific ticker and then plot it using matplotlib:

 

import quandl
import matplotlib.pyplot as plt

# API key is optional, but it's recommended to use one if you plan to make a lot of requests
quandl.ApiConfig.api_key = "YOUR_API_KEY"

# Replace TICKER with the ticker symbol of the stock you want to retrieve data for
data = quandl.get("WIKI/TICKER")

# Select the "Close" column and plot it
plt.plot(data.index, data["Close"])
plt.xlabel("Date")
plt.ylabel("Closing Price")
plt.title("Historical Stock Price for TICKER")
plt.show()

Keep in mind that you will have to install the Quandl package if you haven't already done so by running !pip install quandl in your command line. Also, you will have to replace the "YOUR_API_KEY" with the actual key you get from quandl website, and "TICKER" with the ticker symbol of the stock you want to retrieve data for.

 


 자, 일단 저번에 FRED 때와 비슷하게 qunadl에서도 API key를 얻어야 하는 것 같습니다. 한 번 얻어보도록 하지요 구글에 quandl이라고 치면 아래와 같이 한 개의 링크가 뜹니다. 거길 들어가줍니다. 구글에 치기 귀찮으시면 아래 링크를 누르시지요.

 

https://data.nasdaq.com/publishers/QDL

 

Nasdaq Data Link

The source for financial, economic, and alternative datasets, serving investment professionals.

data.nasdaq.com

 

 그럼 첫 화면이 아래와 같이 나올텐데 여기서 Sign up을 들어가줍시다.

 

 

그러면 개인 (Personal)로 체크하고 개인 이름을 입력해 줍니다.

 

 

 여기서는 Country에 South Korea라고 나오니 참고 하시길 바랍니다. 

 

그 다음엔 뭔가 옮겼다고 합니다. quandl에서 뭔가 통합사이트로 바뀐 듯 합니다. Nasdaq Data link로부터 온 이메일을 활성화시키라고 하네요.

 

이러고 Create Account를 누르면, 본인의 API key가 발생합니다. 다시 파이썬으로 돌아가봅시다. API key 항목에다가 받은 API key를 넣어주고 Run을 해봅시다. 그랬더니 아래와 같은 오류가 발생합니다.

 

quandl.errors.quandl_error.NotFoundError: (Status 404) (Quandl Error QECx02) You have submitted an incorrect Dataset code. Please check your Dataset codes and try again.

GPT형님께 물어보니

 


The error message "You have submitted an incorrect Dataset code" indicates that the ticker symbol you provided in the code is not a valid dataset on Quandl. You need to check the ticker symbol you are using in the Quandl API, and make sure it is spelled correctly and it exists in Quandl database. Also make sure you have an API key to access the data from Quandl. If you don't have an API key, you can sign up for a free API key on the Quandl website.


어머나 세상에 Ticker를 안넣었다. Incorrect Dataset code라고 한다. Ticker를 AAPL로 변경해서 실행해보자.

 

import quandl
import matplotlib.pyplot as plt

# API key is optional, but it's recommended to use one if you plan to make a lot of requests
quandl.ApiConfig.api_key = "Your API Keys"

# Replace TICKER with the ticker symbol of the stock you want to retrieve data for
data = quandl.get("WIKI/AAPL")

# Select the "Close" column and plot it
plt.plot(data.index, data["Close"])
plt.xlabel("Date")
plt.ylabel("Closing Price")
plt.title("Historical Stock Price for AAPL")
plt.show()

그랬더니 아래와 같은 그래프가 산출된다.

 

2014년즈음에 그래프가 쭈우욱 떨어지는게 뭔가 좀 이상하지 않나? 애플은 계속 쭉 우상향만 했었는데! 아마도 액면분할이 반영되지 않은 것 같다. 이걸 반영시키려면 어떻게 해야할까? 바로 저 저번 글에서 우리는 data를 긁어왔을 때, 주가에 반영되는 값이 여러가지인 것을 알고 있었다.

 

https://jhhistory.tistory.com/15

 

yfinance로 주가 저장 및 크롤링하기, csv저장, 그래프 그리기 등 (with chat gpt)

● 엄청난 선생님을 만났다 ! 최근 장안의 화제인 chat gpt를 통해 python을 공부한다는 사람이 있다는 힌트를 얻어서 원하는 것을 한 번 시도하는 과정을 거쳐봤다. 답답하기도 한데, 구글링 보다

jhhistory.tistory.com

 

위 링크에 csv저장 방식처럼 아마 adj close에 대한 주가가 있을 것으로 판단되어서 그럼 그게 수정된 주가고 여러가지 있었던 일들을 포함한 주가라고 우리는 알 수 있다. 그래서 adj close로 바꿀 수 없냐고 물어보도록 하자 .

 


현stj : I got graph based on your python code teaching. Thank you! But, I think the graph does not include the split of stock. So, Is it right to change from 'Close' to 'Adj Close' in order to get the historical stock value of specific ticker that includes split?

 

GPT : here is the modified code that uses the "Adj Close" column instead of "Close":

import quandl
import matplotlib.pyplot as plt

# Set Quandl API key
quandl.ApiConfig.api_key = "YOUR_API_KEY"

# Retrieve data for a specific stock
data = quandl.get("WIKI/TICKER", start_date='2010-01-01', end_date='2016-03-19')

# Plot the "Adj Close" column
plt.plot(data.index, data['Adj Close'])
plt.show()

이렇게 줘서 그대로 넣고 실행해보았더니, 

 

'KeyError: 'Adj Close'

 

이렇게 뜬다. 다시 물어보자.


나 : Ah, terminal error message said that 'KeyError: 'Adj Close' '. I think there are other method to modify the codes. Could you help me?

 

GPT : One way to resolve this is to use the Adj. Close column instead of Adj Close. The column name is case sensitive, so if you change it to Adj. Close, it should work.


아니 진작좀 제대로 알려주지 그랬어. Adj Close가 아니라 Adj. Close다. 그래서 이렇게 수정하고 넣으면 아래와 같이 그래프가 뽑힌다.

 

 

오~ 뭔가 내가 알던 그래프다. 맨첨에 줬던 것 처럼 여러가지 예쁜 주석들을 붙여보기위해 xlabel과 ylabel과 title을 plt함수로부터 불러오는 것을 추가했다.

import quandl
import matplotlib.pyplot as plt

# Set Quandl API key
quandl.ApiConfig.api_key = "your API Key"

# Retrieve data for a specific stock
data = quandl.get("WIKI/AAPL")

# Plot the "Adj Close" column
plt.plot(data.index, data['Adj. Close'])
plt.xlabel("Date")
plt.ylabel("Adj Closing Price")
plt.title("Historical Stock Price for TICKER")
plt.show()

 

이렇게 그러면 예쁘게 그려진다. 다음 화에서 계속 !

 

 

반응형

댓글