MINA DCA simulation

mina_dca

MINA DCA

# STEP 0. install coingecko API
# !pip install pycoingecko

# STEP 1. get data from API
from pycoingecko import CoinGeckoAPI
cg = CoinGeckoAPI()
data = cg.get_coin_ohlc_by_id(id="mina-protocol", vs_currency="usd", days="max")


# STEP 2. convert data to numpy array
import numpy as np 
data = np.array(data)
day_range = 4*np.arange(-data.shape[0]+1, 1) 

def get_mean(price):
   n = len(price)
   mean = price[0]
   mean_list = [mean]
   for k in range(n-1):
       mean = (k+1)/(k/mean + 1/price[k+1])
       mean_list += [mean]

   mean_np = np.array(mean_list) 
   return mean_np 

price = data[:, -1]
mean = get_mean(price)
import matplotlib.pyplot as plt
import seaborn as sns
# sns.set_style("whitegrid") 
sns.set_theme()

f, axs = plt.subplots(1, 2, figsize=(7*2, 5))
ax = axs[0]
ax.plot(day_range, price, label = "price")
ax.plot(day_range, mean, label="DCA price every 4 days")
ax.set_xlabel("day (today=28-05-2022)")
ax.set_ylabel("USD")
ax.legend()

ax = axs[1]
ax.plot(day_range, ((price-mean)/mean)*100, label = "profit/loss", color="red")
ax.set_xlabel("day (today=28-05-2022)")
ax.set_ylabel("%")
ax.legend()

f.suptitle("DCA strategy for MINA")
f.savefig(fname="mina.png", type="png", dpi=500)

Nhận xét

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

Meta Links

IBC v2