Seria fixing-ului pe un interval
Randamentele titlurilor de stat între două date, grupate pe maturitate, cu bid, ask, mid şi spread
pe fiecare zi.
Altceva decât /titluri-stat/fixing: acolo întrebarea e „cât e curba azi", iar răspunsul un
* tabel de cinci rânduri. Aici e „cum s-a mişcat", iar răspunsul e o serie. Aceeaşi deosebire ca
între /curs şi /curs/interval.
rezumat răspunde direct la întrebarea care se pune de fapt. În februarie 2020 spread-ul mediu
era 0,221 puncte; în martie, 0,304 — cu maximul urcând de la 0,33 la 0,46, iar randamentul la zece
ani de la ~4,2% la ~5,9%. Cifrele astea ies dintr-o cerere, fără să parcurgi sute de puncte. E o
agregare pe care /serii/{cod}/valori nu o poate face: spread-ul se naşte din DOUĂ serii.
Fiecare punct cară toate cele patru valori, fără variantă „doar mid": mid serveşte graficului,
spread-ul lichidităţii, iar o rută care îşi schimbă forma după un parametru e mai greu de folosit.
Un an întreg cu toate maturităţile înseamnă în jur de 1.250 de puncte; cu un filtru, mult mai puţin.
Intervalul e plafonat la 366 de zile, aceleaşi margini ca la /curs/interval şi /robor/interval.
Parametri de interogare
YYYY-MM-DD. Nu poate fi în viitor; se aliniază la acoperire.
ex. 2024-06-15ex. 2024-06-17ex. 2024-01-02
?maturitate=10Y sau ?maturitate=6M,10Y. Fără el, toate cinci.
6M12M3Y5Y10Y
Cum se comportă
- Randamentele titlurilor de stat între două date, grupate pe maturitate, cu bid, ask, mid şi spread pe fiecare zi.
- Altceva decât
/titluri-stat/fixing: acolo întrebarea e „cât e curba azi", iar răspunsul un tabel de cinci rânduri. Aici e „cum s-a mişcat", iar răspunsul e o serie. Aceeaşi deosebire ca între/cursşi/curs/interval. rezumatrăspunde direct la întrebarea care se pune de fapt, fără parcurgerea seriei: minimul, maximul şi media pentru mid şi pentru spread, plus capetele. În martie 2020, randamentul la zece ani a urcat de la 4,04% la 5,02% — dar a atins 5,92% la mijlocul lunii, vârf pe care capetele îl ascund complet. Spread-ul maxim a sărit de la 0,21 puncte în februarie la 0,46 în martie.- E o agregare pe care
/serii/{cod}/valoriNU o poate face: spread-ul se naşte din DOUĂ serii, bid şi ask, nu din una singură. - Fiecare punct cară toate cele patru valori, fără variantă „doar mid". Mid serveşte graficului, spread-ul lichidităţii, iar o rută care îşi schimbă forma după un parametru e mai greu de folosit decât una puţin mai mare. Un an întreg cu toate maturităţile înseamnă în jur de 1.250 de puncte; cu un filtru, mult mai puţin.
maturitatee OPŢIONAL aici, spre deosebire de/curs/intervalunde valuta e obligatorie: maturităţile sunt cinci, fixe şi cunoscute, iar toate cinci deodată e o cerere firească pentru o curbă. La valute, „toate" ar însemna patruzeci de serii.- Ordinea seriilor vine din tabelul de maturităţi, nu din ordinea în care le-a scris clientul:
?maturitate=10Y,6Mîntoarce tot 6M înaintea lui 10Y, ca o curbă desenată din răspuns să nu iasă amestecată. - Zilele fără publicare nu apar în serie, iar
rezumat.punctespune câte zile au efectiv cotaţie. Marginile se aliniază la acoperire — începutul e 2011-01-10 — iar ce s-a ajustat apare înmeta.ajustat. Plafonul e de 366 de zile, verificat DUPĂ aliniere.
La ce folosește
- Graficul evoluţiei curbei suverane româneşti.
- Măsurarea stresului de lichiditate prin lărgirea spread-ului.
- Compararea a două perioade — o lună calmă faţă de una de criză.
Structura răspunsului
ON, 3M, 12M).
bid − ask, în puncte procentuale. Deja pozitiv.
data e null, iar aici stă motivul. Intervalul e în întregime înainte de 2011-01-10.
fara_date e proză şi se poate reformula, ăsta nu.
Exemple de răspuns
{
"data": {
"de_la": "2024-06-15",
"pana_la": "2024-06-30",
"unitate": "procent_pe_an",
"serii": [
{
"maturitate": "6M",
"denumire": "şase luni",
"luni": 6,
"rezumat": {
"puncte": 9,
"prima_zi": "2024-06-17",
"ultima_zi": "2024-06-28",
"mid": {
"primul": "5.95",
"ultimul": "5.92",
"minim": "5.92",
"maxim": "5.95",
"mediu": "5.94"
},
"spread": {
"minim": "0.30",
"maxim": "0.31",
"mediu": "0.30"
}
},
"valori": [
{
"data": "2024-06-17",
"bid": "6.10",
"ask": "5.80",
"mid": "5.95",
"spread": "0.30"
}
]
}
]
},
"meta": {
"sursa": "BNR — fixing titluri de stat (baza de date interactivă).",
"acoperire": {
"de_la": "2011-01-10",
"pana_la": "2026-09-21"
},
"puncte": 18,
"zile_interval": 16,
"nota_randamente": "Valorile sunt RANDAMENTE: `bid` e mai mare decât `ask`, iar `spread` e `bid − ask`, deja pozitiv.",
"nota_rezumat": "`rezumat` dă minimul, maximul şi media pentru mid şi pentru spread, plus capetele — ca „cât s-a lărgit spread-ul\" să nu ceară parcurgerea seriei.",
"nota_zile": "Zilele fără publicare nu apar în serie; `rezumat.puncte` spune câte zile au efectiv cotaţie."
}
}
{
"data": {
"de_la": "2024-06-17",
"pana_la": "2024-06-28",
"unitate": "procent_pe_an",
"serii": [
{
"maturitate": "12M",
"denumire": "douăsprezece luni",
"luni": 12,
"rezumat": {
"puncte": 9,
"prima_zi": "2024-06-17",
"ultima_zi": "2024-06-28",
"mid": {
"primul": "5.96",
"ultimul": "5.93",
"minim": "5.93",
"maxim": "5.96",
"mediu": "5.94"
},
"spread": {
"minim": "0.30",
"maxim": "0.32",
"mediu": "0.31"
}
},
"valori": [
{
"data": "2024-06-17",
"bid": "6.11",
"ask": "5.80",
"mid": "5.96",
"spread": "0.31"
}
]
}
]
},
"meta": {
"sursa": "BNR — fixing titluri de stat (baza de date interactivă).",
"acoperire": {
"de_la": "2011-01-10",
"pana_la": "2026-09-21"
},
"puncte": 9,
"zile_interval": 12,
"nota_randamente": "Valorile sunt RANDAMENTE: `bid` e mai mare decât `ask`, iar `spread` e `bid − ask`, deja pozitiv.",
"nota_rezumat": "`rezumat` dă minimul, maximul şi media pentru mid şi pentru spread, plus capetele — ca „cât s-a lărgit spread-ul\" să nu ceară parcurgerea seriei.",
"nota_zile": "Zilele fără publicare nu apar în serie; `rezumat.puncte` spune câte zile au efectiv cotaţie."
}
}
{
"data": {
"de_la": "2024-01-02",
"pana_la": "2024-01-31",
"unitate": "procent_pe_an",
"serii": [
{
"maturitate": "6M",
"denumire": "şase luni",
"luni": 6,
"rezumat": {
"puncte": 20,
"prima_zi": "2024-01-03",
"ultima_zi": "2024-01-31",
"mid": {
"primul": "5.97",
"ultimul": "5.91",
"minim": "5.91",
"maxim": "5.97",
"mediu": "5.94"
},
"spread": {
"minim": "0.33",
"maxim": "0.37",
"mediu": "0.36"
}
},
"valori": [
{
"data": "2024-01-03",
"bid": "6.15",
"ask": "5.78",
"mid": "5.97",
"spread": "0.37"
}
]
}
]
},
"meta": {
"sursa": "BNR — fixing titluri de stat (baza de date interactivă).",
"acoperire": {
"de_la": "2011-01-10",
"pana_la": "2026-09-21"
},
"puncte": 100,
"zile_interval": 30,
"nota_randamente": "Valorile sunt RANDAMENTE: `bid` e mai mare decât `ask`, iar `spread` e `bid − ask`, deja pozitiv.",
"nota_rezumat": "`rezumat` dă minimul, maximul şi media pentru mid şi pentru spread, plus capetele — ca „cât s-a lărgit spread-ul\" să nu ceară parcurgerea seriei.",
"nota_zile": "Zilele fără publicare nu apar în serie; `rezumat.puncte` spune câte zile au efectiv cotaţie."
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 422 | validare | interval_prea_lung (peste 366 de zile, verificat după aliniere); maturitate inexistentă; de_la lipsă sau în viitor; pana_la înainte de de_la. |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.
{
"eroare": {
"cod": "validare",
"mesaj": "interval_prea_lung (peste 366 de zile, verificat după aliniere); maturitate inexistentă; de_la lipsă sau în viitor; pana_la înainte de de_la.",
"detalii": {
"de_la": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}