반응형
API키 없이 암호화폐 데이터를 받아올 수 있는 CoinCecko API를 이용해봅시다.
https://www.coingecko.com/en/api/documentation
Crypto API Documentation | CoinGecko
Power your application with our free & independently sourced crypto data such as live prices, trading volume, exchange volumes, trading pairs, & more.
www.coingecko.com
해당 사이트에 들어가면 이런 화면이 뜹니다.
특정 URL형식으로 json 데이터를 받아오는 API 안내문을 볼 수 있습니다.
이 중 우리가 필요로하는 market cap(시가총액)을 가져오는 주소를 생성해줍니다.
빈칸에는 차례대로 bitcoin, usd, 1, daily를 입력해주면 됩니다.
숫자부분을 바꿔주면 원하는 기간의 데이터를 받아올 수 있습니다.
https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=1&interval=daily
request url을 얻었습니다.
{
"prices": [
[
1676332800000,
21807.834274723064
],
[
1676373877000,
21800.34522195915
]
],
"market_caps": [
[
1676332800000,
420838871938.82733
],
[
1676373877000,
420739022302.9913
]
],
"total_volumes": [
[
1676332800000,
36761909546.14395
],
[
1676373877000,
32211451441.997234
]
]
}
Response headers
cache-control: public,max-age=120
content-type: application/json; charset=utf-8
expires: Tue,14 Feb 2023 11:26:46 GMT
위처럼 해당 url의 server reaponse도 보여줍니다.
가져온 URL을 사용해봅시다.
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&interval=daily"
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["market_caps"]]
df = pd.DataFrame(market_cap_data, columns=['Date', 'Market Cap'])
df = df.groupby('Date').mean().reset_index()
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()
잘 작동하죠?
다음번에는 streamlit으로 웹앱 배포해보겠습니다.
반응형
'코딩 공부 > python' 카테고리의 다른 글
Deribit API 사용해보고 옵션 트레이딩 알고리즘 만들기 (1) | 2023.04.16 |
---|---|
온체인 데이터를 이용한 지표 웹사이트 쉽게 만들기(4/완결) (0) | 2023.02.16 |
ChatGPT와 함께 커버드 콜 전략 자동실행 알고리즘 짜기 (5) (0) | 2023.02.13 |
온체인 데이터를 이용한 지표 웹사이트 쉽게 만들기(2) (0) | 2023.02.06 |
온체인 데이터를 이용한 지표 웹사이트 쉽게 만들기(1) (0) | 2023.02.04 |
댓글