# Ceteris Lab downloadable Python script
# Course: Fundamentals of Python for Financial Econometrics

import numpy as np

rng = np.random.default_rng(40)
omega, alpha, beta = 0.000002, 0.08, 0.88
returns = np.zeros(750)
variance = np.full(750, omega / (1 - alpha - beta))
for t in range(1, len(returns)):
    variance[t] = omega + alpha * returns[t - 1] ** 2 + beta * variance[t - 1]
    returns[t] = np.sqrt(variance[t]) * rng.normal()

print("Simulated observations:", len(returns))
print("Annualized volatility:", round(float(returns.std() * np.sqrt(252)), 3))

import numpy as np

daily_sigma = np.array([0.008, 0.012, 0.010])
annualized = daily_sigma * np.sqrt(252)
print(np.round(annualized, 3))
