안녕하세요!
오늘은 달러 인덱스와 비트코인 가격을 비교하고 시각화하는 파이썬 프로그램을 작성해보겠습니다.
금융 시장에서 달러 인덱스(DXY)와 비트코인(BTC)는 중요한 지표로 간주됩니다. DXY는 달러의 상대적 강도를 나타내며, 비트코인은 글로벌 암호화폐 시장의 대표 자산으로 주목받고 있습니다. 이 두 자산은 때때로 반대로 움직이는 경향을 보이며, 투자자들에게 중요한 상관관계의 단서를 제공합니다.
이를 통해 두 지표의 움직임을 이해하고, 투자 전략 수립에 활용할 수 있는 인사이트를 얻어보세요.
-
필요한 라이브러리 설치
이 프로그램을 실행하기 위해서는 다음 명령어로 필요한 라이브러리를 설치해야 합니다
pip install pandas matplotlib requests yfinance
-
코드 예시
import pandas as pd
import matplotlib.pyplot as plt
import requests
import yfinance as yf
from datetime import datetime, timezone
# CoinGecko API를 통해 비트코인 가격 데이터 가져오기
def get_bitcoin_prices():
url = "https://api.coingecko.com/api/v3/coins/bitcoin/market_chart"
params = {
"vs_currency": "usd",
"days": "365",
"interval": "daily"
}
response = requests.get(url, params=params)
if response.status_code != 200:
raise ValueError(f"CoinGecko API 요청 실패. 상태 코드: {response.status_code}")
data = response.json()
# 날짜와 가격 데이터 추출
dates = [datetime.fromtimestamp(price[0] / 1000, tz=timezone.utc) for price in data["prices"]]
prices = [price[1] for price in data["prices"]]
return pd.DataFrame({"Date": dates, "Bitcoin Price (USD)": prices})
# Yahoo Finance를 통해 달러 인덱스(DXY) 데이터 가져오기
def get_dxy_data():
# DXY 데이터 가져오기
dxy = yf.Ticker("DX-Y.NYB")
dxy_data = dxy.history(period="1y") # 지난 1년간 데이터
dxy_data.reset_index(inplace=True)
dxy_data = dxy_data.rename(columns={"Date": "Date", "Close": "DXY"})
return dxy_data[["Date", "DXY"]]
# 데이터 가져오기
btc_data = get_bitcoin_prices()
dxy_data = get_dxy_data()
# 데이터 병합
btc_data['Date'] = btc_data['Date'].dt.date # 날짜를 일 단위로 변환
dxy_data['Date'] = dxy_data['Date'].dt.date # 날짜를 일 단위로 변환
merged_data = pd.merge(btc_data, dxy_data, on="Date", how="inner")
# 병합된 데이터 확인
print(merged_data.head())
# 시각화
fig, ax1 = plt.subplots(figsize=(12, 6))
# DXY 시각화
ax1.set_xlabel('Date')
ax1.set_ylabel('DXY', color='tab:blue')
ax1.plot(merged_data['Date'], merged_data['DXY'], color='tab:blue', label='DXY')
ax1.tick_params(axis='y', labelcolor='tab:blue')
# BTC 시각화
ax2 = ax1.twinx()
ax2.set_ylabel('Bitcoin Price (USD)', color='tab:orange')
ax2.plot(merged_data['Date'], merged_data['Bitcoin Price (USD)'], color='tab:orange', label='Bitcoin Price (USD)')
ax2.tick_params(axis='y', labelcolor='tab:orange')
# 제목 및 레이아웃 설정
plt.title('DXY vs Bitcoin Price')
fig.tight_layout()
plt.show()
-
실행결과
Date Bitcoin Price (USD) DXY
0 2023-12-06 30500.0 103.2
1 2023-12-07 30700.0 102.8
2 2023-12-08 30400.0 102.6
...
-
시각화 결과
• 그래프설명
– 왼쪽 y축: 달러 인덱스(DXY)
– 오른쪽 y축: 비트코인 가격(USD)
– x축: 시간(날짜)
– 파란선: DXY (달러 인덱스)
– 주황선: 비트코인 가격
-
코드 설명
1. 비트코인 데이터 수집
CoinGecko API를 사용하여 지난 1년간 비트코인의 일일 종가 데이터를 가져옵니다. 이 데이터는 USD 기준으로 수집되며, 날짜와 가격으로 구성됩니다.
2. 달러 인덱스 데이터 수집
Yahoo Finance의 yfinance 라이브러리를 활용해 달러 인덱스(DXY)의 지난 1년 데이터를 가져옵니다. 여기서 “DX-Y.NYB”는 DXY의 티커(symbol)입니다.
3. 데이터 병합
두 데이터를 날짜(Date) 기준으로 병합합니다. 병합 방식은 inner로 설정하여, 비트코인 가격과 DXY 모두 데이터가 존재하는 날짜만 포함합니다.
4. 데이터 시각화
• matplotlib를 사용해 이중 축 그래프를 생성합니다.
• 왼쪽 y축에는 DXY, 오른쪽 y축에는 비트코인 가격을 표시하며, 두 데이터를 같은 x축(시간)에서 비교할 수 있습니다.
-
결과 분석
그래프 해석
• DXY(달러 인덱스):
• 미국 달러의 상대적 강도를 나타냅니다. DXY가 상승하면 달러의 가치가 주요 외화 대비 강세를 보이고 있음을 의미합니다.
• 비트코인(BTC):
• 탈중앙화된 디지털 자산으로, 투자자들에게 달러와는 대조적인 성격을 보이는 안전자산으로 간주되기도 합니다.
상관관계 탐구
• 과거 데이터를 기반으로 보면, 달러 인덱스와 비트코인 가격은 때때로 역상관 관계를 보입니다.
• DXY 상승: 달러 강세 → 비트코인 약세.
• DXY 하락: 달러 약세 → 비트코인 강세.
• 그러나 이는 항상 일정하지 않으므로, 추가적인 분석이 필요합니다.
-
결론
오늘 작성해 본 프로그램은 달러 인덱스와 비트코인 간의 관계를 시각적으로 이해하는 데 유용합니다. 두 자산 간의 상관관계를 분석하여 시장 움직임을 예측하거나 투자 결정을 내리는 데 도움을 줄 수 있습니다. 실제 데이터를 기반으로 실행 결과를 확인하고, 두 지표의 관계를 직접 분석해보세요!