Realized Cap

Realized Cap

Realized Cap

code

# 1. install coinmetrics
!pip install coinmetrics.api_client

# 2. client API
from coinmetrics.api_client import CoinMetricsClient 
client = CoinMetricsClient()

# 3. raw data 
import numpy as np
import pandas as pd
metrics = client.get_asset_metrics(assets="btc", metrics=["CapRealUSD", "CapMrktCurUSD"])
df = pd.DataFrame(metrics)
df = df.sort_values(by='time', ascending=True) 

# 4. process data
df = df.replace(to_replace='None', value=np.nan).dropna()
df['time'] = pd.to_datetime(df['time']).dt.date
# df = df.reindex(index=df.index[::-1])
df = df.set_index("time")
df['CapMrktCurUSD'] = df['CapMrktCurUSD'].astype(float)
df["CapRealUSD"] = df["CapRealUSD"].astype(float)

# 5. Plot
import matplotlib.pyplot as plt
import seaborn as sns 
sns.set_theme()
# params 
real_cap = df["CapRealUSD"].values
market_cap = df["CapMrktCurUSD"].values
diff = market_cap - real_cap
df["real_profit_loss"] = diff /real_cap
df["NUPL"] = diff / market_cap
data = df.iloc[100:, :]
# plot
f, axs = plt.subplots(3, 1, figsize=(15, 6*3), sharex=True)
data.plot(y=["CapRealUSD", "CapMrktCurUSD"], ax=axs[0], label=["Realized Cap", "Market Cap"], logy=True)
data.plot(y=["real_profit_loss"], ax=axs[1], label=["realized profit/loss"])
data.plot(y=["NUPL"], ax=axs[2], label=["NUPL"])

Nhận xét

Bài đăng phổ biến từ blog này

Meta Links

IBC v2