저번에 온체인 데이터를 가져오는 것까지 했습니다.
그래프 먼저 그려볼까요?
저번 코드는 1초단위 데이터를 가져와
우리가 원하는 단위의 데이터로 변환했는데,
더 나은 방법이 있어 코드를 수정해봤습니다.
import requests
import matplotlib.pyplot as plt
import pandas as pd
import datetime
url = "https://api.blockchain.info/charts/n-transactions?format=json×pan=30days"
response = requests.get(url)
data = response.json()
dates = []
volumes = [] #날짜와 거래량 데이터를 넣을 빈 리스트를 준비합니다.
for point in data['values']:
dates.append(datetime.datetime.fromtimestamp(point['x']).strftime('%Y-%m-%d'))
volumes.append(point['y'])
#가져온 데이터 안의 날짜 정보를 %Y-%m-%d형태로 가공하여, 그래프 x축에 사용할 날짜 리스트에 넣습니다
df = pd.DataFrame({'date': dates, 'volume': volumes})
df['volume'] = df['volume'].astype(int)
#데이터프레임을 만들어 각 x축과 y축에 데이터를 넣은 후, 거래량 데이터를 int 형식으로 바꿔줍니다.
df.set_index('date', inplace=True)
df.plot(kind='line', figsize=(12, 6), color='blue')
plt.xlabel("Date")
plt.ylabel("Transaction Volume (BTC)")
plt.title("Bitcoin On-Chain Transaction Volume")
plt.show() #그래프를 그려줍니다.
완성했습니다.
출력해봅시다.
제가 사용한 데이터의 출처 사이트로 가봅시다.
https://www.blockchain.com/explorer/charts/n-transactions
제가 출력한 그래프와 똑같이 나오는걸 알 수 있습니다.
이제 비트코인 네트워크 가치(시가총액)를 구해봅시다.
ChatGPT의 도움을 받아봅시다.
"비트코인 시가총액을 구하는 파이썬 코드를 짜줘"
API키가 필요한 코드네요.
더 까다로운 주문을 해봅시다.
coingecko 거래소는 API키가 없어도 된다네요.
AI가 만들어준 코드입니다.
import requests
url = "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=bitcoin"
response = requests.get(url)
data = response.json()
market_cap = data[0]['market_cap']
print("Bitcoin market cap: ${:,.2f}".format(market_cap))
코드를 실행해보면 2023년 2월 5일 20:37기준으로
$451,039,245,662.00이 나옵니다.
30일간의 비트코인 개수 그래프도 그려봅시다.
import requests
import matplotlib.pyplot as plt
import pandas as pd
import datetime
url = "https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30"
response = requests.get(url)
data = response.json()
market_cap_data = [(datetime.datetime.fromtimestamp(item[0]/1000).strftime('%Y-%m-%d'), item[1]) for item in data['prices']]
df = pd.DataFrame(market_cap_data, columns=['Date', 'Market Cap'])
# 일별 데이터를 모아 평균을 내준 후, 데이터프레임의 인덱스를 1,2,3...으로 초기화해줍니다
df = df.groupby('Date').mean().reset_index()
print(df)
# plot the data using Matplotlib
plt.plot(df['Date'], df['Market Cap'])
plt.xlabel('Date')
plt.ylabel('Market Cap (in USD)')
plt.title('Bitcoin Market Cap for the Last 30 Days (averaged by day)')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
이 코드도 ChatGPT가 작성해준 코드입니다.
한동안 증가했네요.
두 코드를 합쳐서 비트코인 NVT그래프를 그려봅시다.
.....
코드를 실행해보신 분들은 아시겠지만
바로 위 코드는 잘못된 코드입니다.
ChatGPT에게 bitcoin Market Cap, 즉 비트코인 시가총액을
그래프로 보여달라고 했지만,
저 코드는 비트코인 가격을 출력해주는 코드입니다.
인간인 제가 AI를 이겼습니다.
.
.
라고 할 수는 없지만
현존하는 AI 기술의 한계를 보여주는 듯 합니다.
각 웹서비스가 제공하는 API를 실시간으로 파악할 수 없어,
CoinGecko에서 시가총액을 json형태로 제공해주는 API가 있음에도 불구하고
수없이 요구해도 위의 오류 코드와 비슷한 코드만 내놓더군요.
다음 게시물에서 제가 한번 짜보겠습니다.
다음 게시물에서는 API 문서를 읽는법과
해당 API를 코드에 사용해보겠습니다.
추신: 혹시 Django 기초 책이나 무료강의를 추천해주실 수 있으신분은 꼭 댓글 달아주시면 좋겠습니다.
최근에 공부하기 시작했는데 어려워서요.
'코딩 공부 > python' 카테고리의 다른 글
온체인 데이터를 이용한 지표 웹사이트 쉽게 만들기(3) (0) | 2023.02.14 |
---|---|
ChatGPT와 함께 커버드 콜 전략 자동실행 알고리즘 짜기 (5) (0) | 2023.02.13 |
온체인 데이터를 이용한 지표 웹사이트 쉽게 만들기(1) (0) | 2023.02.04 |
ChatGPT와 함께 커버드 콜 전략 자동실행 알고리즘 짜기 (4) (0) | 2023.01.25 |
ChatGPT와 함께 커버드 콜 전략 자동실행 알고리즘 짜기 (3) (0) | 2023.01.24 |
댓글