Calcolare lo spread emittente (1 Viewer)

GiveMeLeverage

& I will remove the world
Le tue considerazioni mi trovano perfettamente d'accordo Yunus, e in effetti io le avevo trascurate/ignorate all'inizio del procedimento che sto cercando di mettere in piedi.
Per cui credo che tu convenga con me che la strada suggerita da GiveMeLeverage sia da perseguire (costruzine curva a termine dell'emittente).
Speriamo che GiveMe ci legga, e ci dia istruzioni su come costruire sta benedeta curva. :up:

Vi leggo, ma sono piuttosto lento nel rispondere...
In questi giorni la finanza praticata mi sta distraendo da quella teorizzata -- fortunatamente è una distrazione soddisfacente in termini di gain :D

Torniamo alla curva a termine:
costruirla non è proprio banale, fortunatamente si trovano molte risorse sul web sull'argomento, cercando p.e. "term structure of interest rates" e "bootstrapping".

Qualche link introduttivo:
Yield curve - Wikipedia, the free encyclopedia
Bootstrapping (finance) - Wikipedia, the free encyclopedia

Cercando di semplificare, partendo dai tassi interni di rendimento dei bond di un determinato emittente, tramite un processo iterativo chiamato "bootstrapping" si calcolano i rendimenti di ipotetici zero coupon con scadenze 1, 2, 3, ecc anni.
Il grafico di tali rendimenti in funzione del tempo (scadenza dei ZC) è proprio la tanto agognata curva dei rendimenti, o struttura a termine dei tassi che dir si voglia.

Perché gli ZC?
Non basta il tasso interno di rendimento interno dei nostri bond originari in funzione della loro scadenza?
Purtroppo non basta, perché due bond pari scadenza ma con cedola diversa (p.e. uno al 2% e l'altro al 5%) non sono direttamente confrontabili, visto che hanno durata finanziaria diversa (intuitivamente, possiamo dire che il bond al 5% restituisce il capitale prima del suo analogo al 2%).

Insomma bisogna proprio fare 'sto bootstrapping (leggo lo sconforto sulle facce dei vostri avatar ;) )?
Sarebbe la cosa più corretta, ma personalmente ho deciso di non farlo perché troppo complesso per i miei scopi.

Ecco la mia scorciatoia:
1. prendiamo i bond del ns. emittente (più sono meglio è);
2. calcoliamo il loro tasso di rendimento interno = y1, y2, ... yn;
3. calcoliamo la loro durata finanziaria media (duration) = x1, x2, ... xn;
4. segniamo i punti x1,y1 x2,y2 ecc sul grafico

se siamo fortunati abbiamo trovato una serie di punti "ordinati", e quindi possiamo:
5. unire i punti.

Per un risultato meno "angoloso", invece che unire i punti con dei segmenti di retta ho scelto di farlo con delle spline cubiche.
Perplessi? :-?
Qualche link allora:
Spline (mathematics) - Wikipedia, the free encyclopedia
Cubic Splines | Newton Excel Bach, not (just) an Excel Blog

ma sopratutto le funzioni spline (e molto altro) da inserire nel nostro foglio excel:
AlgLib Spline Functions | Newton Excel Bach, not (just) an Excel Blog


se siamo sfortunati abbiamo trovato una serie di punti non molto "ordinati", e quindi dobbiamo:
5. interpolare i punti, trovare cioè una funzione che passi "vicino" ai punti invece che intercettarli tutti.

Spline interpolation - Wikipedia, the free encyclopedia


Abbastanza carne al fuoco per oggi? :D
Buona notte a tutti... :ciao:
 

sesp

Nuovo forumer
GiveMe, sei un mito! :up::up:
Innanzitutto grazie infinite per la tua disponibilità (vista anche l'ora in cui hai postato questa lezione di matematica finanziaria...) e complimenti ancora per la comptenza e la "semplicità" con cui tratti questi argomenti.
Sei riuscito a far comprendere a me che sono una scimmia in matematica i concetti di fondo, e ora mi metto al lavoro.
Immaginavo fosse una robetta complicata :)eek::eek:) e non so cosa riuscirò a combinare nella parte pratica.
E' molto probabile che mi pianterò da qualche parte e mi servirà ancora il tuo aiuto... :specchio::specchio:
 

sesp

Nuovo forumer
OK, riprendiamo il discorso, mostrando lo "stato avanzamento lavori" di quanto sono riuscito a fare sin qui, sperando che sia corretto.
Ovviamente ho un sacco di punti interrogativi, ai quali ho provato a rispondere autonomamente, e ora mostrandovi i risultati avremo modo di verificare (per questo conto ancora sull'aito di GiveMe... ;)) se ho lavorato bene.

Innanzitutto ho creato la struttura a termine free-risk, prendendo come dati euribor 3 e 6 mesi e poi i tassi IRS. Ho letto in altro 3D della possibilità di costruire la curva free-risk anche con gli ZC, ma se non ho interpretato male mi pare che la scelta (almeno quella di GiveMeLeverage) sia caduta sui tassi IRS.

Non avendo a disposizione tutti i tassi IRS anno per anno, ho interpolato quelli mancanti, con la formula suggeritami da Yunus, che è poi quella che utilizziamo per interpolare gli IRS nel calcolo dei forward IRS. Spero che questa prima parte del procedimento sia corretta. Allego tabella e grafico, così da avere un vosrto riscontro sulla correttezza di metodo e calcoli.
 

Allegati

  • Freerisk term.png
    Freerisk term.png
    23,5 KB · Visite: 309

sesp

Nuovo forumer
Sono poi passato alla costruzione della struttura a termine di un emittente (RBS) che mi servirà da campione (nel caso sia giusto ciò che ho fatto…) per tutti gli altri bond che andrò a censire nel tempo.
Posto che ho adottato per ora la scorciatoia suggerita (quindi no Bootstrapping) ho interpretato così le istruzioni:
1 - preso i soli bond a Tasso Fisso dell'emittente XYZ (nel mio caso RBS)
2 - calcolato il TIR con la funzione TIR.X (anche se avevo il dubbio di dover usare TIR.COST... spero di aver fatto giusto)
3 - calcolato la duration con DURATA (anche qui avevo il dubbio se utilizzare DURATA.M che dà la duration modificata…)
4 – ho ordinato i dati per Duration (e quindi non per scadenza) e li ho messi sul grafico dispersione XY.
 

Allegati

  • RBS term.png
    RBS term.png
    36,8 KB · Visite: 763

sesp

Nuovo forumer
Fin qui spero sia tutto giusto…
Ora vengono i dubbi e i problemi. :specchio:

Dai dati ottenuti riguardo all’emitente, ho provato a calcolarne (non senza difficoltà iniziali…) la spline cubica (funzione VBA SPlineA), installando la funzione scaricata dal link indicato da GiveMeLeverage.
Il risultato è quello mostrato sotto, e mi lascia abbastanza perplesso…


1287237325splinerbs.png



Tanto per iniziare i bond RBS Tasso Fisso non sono molti (per lo meno quelli che io finora ho censito..), per cui ho pochi punti già in partenza. Forse bisognerebbe in questi casi PRIMA interpolare i dati e POI fare la spline cubica??
Oppure ho preso la funzione sbagliata, e dovevo cercare nel secondo link indicato??
Poi, il primo titolo ha duration 1,65: mi mancano dati per duration più brevi, come fare???
Infine, la funzione SPlineA può essere implementata “di default” su Excel, in modo che sia utilizzabile sempre, oppure è necessario mettere la macro VBA in ogni cartella in cui si vuole utilizzare tale funzione??

Come vedete i dubbi non mi mancano, :titanic:e anche se qualcosa sono riuscito a combinare credo di essere ancora lontano dalla meta…:help::help:



Grazie a chi avrà voglia di dare un contributo.:up:
 

GiveMeLeverage

& I will remove the world
OK, riprendiamo il discorso, mostrando lo "stato avanzamento lavori" di quanto sono riuscito a fare sin qui, sperando che sia corretto.
Ovviamente ho un sacco di punti interrogativi, ai quali ho provato a rispondere autonomamente, e ora mostrandovi i risultati avremo modo di verificare (per questo conto ancora sull'aito di GiveMe... ;)) se ho lavorato bene.

Innanzitutto ho creato la struttura a termine free-risk, prendendo come dati euribor 3 e 6 mesi e poi i tassi IRS. Ho letto in altro 3D della possibilità di costruire la curva free-risk anche con gli ZC, ma se non ho interpretato male mi pare che la scelta (almeno quella di GiveMeLeverage) sia caduta sui tassi IRS.

Non avendo a disposizione tutti i tassi IRS anno per anno, ho interpolato quelli mancanti, con la formula suggeritami da Yunus, che è poi quella che utilizziamo per interpolare gli IRS nel calcolo dei forward IRS. Spero che questa prima parte del procedimento sia corretta. Allego tabella e grafico, così da avere un vosrto riscontro sulla correttezza di metodo e calcoli.

In realtà la mia scelta è stata di usare entrambe le curve, IRS e ZC, anche se in ambiti differenti:
1. IRS per obbligazioni bancarie e strutturate;
2. bond governativi area euro (dal sito della BCE ECB: Euro area yield curve) per i titoli di stato (grecia in particolare).

Un'osservazione: i tassi IRS non sono "zero couponizzati", sono dei tassi semestrali (al contrario di quelli BCE).
Attenzione ai confronti...

Sempre per quanto detto sopra, il grafico IRS è Yield(durata), invece di Yield(duration), con:
durata = numero anni a scadenza;
duration = durata finanziaria media;
duration <= durata per i bond a TF, con l'= valido solo nel caso di ZC.

Posso chiederti quale formula hai usato per l'interpolazione?
Io uso anche in questo caso la spline cubica (CSpline1DA del foglio AL-Spline-Matrix.xls http://interactiveds.com.au/software/AL-Spline-Matrix03.zip)
 

GiveMeLeverage

& I will remove the world
Sono poi passato alla costruzione della struttura a termine di un emittente (RBS) che mi servirà da campione (nel caso sia giusto ciò che ho fatto…) per tutti gli altri bond che andrò a censire nel tempo.
Posto che ho adottato per ora la scorciatoia suggerita (quindi no Bootstrapping) ho interpretato così le istruzioni:
1 - preso i soli bond a Tasso Fisso dell'emittente XYZ (nel mio caso RBS)
2 - calcolato il TIR con la funzione TIR.X (anche se avevo il dubbio di dover usare TIR.COST... spero di aver fatto giusto)
3 - calcolato la duration con DURATA (anche qui avevo il dubbio se utilizzare DURATA.M che dà la duration modificata…)
4 – ho ordinato i dati per Duration (e quindi non per scadenza) e li ho messi sul grafico dispersione XY.

Tutto giusto direi! :up:
 

GiveMeLeverage

& I will remove the world
Fin qui spero sia tutto giusto…
Ora vengono i dubbi e i problemi. :specchio:

Dai dati ottenuti riguardo all’emitente, ho provato a calcolarne (non senza difficoltà iniziali…) la spline cubica (funzione VBA SPlineA), installando la funzione scaricata dal link indicato da GiveMeLeverage.
Il risultato è quello mostrato sotto, e mi lascia abbastanza perplesso…


1287237325splinerbs.png



Tanto per iniziare i bond RBS Tasso Fisso non sono molti (per lo meno quelli che io finora ho censito..), per cui ho pochi punti già in partenza. Forse bisognerebbe in questi casi PRIMA interpolare i dati e POI fare la spline cubica??
Oppure ho preso la funzione sbagliata, e dovevo cercare nel secondo link indicato??
Poi, il primo titolo ha duration 1,65: mi mancano dati per duration più brevi, come fare???
Infine, la funzione SPlineA può essere implementata “di default” su Excel, in modo che sia utilizzabile sempre, oppure è necessario mettere la macro VBA in ogni cartella in cui si vuole utilizzare tale funzione??

Come vedete i dubbi non mi mancano, :titanic:e anche se qualcosa sono riuscito a combinare credo di essere ancora lontano dalla meta…:help::help:



Grazie a chi avrà voglia di dare un contributo.:up:

Che ti lasci perplesso è un buon segno! :D
Dato che i punti trovati non sono ordinati, qui non basta una spline cubica (come p.e. nel caso dei tassi IRS), abbiamo bisogno anche del "fitting", cioè di una funzione che non passa per tutti i punti dati, bensì vicino a questi.
(In termini matematicamente un po' più rigorosi cerchiamo una funzione che minimizzi l'errore, solitamente espresso sotto forma di scarto quadratico medio).
Nel foglio AL-Spline-Matrix.xls ci sono varie funzioni di fitting, personalmente ho scelto la csplinefit1da, in allegato un esempio.

Pochi punti:
In realtà non sono poi pochissimi, certo più ne hai meglio è.

Duration più brevi (o più lunghe):
ovviamente la nostra curva non ha capacità previsionali, l'intervallo di validità è compreso tra la duration minima e la duration massima dei nostri bond.
Matematicamente possiamo calcolare anche i valori al di fuori dell'intervallo, ma dobbiamo aspettarci errori tanto maggiori quanto più ci allontaniamo dagli estremi (anzi, già gli estremi stessi sono un po' critici).

Macro in ogni cartella:
visto che le macro sono tante, invece di inserirle in ogni cartella ho scelto di salvare il foglio AL-Spline-Matrix.xls come "Componente aggiuntivo di Microsoft Excel" con estensione xla e poi creare un riferimento da Strumenti > Riferimenti del VB Editor.
Se invece lo vuoi caricare sempre, dopo averlo salvato come xla basta selezionarlo da Excel > Strumenti > Componenti aggiuntivi.
 

Allegati

  • rbs spline.gif
    rbs spline.gif
    89,1 KB · Visite: 349
Ultima modifica:

sesp

Nuovo forumer
Bhe, caro GiveMe... dire che mi hai aperto un mondo è diro poco!!
G R A Z I E ! ! ! ! :V:V

Finalmente vedo la luce in fondo al tubo :D:D dopo 3 settimane di studio, tentativi e ragionamenti su un punto che ritengo fondamentale per la valutazione di un qualunque bond.
Non potrò mai ringraziarti abbastanza e temo che non potrò sdebitarmi: il mio deficit cognitivo è troppo grande nei tuoi confronti...

Ora, che ho finalmente le idee chiare, passiamo a rispondendere alla tua domanda sulle interpolazioni e a sollevare gli ultimi dubbi...
 

sesp

Nuovo forumer
Posso chiederti quale formula hai usato per l'interpolazione?
Io uso anche in questo caso la spline cubica (CSpline1DA del foglio AL-Spline-Matrix.xls http://interactiveds.com.au/software/AL-Spline-Matrix03.zip)

Allora per l'interpolazione degli IRS ho utilizzato due differenti formule; fai riferimento alla tabella + grafico postata sopra in merito alla struttura a termine free-risk.

Per interpolare i dati più "vicini" a quelli noti, ho usato una formula che di fatto assomiglia ad una semplice media. Così, per interpolare IRS 13Y e IRS 14Y ho usato questo:

IRS 13Y = IRS 12Y + (IRS 15Y-IRS 12Y)/3
IRS 14Y = IRS 13Y + (IRS 15Y-IRS 13Y)/2


Poi, per quelli dove il "buco" era più grande ho usato questa:

IRS 16Y = IRS 15Y+((IRS 20Y-IRS 15Y)/(20-15))*(16-15)
IRS 17Y = IRS 16Y+((IRS 20Y-IRS 16Y)/(20-16))*(17-16)

e così via.
 

Users who are viewing this thread

Alto