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

import numpy as np

returns = np.array([0.01, -0.02, 0.005, 0.015])
lam = 0.94
variance = returns.var()
path = []
for r in returns:
    variance = lam * variance + (1-lam) * r**2
    path.append(variance)
print(np.round(np.sqrt(path), 4))

import numpy as np

open_, high, low, close = 100, 105, 98, 103
hl = np.log(high/low)
co = np.log(close/open_)
parkinson = hl**2 / (4*np.log(2))
gk = 0.5*hl**2 - (2*np.log(2)-1)*co**2
print(round(parkinson, 6), round(gk, 6))

import numpy as np
returns = np.array([0.01, -0.02, 0.005, 0.015])
variance = returns.var()
variance = lam * variance + (1-lam) * r**2
path.append(variance)
print(np.round(np.sqrt(path), 4))
