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

import numpy as np

rng = np.random.default_rng(25)
returns = 0.01 * rng.standard_t(df=5, size=2_000)
losses = -returns
q = 0.99
var = np.quantile(losses, q)
es = losses[losses >= var].mean()
print(round(var, 4), round(es, 4), int((losses >= var).sum()))

threshold = np.full_like(losses, var)
exceed = losses > threshold
expected = len(losses) * (1-q)
print(exceed.sum(), round(expected, 1), round(exceed.mean(), 4))

import numpy as np
rng = np.random.default_rng(25)
returns = 0.01 * rng.standard_t(df=5, size=2_000)
var = np.quantile(losses, q)
es = losses[losses >= var].mean()
print(round(var, 4), round(es, 4), int((losses >= var).sum()))
