Calcolatore VaR
Un portafoglio da 1.000.000 con volatilità annua del 20% ha un valore a rischio a 10 giorni di 65.532,54 con confidenza al 95%: la perdita da considerare come caso peggiore in quel periodo. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Valore del portafoglio
- 1.000.000
- Volatilità
- 20
- Orizzonte temporale
- 10
- Livello di confidenza
- 95
- Giorni di negoziazione
- 252
- Punteggio Z
- 1,644854
- Orizzonte in anni
- 0,039683
- Volatilità scalata
- 0,039841
Il valore a rischio, o VaR, è la cifra di rischio di mercato che risponde a una sola domanda di pianificazione: su un orizzonte di detenzione dichiarato, quale perdita deve Lei trattare come il caso peggiore a un livello di confidenza scelto? I desk di rischio, le tesorerie, i candidati d'esame e i lettori di pagine di atterraggio hanno già quattro numeri — il valore attuale del portafoglio, la volatilità annua, un orizzonte in giorni e una confidenza del novantacinque o del novantanove per cento — e servono la perdita parametrica di varianza-covarianza, non una simulazione storica né un percorso Monte Carlo. Questo calcolatore di valore a rischio riporta la volatilità annua all'orizzonte di detenzione con la regola della radice quadrata del tempo, moltiplica per lo z-score della normale standard secondo la confidenza e restituisce la perdita massima attesa nelle stesse unità del libro.
Che cosa significa il valore a rischio parametrico e come si calcola la perdita
Il valore a rischio parametrico, detto anche VaR di varianza-covarianza, è la perdita in forma chiusa che un modello gaussiano di rendimenti a media nulla assegna a un livello di confidenza scelto. Il quantile di perdita è quella volatilità scalata per lo z-score della normale standard z_α uguale alla CDF inversa Φ⁻¹(α) per la confidenza α, così il VaR vale V × σ × z_α × √(t/T).
Un libro da un milione con volatilità annua del venti per cento, orizzonte di dieci giorni e confidenza del novantacinque per cento usa quindi una z di circa 1.64485 e √(10/252) di circa 0.1992, e la perdita parametrica è intorno a 65535 nella stessa valuta di V. Quando l'orizzonte è un giorno di negoziazione, il fattore radice si riduce a 1/√252.
Se la confidenza sale dal novantacinque al novantanove per cento, z passa da circa 1.64 a circa 2.33 e il VaR scala in quel rapporto; il tempo resta la regola della radice quadrata del tempo, non un conteggio lineare di giorni. Questa identità non è un VaR di simulazione storica né un VaR Monte Carlo: non consuma un sentiero di rendimenti, una copula né un seme casuale.
Non aggiunge neppure un drift di rendimento atteso, quindi la cifra è la perdita parametrica a media nulla dei manuali, usata nei calcolatori di desk, nei fogli FRM e negli scalaggi a dieci giorni in stile Basel. Una volatilità negativa non è uno scarto quadratico medio, perciò il solver rifiuta quell'ingresso invece di prendere un valore assoluto in silenzio. Una volatilità nulla è ben definita e restituisce una perdita nulla.
Casi d'uso
Limiti di desk e scalaggi regolamentari a dieci giorni
Trasformi una marca attuale, la volatilità annua e un orizzonte di un giorno o di dieci giorni in VaR parametrico al novantacinque o al novantanove per cento per note di limite e controlli di radice quadrata del tempo in stile Basel.
Fogli d'esame ed esercizi FRM / CFA
Verifichi un item di valore a rischio parametrico già risolto: z-score, volatilità di periodo scalata e perdita massima attesa a partire dai quattro ingressi che il quesito già indica.
Domande frequenti
Come si calcola il valore a rischio parametrico?
VaR = V × σ × z × √(t/T). La risposta è la perdita massima attesa nelle stesse unità di V.
Che cosa succede se la volatilità è negativa?
Uno scarto quadratico medio dei rendimenti non può essere negativo, quindi il calcolatore non prende un valore assoluto né inventa una perdita, e la chiamata non viene addebitata.
Quali livelli di confidenza posso usare?
Qualsiasi percentuale strettamente tra 50 e 100 (95, 99) oppure un decimale in (0.5, 1) come 0.95. Le scelte tipiche di rischio di mercato sono 90, 95 e 99 per cento; ciascuna fissa z = Φ⁻¹(α).
Perché il VaR a 10 giorni non è dieci volte quello a un giorno?
Perché la volatilità cresce con la radice quadrata del tempo, non con il numero di giorni. Il calcolatore scala la volatilità annua per la radice dell'orizzonte diviso per 252 giorni di borsa.
È un VaR storico o Monte Carlo?
Né l'uno né l'altro. È la formula parametrica a media zero: valore per volatilità per il punteggio z della sua confidenza, scalato all'orizzonte. Non usa storico dei rendimenti, percorsi casuali né rendimento atteso.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/fin/var \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"portfolio_value":1000000,"volatility":20,"time_horizon":10,"confidence_level":95}'const res = await fetch("https://api.kit.forhosting.com/fin/var", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"portfolio_value": 1000000,
"volatility": 20,
"time_horizon": 10,
"confidence_level": 95
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/var",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"portfolio_value": 1000000,
"volatility": 20,
"time_horizon": 10,
"confidence_level": 95
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/var", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"portfolio_value":1000000,"volatility":20,"time_horizon":10,"confidence_level":95}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"portfolio_value":1000000,"volatility":20,"time_horizon":10,"confidence_level":95}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/var", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"portfolio_value": 1000000,
"volatility": 20,
"time_horizon": 10,
"confidence_level": 95
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.var",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Quando la volatilità è negativa, l'attività fallisce con invalid_input invece di inventare una perdita.
Che cosa significa il valore a rischio parametrico e come si calcola la perdita
Se la marca attuale del libro è V, la volatilità annua in decimale è σ, l'orizzonte di detenzione è t giorni e un anno contiene T giorni di negoziazione — duecentocinquantadue su questo endpoint salvo che Lei sostituisca trading_days —, allora lo scarto quadratico medio del periodo è σ per la radice quadrata di t su T.
Contratto di ingresso, forma della risposta e comportamento in errore
Una confidenza che non stia strettamente sopra il cinquanta per cento e strettamente sotto il cento per cento è rifiutata affinché lo z-score resti un quantile finito positivo. Abbini il risultato alla propria serie di rendimenti se Le serve un VaR storico o Monte Carlo; inizi qui quando la domanda di prodotto è una perdita parametrica trasparente a quattro ingressi per una pagina, un foglio o un lotto di scenari che condividono già una volatilità annua. Invii per POST un corpo JSON con quattro numeri finiti obbligatori: portfolio_value, la marca attuale in unità di valuta, zero o maggiore (alias value, amount, portfolio, principal, pv); volatility, lo scarto quadratico medio annuo dei rendimenti come percentuale, ad esempio venti per il venti per cento (alias sigma, vol, annual_volatility, stdev); time_horizon, l'orizzonte di detenzione in giorni, ad esempio uno o dieci (alias horizon, days, holding_period, t); e confidence_level, una percentuale tra cinquanta e cento esclusi come novantacinque, oppure un decimale in (0.5, 1) escluso come 0.95 (alias confidence, alpha, level, cl). L'opzionale trading_days vale di default duecentocinquantadue, l'anno di rischio di mercato usato come T nel fattore radice; l'opzionale decimals è un intero da zero a dodici che controlla l'arrotondamento half-up (default sei). Ogni campo obbligatorio può arrivare come numero JSON o come stringa numerica; campi assenti, stringhe vuote, booleani e valori non finiti falliscono con invalid_input nominando il campo e non vengono addebitati. Un portfolio_value negativo è rifiutato per la stessa ragione: una marca attuale non è un residuo di vendita allo scoperto in questa identità. Un time_horizon non positivo è rifiutato perché l'orizzonte di detenzione deve essere un numero positivo di giorni. In caso di successo il corpo riecheggia portfolio_value, volatility, time_horizon, confidence_level come percentuale e trading_days; aggiunge z_score, horizon_years (t/T), scaled_volatility (lo scarto quadratico medio di periodo in decimale), value_at_risk come la perdita nelle stesse unità del libro, value_at_risk_percent come quella perdita su V per cento, e una stringa formula che riformula VaR = V × σ × z × √(t/T).
Dove un calcolatore di valore a rischio giustifica il proprio posto
Gli educatori che spiegano perché il VaR al novantanove per cento è maggiore di quello al novantacinque — e perché una volatilità negativa non è uno scarto quadratico medio definito — possono seminare esempi d'aula che falliscono con onestà invece di prendere un valore assoluto. Una convalida fallita, inclusa una volatilità negativa, non consuma il saldo. I team di tesoreria che confrontano un limite di desk a un giorno con uno scalaggio regolamentare a dieci giorni possono pubblicare lo stesso libro e la stessa volatilità due volte, cambiare solo time_horizon e citare un value_at_risk stabile sotto la regola della radice quadrata del tempo. I candidati FRM e CFA che verificano un item di VaR parametrico risolto possono fissare z_score e la volatilità scalata accanto alla perdita, così una base di annualizzazione sbagliata resta visibile invece che nascosta in un solo numero. Poiché l'implementazione è parse di tier A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita.
Casi di integrazione
Widget di atterraggio e lotti di scenari
Incorpori un calcolatore VaR gratuito nel browser su una spiegazione di rischio, oppure pubblichi molti tuple (valore, vol, orizzonte, confidenza) da uno script e fissi value_at_risk nei test.
Domande tecniche
L'orizzonte temporale è in giorni o in anni?
In giorni. Il VaR a un giorno usa time_horizon 1; una cifra a dieci giorni in stile Basel usa 10. La volatilità annua è scalata da √(t/trading_days), con trading_days pari a 252 di default.
Quanto costa il calcolatore di valore a rischio?
Lo strumento del browser è gratuito. Le richieste API usano saldo KIT prepagato a $0.002 per chiamata riuscita; un ingresso non valido, inclusa la volatilità negativa, non viene addebitato.