Indice Prefazione XIII Capitolo 1 Introduzione al Visual Basic per Excel 1 1.1 Premessa 1 1.2 Lavorare in Ambiente Excel 2 1.3 Le Macro di Excel 4 Dal Linguaggio Macro al Visual Basic for Application 4 Registrare una macro 6 Come utilizzare una macro 10 1.4 L ambiente di Sviluppo di Visual Basic for Application 12 Visualizzare il Codice della Macro 12 L Editor VBA 15 L utilizzo della guida in linea 18 1.5 Gli elementi base della Sintassi del VBA 19 Le variabili 19 Tipi di dati 21 Condizioni e Cicli 29 1.6 Algoritmi e Linguaggi di Programmazione 32 Il flusso logico 32 Dall Algoritmo al Programma 35 1.7 Procedure, Strutture Dati e Oggetti 42 Modularità dei Programmi e uso delle Funzioni 42 Algoritmi + Strutture Dati = Programmi 50 Lo Zen e la Nobile Arte della Programmazione Orientata agli Oggetti 54 1.8 Iniziamo a lavorare con gli oggetti di Excel 56 Gerarchie di Oggetti 56 Eventi 57 Usare gli oggetti: definizioni di base 58 Bibliografia 59
VIII Indice Capitolo 2 Definizioni fondamentali 61 2.1 Introduzione 61 2.2 Operazioni finanziarie 62 L uso degli array in VBA 64 Pulsanti di comando personalizzati e gestione degli eventi 66 Una semplice applicazione sull uso degli array 71 Oggetti Range e Celle 73 Gli array dinamici 76 Le funzioni LBound e UBound 78 Rendiamo dinamici i nostri vettori 78 2.3 Tassi d interesse e di sconto 81 Utilizzo efficiente dei moduli 82 Come scrivere una procedura per una funzione 87 Funzioni definite dall utente 88 2.4 Leggi di capitalizzazione 93 2.5 Tassi d interesse nominali e tassi equivalenti 95 Parametri Opzionali 97 Parametri Opzionali con Valori Predefiniti 98 Uscire dalla Funzione Anticipatamente 99 2.6 Intensità e forza di interesse 101 2.7 Rendite 102 2.8 Piani di ammortamento 105 Reporting di Piani di Ammortamento in VBA 108 2.9 Tasso interno di rendimento 124 Come creare una finestra di dialogo personalizzata: l uso degli UserForm 126 Bibliografia 138 Capitolo 3 Titoli obbligazionari 139 3.1 Introduzione 139 3.2 Titoli zero-coupon bond e rendimenti a scadenza 141 3.3 Titoli con cedola a tasso fisso 144 3.4 Creazione di scadenzari 145 Le funzioni Visual Basic per la gestione delle Date 148 Modalità con cui Excel interpreta le date ambigue 156 Modalità secondo cui Excel interpreta gli anni a due cifre 156 Come costruire un piano cedole per un titolo a tasso fisso 156 3.5 Tassi a pronti (spot) e Valutazione di Titoli a Tasso Fisso 163 3.6 Tassi a termine (forward) 165 3.7 Titoli a indicizzazione diretta (floater) 168 3.8 Titoli a indicizzazione inversa (reverse floater) 173 3.9 Contratti e tassi swap 175 3.10 Spostamenti della curva e impatto sul valore dei prodotti finanziari 179
Indice IX 3.11 Moduli di Classe 181 La classe CCouponBond 182 Bibliografia 195 Capitolo 4 Titoli azionari e derivati 197 4.1 Introduzione 197 4.2 Contratti derivati 198 Prodotti derivati lineari: contratti forward 199 Prodotti derivati lineari: contratti futures 203 Strategie di copertura e speculazione 207 Prodotti non lineari: opzioni 208 Relazioni di arbitraggio tra prodotti derivati 211 4.3 Azioni 213 4.4 Richiami di Teoria delle Probabilità 217 Variabili Aleatorie e Funzioni di Distribuzione 218 Momenti 220 Distribuzioni Discrete 224 Distribuzioni Continue 229 4.5 Covarianza e Correlazione 241 4.6 Come Simulare al Computer un Processo Stocastico 242 Che cos è un Processo Stocastico 242 Il generatore Lineare Congruente 243 Le funzioni Rnd() e Randomize() 244 Utilizzo delle funzioni del foglio di lavoro di Microsoft Excel in Visual Basic 246 Come generare variabili con distribuzione non uniforme 247 Come Simulare una variabile distribuita Normalmente 248 La simulazione di un processo di Wiener 249 Bibliografia 252 Capitolo 5 La curva dei rendimenti 253 5.1 Introduzione 253 5.2 Principio di arbitraggio e calcolo della curva dei rendimenti 254 5.3 Il metodo bootstrap: una presentazione formale 257 Ratei e prezzi tel quel 259 Interpolazione lineare ed esponenziale 264 5.4 Il metodo delle spline 270 5.5 Analisi della curva dei rendimenti: economia 274 Dinamica dei tassi a breve e della curva dei rendimenti 277 Inflazione e curva dei tassi 280 Altri modelli della curva dei tassi 283 5.6 Analisi della curva dei rendimenti: statistica 286 Un implementazione del metodo delle componenti principali in VBA 287
X Indice 5.7 Misure di sensitività: duration 289 5.8 Misure di sensitività: convexity 293 5.9 Calcolo di duration con curva piatta 296 5.10 Calcolo di duration e convexity in VBA 297 Bibliografia 305 Capitolo 6 Immunizzazione finanziaria 307 6.1 Introduzione 307 6.2 Tecniche di asset liability management 308 6.3 Tecniche di duration matching 311 Applicazione: investimenti con target di duration 312 Applicazione: cash flow mapping 313 6.4 Effetto convessità 314 6.5 Spostamenti non paralleli della curva 315 Applicazione: investimenti con target di convexity 318 6.6 La selezione di un portafoglio immunizzato: un problema di programmazione lineare 320 Che cos è la programmazione lineare 320 Il Risolutore di Excel 324 Come utilizzare il Risolutore dal codice VBA 327 Impostazione del problema finanziario 332 6.7 Il programma VBA per la selezione di un portafoglio immunizzato 334 Uso di una libreria esterna in linguaggio C 347 Argomenti passati per valore o per riferimento 348 Che cos è una DLL 350 Uso del Risolutore 352 Bibliografia 354 Capitolo 7 Il modello di Black e Scholes 355 7.1 Introduzione 355 7.2 Modelli Arbitrage Pricing Theory (APT) 356 7.3 Modelli di valutazione risk-neutral 361 La misura di probabilità aggiustata per il rischio 363 7.4 Elementi di calcolo stocastico 365 Il lemma di Ito e il teorema di Girsanov 366 7.5 Il modello di Black e Scholes 368 La misura di probabilità aggiustata per il rischio 369 7.6 Valutazione di contratti derivati: cambi di numerario 370 Valutazione di opzioni call e put 372 7.7 Analisi di sensitività: greek letters 376 Analisi di sensitività rispetto ai parametri: vega e rho 381 7.8 Informazione implicita 383
Indice XI Volatilità implicita 384 Probabilità implicita 387 7.9 Applicazioni: valutazione di titoli corporate 392 7.10 Applicazioni: derivati sui tassi d interesse 394 7.11 Simulazioni con il metodo Monte Carlo 398 La stima del prezzo 398 La stima delle sensitività 401 Bibliografia 407 Capitolo 8 Gestione del portafoglio 409 8.1 Introduzione 409 8.2 Utilità attesa e modello media-varianza 410 Il modello media-varianza 414 8.3 Modelli con due titoli 415 8.4 Modello con N titoli rischiosi 418 8.5 Modello con N titoli rischiosi e uno privo di rischio 422 8.6 Equilibrio sul mercato dei capitali e il modello CAPM 424 8.7 Risparmio gestito: fondi comuni di investimento e gestioni patrimoniali 427 Fondi comuni di investimento 429 La classificazione dei Fondi comuni e Sicav 429 Il Benchmark 432 8.8 Misurazione dei rendimenti 433 Metodo R-Daily 434 Metodo Dietz modificato 435 8.9 Indici di performance relativa 442 8.10 Investimenti alternativi e hedge fund 445 8.11 L algoritmo di Sharpe 446 Bibliografia 461 Capitolo 9 Dal Visual Basic al C/C++ 463 9.1 Quando il VBA non basta ++ 463 9.2 L ambiente di sviluppo Visual Studio 465 9.3 Dal codice all eseguibile 474 Il compilatore 474 Il processo di collegamento (link) 474 La funzione printf() 478 Il preprocessore 480 La memoria 482 9.4 Elementi di Sintassi C/C++ 483 In principio era il C... 483 L ABC del C 484 I puntatori e la gestione della memoria 497 Classi, ereditarietà e polimorfismo 504
XII Indice 9.5 Che cos è una DLL 514 9.6 La vostra prima DLL 514 Dichiarare una procedura contenuta in una DLL 518 Passaggio di argomenti per riferimento e per valore 519 9.7 La vostra seconda DLL 525 Bibliografia 528 Appendice Gestione degli errori in VBA 529 Tipi di errore 529 Le istruzioni On Error, Resume e Resume Next 530 Strumenti di Debug 532