Views
No views yet
(log(price_t / price_{t-1}))^21variance = np.exp(log_variance)
2volatility = np.sqrt(variance) * np.sqrt(252) # Annualized1from src.models.chronos import ChronosVolatility
2import torch
3
4# Load model
5model = ChronosVolatility(use_lora=True)
6model.load_custom_heads("path/to/heads.pt")
7model.base.load_adapter("path/to/adapter") # For PEFT adapter
8
9# Or use from_pretrained (if properly saved):
10# from peft import PeftModel
11# base_model = AutoModelForSeq2SeqLM.from_pretrained("amazon/chronos-t5-mini")
12# model.base = PeftModel.from_pretrained(base_model, "chronos-volatility")
13# model.load_custom_heads("path/to/heads.pt")1import numpy as np
2
3# Prepare input: squared returns sequence (60 days)
4input_seq = torch.FloatTensor(squared_returns).unsqueeze(0) # (1, 60)
5
6# Get predictions
7model.eval()
8with torch.no_grad():
9 quantiles_log_var = model(input_seq) # (1, 3)
10
11# Convert to volatility
12quantiles_var = np.exp(quantiles_log_var.numpy())
13quantiles_vol = np.sqrt(quantiles_var) * np.sqrt(252) # Annualized %
14
15print(f"10th percentile: {quantiles_vol[0][0]:.2f}%")
16print(f"Median: {quantiles_vol[0][1]:.2f}%")
17print(f"90th percentile: {quantiles_vol[0][2]:.2f}%")