Comments
Description
Transcript
dispensa
CONTENUTI: • • • • • Presentazione del corso Banca dati Datastream Titoli obbligazionari Titoli azionari Derivati pag. 1 pag. 4 pag. 15 pag. 22 pag. 26 MOTIVAZIONE DEL CORSO: • Le conoscenze tecnico-quantitative richieste agli operatori del settore finanziario sono sempre maggiori. OBIETTIVI: • Il corso si propone di fornire agli studenti la capacità di tradurre in applicazioni numeriche e grafiche i modelli teorici di valutazione delle attività finanziarie (titoli azionari, obbligazionari e derivati) e di scelte ottimali di portafoglio. • In particolare viene analizzata l’applicazione del programma Excel ai più comuni modelli finanziari • Che vengono implementati utilizzando dati reali ottenuti dalla banca dati DATASTREAM. RICEVIMENTO: UFFICIO 71 Modalità di valutazione • Alla fine del modulo lo studente deve sostenere la prova d’esame che consiste: • in una simulazione all’interno dell’ambiente Excel e in una discussione orale della prova. Testi Il testo di riferimento è il seguente: • Simon Benninga, Modelli Finanziari, la finanza con Excel, McGraw-Hill, 2010, Seconda Edizione con CD-Rom allegato. • Per approfondimenti su Excel e DATASTREAM consultare i relativi manuali o l’help in linea. MATERIALE DIDATTICO INTEGRATIVO • LUCIDI DELLE LEZIONI • FOGLI DI CALCOLO • DISPONIBILE SUL SITO DEL DOCENTE: http://morgana.unimore.it/muzzioli_silvia/ Contenuti del corso • Richiami di Excel ed introduzione alla banca dati DATASTREAM • Operazioni finanziarie semplici e complesse. Criteri di scelta tra investimenti. • I titoli obbligazionari: Duration, Convexity e immunizzazione • La struttura per scadenza dei tassi di interesse • Teoria di portafoglio e CAPM • Il Value at Risk • Il modello binomiale per la valutazione di opzioni • L’esercizio anticipato delle opzioni • Distribuzione lognormale e modello di Black and Scholes Usare funzioni RATA, VAN etc… Usare “ricerca obiettivo” ed il “risolutore” Usare funzioni “durata” etc.. I grafici in Excel Usare l’opzione “aggiungi linea di tendenza” Usare funzioni matrice e tabelle dati Ricerca di quantili e VAR Distribuzione di Probabilità Normale Funzione di Densità 0,014 Probabilità 0,012 0,01 0,008 0,006 0,004 0,002 0 0 30 60 90 120 150 180 210 240 270 Valori del Portafoglio Il modello binomiale Simulazioni di Monte Carlo Prezzo azione ($) La simulazione del sentiero dei prezzi azionari 40 35 30 25 20 0 200 100 Giorno 300 Distribuzioni di frequenza Distribuzione di frequenza dei rendimenti dell'indice S&P 500 Distribuzione di frequenza lognormale 20 Frequenza 200 15 150 100 10 50 5 0 2,25 1,95 1,65 1,35 1,05 0,75 0 -0,03 -0,02 -0,01 0 0,01 0,02 0,03 La volatilità implicita Volatilità implicita Volatilità Implicita della Call 50% 40% 30% 20% 10% 0% 5 7 9 Prezzo-obiettivo della call ($) 11 Programma del corso di DATASTREAM • • • • Introduzione Trovare serie storiche Creare grafici e report Importare i risultati in Excel 1. Introduzione Communication Server / Mainframe DSAdvance è una interfaccia per fare report e grafici Datastream fornisce dati direttamente al PC attraverso una linea ad alta velocità collegata al Mainframe di Londra. Online or Offline? • Per default ci si connette e si va online quando i dati vengono richiesti. Si può lavorare offline e aggiungere le richieste al progetto con Add New request Connettersi • Il bottone con un fulmine nell’angolo in basso dello schermo indica connessione. Tools / Connect Now • Cliccare col destro del mouse sul fulmine / Connect Now • Run Now per richiedere dati, grafici o report INACTIVITY TIMEOUT • Per connettersi uno alla volta, è utile impostare la comunicazione nel seguente modo: • CONFIGURE\ COMMUNICATIONS\ INACTIVITY TIMEOUT = 10 SEC • Riavviare datastream per rendere effettive le modifiche. • Altrimenti si impegna la linea anche quando non si stanno richiedendo dati! • In seguito vedremo l’opzione schedule night shift che serve per richiedere dati in un momento futuro, ed aggiornarli con una frequenza prestabilita. Dati Datastream è un database storicofinanziario con 4 moduli principali: Dati • I dati sono controllati molte volte per assicurarne la correttezza. • Sono regolarmente aggiornati giornalmente. • I dati su Equities e Indices sono disponibili dal 1964, le serie macroeconomiche dal 1950. Help in Datastream • • • • • Centro assistenza di zona. Responsabile clienti di zona Extranet – Datastream.com Sito Web Extranet contenente informazioni di supporto e indicazioni. Sul sito sono presenti anche i manuali (vedere il punto 5), alcuni fogli di lavoro di Excel nonche` gli ultimi numeri di Infostream. Registrazione: http://www.datastream.com/registration/registfm.htm Accesso: http://support.datastreamicv.com TOOLS\ OPTIONS\ INTERNET\ WEB BROWSER ENABLED\ CLICK SUL TASTO DATASTREAM.COM Manuali in linea: Help/online manuals: Getting Started [Guida introduttiva] Lo schermo di DSAdvance • Cinque parti dello schermo: • 1. Selezione del Database – Data Category • 2. Selezione Programmi – Charting e Analysis: generare Overview, grafici (Chart), Reports, scaricare serie storiche (Single series data), confronti tra più serie (multiple series). • 3. Campo find per serie e datatypes • 4. Parametri – Time period, currency, settings • 5. Schermo di output • Cambiare la grandezza della finestra • Drag & Drop splitter bars per cambiare la grandezza dell’output e del progetto • Bottone Viewport Zoom per allargare o ridurre la grandezza dei report o grafici richiesti. Esempio: Overview of Company Performance - Mediaset • Mostrare l’Overview of Company Performance per il titolo Mediaset su 3 anni in Euro. • Database = Equity = Mediaset Output = Overview of Company Performance Time period = 3 years • 1. • 2. • • • • • 3. 4 5. 6. 7. Selezionare Equity database tab Selezionare program tab: Overview of a single series Selezionare output: Overview of Company Performance Time period = -3Y Currency = Euro Selezionare Equity: Scrivere in Find field = Mediaset Run Now per richiedere il grafico Viewport Zoom DATAST REAM EQUITIES Mnemonic - I:MS Local Code - M106321 Current Price 12 Mth Range High Low 10/01/12 11.23 MEDIASET Geography Code - IT Exchange - Milan 2.0820 4.9225 1.8410 12:07 9/ 2/11 23/11/11 Price Change 1mth (E) -4.5% 3mth -18.4% EPS PE 12mth PE Rel. -52.0% P/Cash Relative to FITASHE 1.7% -10.1% -34.4% Market Value (E) 2459.31M P rice and Index (rebased) 10 Fin.Yr LocStd I/B/E/S 12/10 09/11 12/11 12/12 0.31 0.29 0.26 0.25 6.7 7.2 8.0 8.5 65.3% 1.36 (%=Rel to DS Index) Dividend Rate (E) 0.22 Dividend Yield 10.57 Dividend Cover 1.3 Div Last Fin Year 0.35 Last Div Paid YR (E) 0.35 Tax- G Pay Date 26/05/11 XD Date 23/05/11 (E) Total sales Pre-T ax Prof. Publ. EPS Cash EPS Mkt to Bk Val ROE (%) 5 0 2007 2008 2009 MEDIASET FTSE ITALIA ALL SHARE (PI) Industry Group - BRDEN Sector - MEDIA 2010 2011 12/08 12/09 12/10 4198M 3815M 4254M 693M 448M 600M 0.39 0.24 0.31 1.45 1.34 1.53 1.93 2.91 2.04 18.21 11.32 14.23 No. Shares in Issue 1181226(000s) Volume 4814.6(000s) Percentage of free float 60% Volatility 13 Beta 0.954 Correlation 0.662 Source: Thomson Reuters Datastream Trovare Serie storiche • Selezionare la scheda Equity 1. Simple Find - In Find Series scrivere il nome della società, il nome della serie etc. si apre così il datastream navigator Free text search: ricerca libera Advanced search: impostare parametri 2. Find * - In Find Series scrivere * +parte del nome della serie. 3. Possibilità applicare filtri per mercato, valuta, etc.. Stop filtering per annullare filtri. Chart of a single series - Bayer • 1. Per Bayer usare un Line chart per mostrare l’andamento del prezzo su tre anni. • 2. Selezionare Price and Price Relative chart per confrontare Bayer con l’indice DAX30 • 3. Cambiare l’indice con il MSCI Germany local currency index • 3’. Cambiare l’indice con il Dow Jones Euro Stoxx 50 index Chart of a single series - Bayer • parte 1- Line Chart del prezzo di Bayer • 1. Equity: selezionare Bayer già trovato con il filter • 2. Cartella Programmi: Chart of a single series / Line Chart • 3. Impostare il Time period = -3Y / Run Now esempio B: Chart of a single series - Bayer • parte 2 – Price Relative Chart: Relative to local index • 1. Selezionare l’output: Price and Price Relative Chart / Run esempio B: Chart of a single series - Bayer • parte 3 – Cambiare l’indice relativo: 1. Nel campo Settings / selezionare Default Index Selezionare: MSCI Country Index (Local) / OK / Run Now • parte 3’ – Price Relative Chart: Relative to Dow Jones Euro Stoxx 50 index 1. Nel campo Settings selezionare relative index Nel campo Find scrivere: *STOXX 50/OK / Run Now Cambiare la Data o il datatype – Mediaset • Mostra l’andamento del prezzo di Mediaset negli ultimi 5 anni. • Mostra il Price Earnings Ratio di Mediaset dal Gennaio 1 2001 Mediaset • parte 1 – • Selezionare Mediaset dal database Equity • Tra i programmi selezionare: Chart of a single series/ Line Chart • Impostare il Time period = -5Y Impostare la Currency = Local Currency • Nel campo Find = * Mediaset • Selezionare Mediaset / Run Now parte 2 – Configurare le Date • Mostrare Fixed & Relative Dates • Configurare le date: Start = Fixed 1/1/01 End = Relative 0 Day • Controllare Before Today parte 3 – Selezionare come tipo di dati (datatype) P/E Ratio • 1. Selezionare datatype • 2. Selezionare P/E ratio • Per vedere come è definito: clicca su icona “libro” • Nota bene: L’output del grafico ha una limitazione nella frequenza dei dati. I dati giornalieri posso essere graficati fino a due anni, quelli settimanali fino a 4 - 5 anni e così via. Grafico di medie mobili (Moving Average Chart) • Nel campo Chart of a single series è possibile selezionare 2 diversi Moving Average Charts. • 1. con parametri fissi: Moving Average Chart with fixed parameters (5 and 20 days) • 2. l’altro con parametri configurabili: Moving Average Chart - Configurable Esempio: Moving Average Chart – Configurable – Fiat • Mostrare il grafico delle medie mobili a 20 e 50 giorni per il prezzo di Fiat nell’ultimo anno. • 1. Digitare nel campo find di Equities Fiat e selezionarlo. • 2. Tra i Programmi: Chart of a single series/ Moving Average Chart – Configurable • 3. Impostare la Data: = -1Y Impostare il datatype = Price (Adjusted) • 4. Nel campo Settings: selezionare options e impostare le frequenze delle medie mobili • 5. OK /Run Now 8.50 FIAT FROM 7/ 1/11 TO 9/ 1/12 DAILY 8.00 7.50 7.00 6.50 6.00 5.50 5.00 4.50 4.00 3.50 3.00 JAN FEB MAR APR ACTUAL 20 DAY MOVING AVERAGE (M1) 50 DAY MOVING AVERAGE (M2) MAY JUN JUL AUG SEP OCT NOV DEC JAN Source: Thomson Reuters Datastream Favoriti – Salvare le richieste usate spesso • • • • usare l’opzione Favourites per registrare le richieste più usate. Per salvare Moving Average 20 day and 50 day nell’ esempio: Dopo Run Now selezionare Add Fav. In Favourites scrivere un nome a piacere (e.g. MAV 20 day & 50 day) Dare OK Programmi: Report on a single series • Comprende utili reports. • Selezionare Performance over 1, 3, and 12 months – ex: coca cola • 1. Equity = Coca Cola • 2. Scheda Programmi 3: Report on a single series / Performance over 1, 3 and 12 Months / Run Now • Fixed end date/today Scheda report • Overview of company performance • Dividend payment report • Capital issues and changes Titoli (Bonds) • Per trovare un bond: 1. In Find: scrivere il nome, il codice locale… 2. usare il Filter Esempio: Overview of Bond Performance – Germany Government 2003 4 3/4% 04/07/2034 • mostrare l’Overview of Bond Performance per il titolo Germany Government su 12 mesi. • Nel campo Bond • Scheda Programmi 1: Overview on a single series/ Overview of Bond Performance • Date = -1Y • 4. Usare il Filtro: • Market = Germany Borrower = Germany nell’advanced search: Coupon = 4 3/4% • 5. selezionare il Bond / Run Now Summary Information • Mostra tutte le informazioni disponibili sul bond. Grafici delle curve dei rendimenti dei titoli obbligazionari di stato • Advance permette anche di recuperare e visualizzare le curve dei rendimenti. Nella scheda Constituents sono memorizzate le liste per paese. Dopo la selezione della lista desiderata, è possibile visualizzarne i dati tramite un grafico utilizzando un programma apposito. • Nella scheda list of series-summary [Riepilogo elenco], Yield curve chart. • Il pulsante permette di impostare ulteriori opzioni, in modo da consentire la visualizzazione di curve riferite alla stessa data ma di anni precedenti. • Per visualizzare la stessa serie ma dell'anno precedente, selezionare la casella e usare l'orologio per impostare la data. • Si possono confrontare due serie sullo stesso grafico. 8 DATE OF CHART 9/ 1/12 7 6 5 4 3 2 1 0 0 5 10 15 ITGVT CURVE TO POWER 3 FRGVT CURVE TO POWER 3 X AXIS - LIFE Y AXIS - REDEMPTION YIELD 20 25 30 35 40 45 49 Source: Thomson Reuters Datastream 7. Indici • • • • Trovare un Indice selezionare il database equity Indices Aprire datastream navigator Exploring equity indices (non è disponibile per Equities, Bonds or Unit Trusts) • By market: Germany>Deutsche Borse>Dax esempio: l’indice DAX • 1. selezionare l’indice tedesco DAX e mostrare un grafico Line Chart del prezzo per l’ultimo anno. • Line chart of Price Index during last year • 1. selezionare output: Chart of a single series/ Line Chart • 2. Time Period = -1Y Datatype = Price Index / Run Now 8. Serie storiche di dati • In single series-data selezionare Time Series Data per fare il download dei valori di una singola serie tra due date ad una frequenza predefinita. • I dati possono essere scaricati e trasferiti in Excel. • Per molte serie storiche usare multiple series – time series data. • usare il tasto Add esempio: serie singola Time Series Data • richiedere I prezzi con frequenza mensile per il NASDAQ nel periodo dall’ 1/1/99 ad oggi. • Trasferire in Excel I risultati. • parte 1 – selezionare il programma e il database index • 1. Database Index \ Tra i Programmi single series-data / Time Series Data \ • 3. Time: Fixed =1/1/99, Relative = 0 Days datatype = Price Index Currency = US$ esempio: Time Series Data – NASDAQ Composite Index • parte 2 - Settings • Settings. Frequenza = Monthly / OK / Run Now • parte 3: Trasferire i dati in Excel • 1. Tools / Transfer / Excel • 2. selezionare options Trasferire come Refreshable object Trasferire a un foglio nuovo (New Sheet) per aprire Excel Metti i dati in (place data at): cella attiva (Active Cell) / OK 9. Constituent Lists • Constituent lists sono liste di azioni e titoli che possono essere scaricate. • esempio: Performance a tre mesi (Performance over 3 months) –FTSEMIB • parte 1 – Database Constituents • trovare FTSE MIB (LFTSEMIB) • parte 2 - mostrare la Performance su 3 mesi • 1. List of series- Summary / Performance ranked over 3 months • 2. datatype = Price (adjusted) / Run Now esercizio: Top 30 performers dei Constituents del FTSE 250 • selezionare i FTSE 250 constituents. mostrare un grafico a barre (bar chart) dei migliori 30 su 1 mese e 12 mesi. • parte 1: trovare la serie • 1. database Constituents • Name = *LFTSE250 / OK • parte 2: grafico • Summary – for a list of series / Bar Char: Top 30 Perf over 1 and 12 months Run Now 11. Progetti (projects) • I progetti sono un modo per richiamare report o grafici che sono usati spesso. Ogni richiesta viene automaticamente inserita nel progetto. • salvare un Progetto: • 1. File / save As 2. Note: La cartella di Default è “users”. L’estensione del file = .ADV Progetto • • • • • • • • • • • New Project Un nuovo progetto ha lo schermo di richiesta pulito 1. Aprire DSAdvance 2. New Project Open a Project Per aprire progetti salvati: File/ Open Update a Project Un progetto può essere aggiornato cliccando su refresh o prevedendo un Night Shift 1. Refresh Current request - aggiorna una singola richiesta 2. Refresh Project - aggiorna l’intero progetto 3. Tools/ Schedule Night Shift – aggiorna automaticamente il progetto ad una frequenza prestabilita o in un momento prestabilito. esempio: salvare il progetto e prevedere un night shift • salvare il progetto corrente. Schedulare il progetto in modo che sia aggiornato lo stesso giornoi fra 3 minuti con frequenza una volta sola. • parte 1 - salvare il progetto • 1. File / save as • 2. Scrivere il nome del File / salvare • parte 2 - Schedule Update • 1. Tools / Schedule Night Shift / Schedule Project • 2. Schedule For Future selezionare Date & Time [+3 minuti] Frequency = One Off (una volta sola) • 3. Browse../ selezionare il file da schedulare / Add + file to Schedule details / OK • Lasciare aperto Datastream Download in Excel • Richiesta di dati statici • I dati statici possono essere scaricati per un numero definito di serie e per un intervallo di tempo predefinito. I dati statici possono essere richiesti per: a) Serie singole • b) Elenchi di serie • a) Premere Settings [Impostazioni] per selezionare fino a 9 datatypes. • Il datatype NAME (riferito ad azioni, serie, ecc.) è il primo datatype di ciascuna richiesta. Successivamente, possono essere aggiunti altri 9 datatypes fino ad un totale di 10. Esempio: Dax 30 • • • • • • • • • Scaricare il peso nell’indice e l’EPS dei constituents del Dax 30 A) indice B) constituents Selezionare nel campo Find: Dax 30 NB Data for a single series \ static data scaricherebbe i dati per ciascuna serie!!!!! Scheda del programma 5. Selezionare Summary – for a list of series / Static Data – 900A [Riepilogo - Per elenco di serie > Dati statici - 900A]. Scegliere il formato data fissa, quindi inserire today. 3. Premere Settings [Impostazioni] . 4. Impostare DS Static Datatypes [Datatypes statici DS] come tipo di dati. Selezionare, Weight in Index, Earnings Per Share [ Peso nell'indice, utile per azione] come codice. Parte 3: trasferimento in Excel • 1. Selezionare Tools [Strumenti], Transfer [Trasferisci], quindi fare clic su Excel. • Per effettuare il trasferimento in Excel, è possibile anche fare clic con il pulsante destro del mouse su Transfer [Trasferisci] e scegliere Excel. Viene aperto un nuovo foglio di lavoro in Excel. • 2. Impostazioni per il trasferimento Nel campo Data from viewport [Dati da visualizzare], selezionare Without creating dynamic link [Senza collegamenti dinamici].Vengono trasferiti solo i dati. Se selezionata, As Refreshable object [crea un collegamento dinamico per l'aggiornamento dati – Selezionare la posizione in cui inserire i dati in Excel. • 3. Modificare il formato in Excel in base alle proprie esigenze. Dati di serie storiche • Selezionare la frequenza di elaborazione dei dati. È possibile scegliere di elaborare i dati giornalmente (impostazione predefinita), settimanalmente, mensilmente, trimestralmente o annualmente. • Esempio G: dati di una serie temporale – Produttori auto europei • 1. Scaricare il PE dei produttori di auto europei elencati di seguito. Impostare la data di fine mese partendo dal gennaio 1990: BMW, Renault, Fiat,Volkswagen. 2. Trasferire i dati in Excel sotto forma di oggetto aggiornabile. selezione del programma e configurazione delle opzioni • 1. Banca dati equities Selezionare Multiple series – time series data. 2. Impostare la frequenza premendo Settings [Impostazioni]. Scegliere Monthly [Mensilmente]. Quindi, impostare le opzioni di visualizzazione. • 3. Impostare Fixed 31-12-90 [Fissa - 31-12-90] come data di inizio e Relative [Relativa] Before today [Relativa > Prima di oggi] come data finale. • 4. Impostare DS Time Series Datatypes [datatypes di serie temporali DS], Price earnings ratio come tipo di dati, quindi fare clic su OK. Parte 2: selezione delle azioni, aggiunta alla richiesta • 1. Selezionare il tipo di azioni desiderate. • 2. Cancellare l'elenco delle richieste . • 3. Selezionare Add New Entries Here [Aggiungi nuove voci in questo punto], quindi scegliere Add to list of requests [Aggiungi ad elenco richieste] . Ripetere l'operazione per tutte le azioni. Per scaricare i dati di una serie • BANCA DATI EQUITY • Scheda Programmi: single series/ static data (in settings posso selezionare più datatypes) • Scheda Programmi: single series/ time series data (un solo datatype) • Scheda Programmi: Multiple series/ time series data ( posso selezionare più serie ex: Mediaset e Fiat e più datatypes) Per scaricare i dati di una lista • BANCA DATI CONSTITUENT LISTS: usare list of series - summary • Se uso: Single series data / time series data MA li scarica tutti in sequenza!!! ALCUNI CONSIGLI PER UTILIZZARE MEGLIO EXCEL • • • • • • • • Inserimento e copia rapida Celle multiriga Funzione testo Aggiornamento titoli grafico Lettere greche Apici e pedici Attribuire un nome alle celle Nascondere il contenuto delle celle MACRO • Strumenti\Macro • Una macro è una subroutine in VBA creata dall’utente, utilizzata per automatizzare operazioni ripetitive in Excel. • Registra nuova macro: scelta rapida da tastiera. Eseguire una macro utilizzando un pulsante di una barra degli strumenti Visualizza \ barre degli strumenti \personalizza scegliere la scheda Comandi, quindi selezionare Macro dall'elenco Categorie. Nell'elenco Comandi trascinare il pulsante Personalizzato su una barra degli strumenti Fare clic con il pulsante destro del mouse sul pulsante della barra degli strumenti, quindi scegliere Assegna macro dal menu di scelta rapida. Nella casella Nome macro immettere il nome della macro. • NB il pulsante esegue la macro sulla cella attiva!!! Scelta rapida da tastiera • ALT + lettera sottolineata +lettera sottomenu • ES: inserisci funzione ALTiz • Barra degli strumenti \ personalizza \ & prima della lettera di riferimento Capitolo 1: alcuni principi fondamentali della finanza • • • • Regimi di capitalizzazione e di sconto Rendite Ammortamenti Criteri di scelta tra investimenti: TIR e REA VAN = Valore Attuale Netto N VAN t 1 FCt (1 r ) t La funzione VAN calcola il valore attuale netto di un investimento utilizzando un tasso di sconto e una serie di pagamenti (valori negativi) e di entrate (valori positivi), ma trascura il costo iniziale. • VAN(tasso_int,valore1,valore2, ...) • Tasso_int è il tasso di sconto durante uno dei periodi. VAN • Valore1, valore2, ... sono gli argomenti da 1 a 29 che rappresentano i pagamenti o le entrate. • Valore1, valore2, ... devono essere collocati a distanze di tempo regolari e al termine di ogni periodo. • VAN utilizza utilizza l'ordine di successione di valore1, valore2, ... dei valori per interpretare l'ordine di successione dei flussi di cassa. Assicurarsi di immettere i valori relativi alle entrate e alle uscite nella sequenza desiderata. VAN • VAN è il valore attuale e non il valore attuale netto!!!! • Per avere il valore attuale netto occorre sottrarre il flusso al tempo 0. VAN • Osservazioni • Le rate sono supposte posticipate. Se il primo flusso di cassa si verifica all'inizio del primo periodo occorre aggiungere il primo valore al risultato VAN. VAN e TIR.COST • La funzione VAN è correlata alla funzione TIR.COST (tasso di rendimento interno). TIR.COST rappresenta il tasso in base al quale la funzione VAN è uguale a zero: VAN(TIR.COST(...); ...) = 0. TIR.COST • Restituisce il tasso di rendimento interno per una serie di flussi di cassa rappresentati dai numeri in val. Non è necessario che i flussi di cassa siano costanti, come per un'annualità, però devono occorrere a intervalli regolari, ad esempio mensilmente o annualmente. Il tasso di rendimento interno è il tasso di interesse ricevuto per un investimento caratterizzato da uscite (valori negativi) ed entrate (valori positivi) che avvengono ad intervalli regolari. TIR.COST • TIR.COST(val;ipotesi) • Val è una matrice o un riferimento a celle che contengono numeri di cui si desidera calcolare il tasso di rendimento interno. • Val deve contenere almeno un valore positivo e uno negativo per calcolare il tasso di rendimento interno. TIR.COST • TIR.COST utilizza l'ordine di successione dei valori per interpretare l'ordine di successione dei flussi di cassa. Assicurarsi di immettere i valori relativi alle entrate e alle uscite nella sequenza desiderata. Ipotesi è un numero che si suppone vicino al risultato di TIR.COST. TIR.COST • Viene utilizzata una tecnica iterativa per eseguire il calcolo della funzione TIR.COST. Iniziando con ipotesi, TIR.COST applica il metodo delle iterazioni fino a quando la precisione del risultato non rientra nello 0,00001%. Se TIR.COST non riesce a trovare un risultato valido dopo 20 tentativi, verrà restituito il valore di errore #NUM!. • Se ipotesi è omesso, verrà considerato uguale a 0,1 (10%). Cap. 27 Tabelle dati • Servono per fare analisi di sensitività. • Possono ad esempio descrivere l’andamento di una funzione al variare di uno o due parametri. • Esempio base • Dati \ tabella • Cella input per riga (se la veriabile che vogliamo modificare si trova sulla riga) • Cella input per colonna • Aggiornamento automatico RATA 1 (1 i) n VA RATA i Calcola la Rata di un prestito sulla base di pagamenti e di un tasso di interesse costanti. • RATA(tasso_int; periodi; val_attuale; val_futuro; tipo) • Tasso_int è il tasso di interesse per il prestito. • Periodi è il numero totale dei pagamenti per il prestito. RATA • Val_attuale è il valore attuale o la somma forfettaria che rappresenta il valore attuale di una serie di pagamenti futuri, detto anche capitale. • Val_futuro è il valore futuro o il saldo in contanti che si desidera raggiungere dopo aver effettuato l'ultimo pagamento. Se val_futuro è omesso, verrà considerato uguale a 0, ovvero il valore futuro di un prestito è pari a 0. RATA • Tipo corrisponde a 0 o a 1 e indica le scadenze dei pagamenti. • 0 o omesso Alla fine del periodo • 1 All'inizio del periodo VAL.FUT (1 i ) n 1 VAL.FUT RATA i Restituisce il valore futuro di un investimento sulla base di pagamenti periodici e costanti e di un tasso di interesse costante. • VAL.FUT(tasso_int; periodi; pagam; val_attuale; tipo) • Tasso_int è il tasso di interesse per periodo. • Periodi è il numero totale dei periodi di pagamento VAL.FUT • Pagam è il pagamento effettuato in ciascun periodo (LA RATA) e non può variare nel corso dell'annualità. In genere, pagam include il capitale e gli interessi, ma non altre imposte o spese. Se pagam viene omesso, si deve includere l'argomento val_attuale. • Val_attuale è il valore attuale o la somma forfettaria che rappresenta il valore attuale di una serie di pagamenti futuri. Se val_attuale è omesso, verrà considerato uguale a 0 (zero) e si dovrà includere l'argomento pagam. Viene capitalizzato per numero periodi. VAL.FUT • Tipo corrisponde a 0 o a 1 e indica le scadenze dei pagamenti. Se tipo è omesso, verrà considerato uguale a 0. • 0 Alla fine del periodo • 1 All'inizio del periodo CAPITALIZZAZIONE CONTINUA n lim n 1 e n VA = Valore Attuale di una rendita 1 (1 i) n VA RATA i VA(tasso_int;periodi;pagam;val_futuro;tipo) Tasso_int è il tasso di interesse per periodo. Se ad esempio si ottiene un prestito per l'acquisto di un'automobile a un tasso di interesse annuo del 10% e si effettuano pagamenti mensili, il tasso di interesse mensile sarà 10%/12 o 0.83%. Nella formula sarà possibile immettere 10%/12, 0.83% o 0.0083 come tasso. VA Periodi è il numero totale dei periodi di pagamento in un'annualità. Se ad esempio si ottiene un prestito quadriennale per l'acquisto di un'automobile e si effettuano pagamenti mensili, il prestito comprende 4*12 (o 48) periodi. Nella formula sarà possibile immettere 48 per periodi. VA Pagam è il pagamento effettuato in ciascun periodo e non può variare nel corso dell'annualità. In genere, pagam include il capitale e gli interessi, ma non altre imposte o spese. Pagam è un valore negativo Se si omette pagam, sarà necessario includere l'argomento val_futuro. VA Val_futuro è il valore futuro o il saldo in contanti che si desidera raggiungere dopo aver effettuato l'ultimo pagamento. Se val_futuro è omesso, verrà considerato uguale a 0. Ciò può essere utile nel caso di un prestito, il cui valore futuro è uguale a 0. Se si omette val_futuro, sarà necessario includere l'argomento pagam. VA Tipo corrisponde a 0 o a 1 e indica le scadenze dei pagamenti. DURATION • Misura la sensibilità del prezzo di una obbligazione alle variazioni del tasso di interesse. • Misura di rischio. • Duration di Macauley (con struttura dei tassi piatta) n D t 1 Ct t ( 1 r ) t P DURATA • DURATA(liquid;scad;cedola;rend;num_rate;base) • Importante: Le date devono essere immesse utilizzando la funzione DATA • Liquid è la data di liquidazione del titolo, ovvero la data, successiva alla data di emissione, in cui il titolo viene venduto al compratore. • Scad è la data di scadenza del titolo, ovvero la data in cui il titolo scade. • Cedola è il tasso di interesse nominale annuo del titolo. DURATA • Rend è il rendimento annuo del titolo. • Num_rate è il numero di pagamenti per anno. Se i pagamenti sono annuali, num_rate = 1; se sono semestrali, num_rate = 2; se sono trimestrali, num_rate = 4. • Base è il tipo di base da utilizzare per il conto dei giorni: • 0 o omesso Americana - NASD (Associazione nazionale operatori di borsa, National Association of Securities Dealers) 30/360 • 1 Effettiva/effettiva • 2 Effettiva/360 • 3 Effettiva/365 • 4 Europea 30/360 • In Microsoft Excel le date vengono memorizzate come numeri sequenziali seriali affinché sia possibile eseguire calcoli su di esse. Se la cartella di lavoro si basa sul sistema di data 1900, 1 gennaio 1900 viene memorizzato come numero seriale 1. Se invece la cartella di lavoro si basa sul sistema di data 1904, 1 gennaio 1904 viene memorizzato come numero seriale 0 (2 gennaio 1904 sarà il numero seriale 1). Nel sistema di data 1900, ad esempio, 1 gennaio 1998 viene memorizzato come numero seriale 35796 poiché cade 35.795 giorni dopo il 1 gennaio 1900. Duration modificata Il prezzo di una obbligazione: Deriviamo: Otteniamo: DM è la duration modificata n Ct P t ( 1 r ) t 1 dP n tCt dr t 1 (1 r )t 1 dP DP dr (1 r ) dP DM P dr Duration modificata Elasticità del prezzo dell’ obbligazione: Volatilità del prezzo: dP / P D dr /(1 r ) dr dP / P D (1 r ) DURATA.M • DURATA.M(liquid;scad;cedola;rend;num_rate;base) • Liquid è la data di liquidazione del titolo, ovvero la data, successiva alla data di emissione, in cui il titolo viene venduto al compratore. • Scad è la data di scadenza del titolo, ovvero la data in cui il titolo scade. • Cedola è il tasso di interesse nominale annuo del titolo. • Rend è il rendimento annuo del titolo. • Num_rate è il numero di pagamenti per anno. Se i pagamenti sono annuali, num_rate = 1; se sono semestrali, num_rate = 2; se sono trimestrali, num_rate = 4. • Base è il tipo di base da utilizzare per il conto dei giorni. VAN.X • Restituisce il tasso di rendimento interno di un impiego di flussi di cassa. Per calcolare il valore attuale netto di una serie di flussi di cassa periodici, utilizzare la funzione VAN. • VAN.X(tasso_int,val,date_pagam) • Tasso_int è il tasso di sconto da applicare ai flussi di cassa. VAN.X • Valori è una serie di flussi di cassa che corrispondono alle scadenze di pagamento. Se il primo valore è un costo o un pagamento, dovrà essere un valore negativo. Il primo pagamento è facoltativo e corrisponde al costo o al pagamento che avviene all'inizio dell'investimento. Tutti i pagamenti successivi sono scontati su una base annua di 365 giorni. VAN.X • Date_pagam sono le scadenze di pagamento che corrispondono ai pagamenti dei flussi di cassa. L'inizio delle scadenze di pagamento è indicato dalla data del primo pagamento. Tutte le altre date devono essere posteriori, ma non è necessario che seguano un ordine particolare. TIR.X • TIR.X(valori;date_pagam;ipotesi) • Valori è una serie di flussi di cassa che corrispondono alle scadenze di pagamento. Se il primo valore è un costo o un pagamento, dovrà essere un valore negativo. Il primo pagamento è facoltativo e corrisponde al costo o al pagamento che avviene all'inizio dell'investimento. Tutti i pagamenti successivi sono scontati su una base annua di 365 giorni. È necessario che la serie di valori contenga almeno un valore positivo e uno negativo. TIR.X • Date_pagam sono le scadenze di pagamento che corrispondono ai pagamenti dei flussi di cassa. L'inizio delle scadenze di pagamento è indicato dalla data del primo pagamento. Tutte le altre date devono essere posteriori, ma non è necessario che seguano un ordine particolare. • Ipotesi è un numero che si suppone vicino al risultato di TIR.X. • La funzione TIR.X è strettamente correlata a VAN.X, la funzione che calcola il valore attuale netto. Il tasso di rendimento calcolato da TIR.X è il tasso di interesse corrispondente a VAN.X = 0. IMMUNIZZAZIONE • Se un portafoglio ha lo stesso valore ad una data futura indipendentemente da possibili cambiamenti nella struttura dei tassi esso viene detto immunizzato. • Valore attuale delle Uscite: V0 • Valore attuale delle Entrate: VB IMMUNIZZAZIONE • I due flussi di cassa si dicono immunizzati se hanno la stessa duration (tenendo in considerazione solo una approssimazione del primo ordine). La teoria di portafoglio: • Funzioni matrice. • Passare dalla serie storica dei prezzi ai rendimenti: Pt rt ln Pt 1 • Calcolare il rendimento medio, la varianza, usando le funzioni di Excel: MEDIA, VAR.POP, DEV.ST.POP, VAR, DEV.ST COVARIANZA • Rappresenta una misura della propensione dei rendimenti di due attività a muoversi insieme. 1 Cov(ra , rb ) M t t [ r E ( r )][ r a a b E ( rb )] t • T=1,…M • COVARIANZA(Matrice1;Matrice2) CORRELAZIONE • E’compreso tra –1 e 1. • Correlazione(Matrice1;Matrice2) a ,b Cov(ra , rb ) R2 a b • Aggiungi linea di tendenza PORTAFOGLIO • MEDIA: E (rP ) E (ra ) (1 ) E (rb ) • VARIANZA: p2 2 a2 (1 )2 b2 2 (1 ) a,b a b L’insieme dei portafogli ammissibili con due titoli • Esaminiamo il caso di correlazione = -1, 0, 1 Rendimento medio Portafoglio Rendimenti Portafoglio e Correlazione tra le attività 5,50% 5,00% 4,50% corr = +1 4,00% corr = 0 3,50% corr = -1 3,00% 2,50% 2,00% 0,00% 1,00% 2,00% 3,00% 4,00% 5,00% Sigma Portafoglio 6,00% 7,00% 8,00% Media e varianza di un portafoglio con più titoli • Media: n E (rP ) i E (ri ) T E (r ) i 1 2 T S • Varianza: p i j ij i j S = matrice varianze-covarianze • Covarianza portafoglio 1 e 2: Cov(1,2) S2 T 1 Matrice varianze-covarianze • Costruire la matrice dei rendimenti addizionali: N = titoli r11 r 1 . . . r1n r n M = n. osservazioni . A . . r r 1 m1 • La matrice var-cov: . . . . . . AT A S [ i , j ] M . . rmn r n Cap. 9 La determinazione dei portafogli efficienti in assenza di vendite allo scoperto Rendimento medio portafoglio PORTAFOGLI FATTIBILI 11% 10% 9% 8% 7% 6% Efficiente e envelope Portafoglio NON fattibile Fattibili, ma NON efficienti 5% 4% Envelope , ma NON efficiente 10% 30% 50% 70% Deviazione standard portafoglio 90% Il calcolo di due portafogli sulla envelope • E’ sufficiente trovare due portafogli sulla envelope per identificare l’intera envelope. • Tutti i portafogli sulla envelope sono dati da: • R–c=S*z • R = vettore E(Ri) • c = costante arbitraria • S = matrice varianza covarianze • z = vettore componenti Il calcolo di due portafogli sulla envelope • x = vettore componenti normalizzate zi xi zi i • Scegliendo due valori differenti per c, risolviamo per z e troviamo due vettori x corrispondenti a due portafogli sulla envelope. • z = S-1 * ( R – c ) • Calcoliamo le corrispondenti proporzioni normalizzate xi Il calcolo della envelope • Calcoliamo media e sqm dei due portafogli ottenuti. • Costruiamo un nuovo portafoglio con pesi e 1- nei due portafogli sulla envelope. • Creiamo una tabella dati al variare di della media e dello sqm del portafoglio • Facciamo il grafico di tipo “dispersione” La Envelope 11% Media 10% w 9% y z 8% 7% x 6% q 5% 10% 20% 30% 40% 50% Sigma 60% 70% 80% 90% Il calcolo del portafoglio di mercato: quello per cui c = tasso risk free La Frontiera Efficiente con la RMC Rendimento medio portafoglio Retta del mercato dei capitali, RMC Portafoglio di mercato, M Tasso privo di rischio, rf Deviazione standard portafoglio Test del CAPM • Dato un insieme di attività finanziarie (tra cui il portafoglio di mercato), calcolare i rendimenti. • Calcolare la media dei rendimenti ed il beta di ciascuna attività. • Regredire le medie sui beta: • E(Ri)=rf+bi(E(RM)-rf) • Si trovano così le quantità in grassetto, che sommate devono essere uguali al rendimento atteso del portafoglio di mercato. Funzioni statistiche • INTERCETTA(y_nota;x_nota) Calcola il punto in cui una retta inteseca l'asse y utilizzando i valori x e y esistenti. Tale punto è basato su una retta di regressione lineare ottimale tracciata attraverso i valori x_nota e y_nota. • PENDENZA(y_nota;x_nota) Restituisce la pendenza della retta di regressione lineare tramite i valori in y_nota e x_nota. • RQ(y_nota;x_nota) Restituisce il quadrato del coefficiente r della retta di regressione lineare tramite i valori in y_nota e x_nota. VaR • Il VaR è la perdita che ci si aspetta venga ecceduta con una probabilità del x% su un periodo di T giorni • T = orizzonte temporale • x% = probabilità • y = quantile = P(Yy) = x% Il quantile corrispondente all’1% è 50,20974, quindi il VaR all’1% è 49,79026 Distribuzione del valore del portafoglio Distribuzione Normale Cumulata (rappresentazione parziale per poter vedere il quantile corrispondente all'1%) 0,014 0,012 0,01 0,008 0,006 0,004 0,002 0 0,03 0,025 0,02 Probabilità Probabilità Distribuzione di Probabilità Normale Funzione di Densità 0 30 60 90 120 150 180 210 240 270 0,015 0,01 0,005 0 -40 -20 0 20 40 60 Valori del Portafoglio Valore del portafoglio (milioni di $) 80 Funzione Distrib.norm • • • • DISTRIB.NORM(x;media;dev_standard;cumulativo) X è il valore per il quale si desidera la distribuzione. Media è la media aritmetica della distribuzione. Dev_standard è la deviazione standard della distribuzione. • Cumulativo è un valore logico che determina la forma assunta dalla funzione. Se cumulativo è VERO, DISTRIB.NORM restituirà la funzione di distribuzione cumulativa, se è FALSO restituirà la funzione massa di probabilità. INV.NORM • Restituisce l'inversa della distribuzione normale cumulativa per la media e la deviazione standard specificate. • INV.NORM(probabilità;media;dev_standard) • Probabilità è la probabilità corrispondente alla distribuzione normale. • Media è la media aritmetica della distribuzione. • Dev_standard è la deviazione standard della distribuzione VaR di un portafoglio • Se disponiamo delle medie e della matrice var-cov per le attività in portafoglio, possiamo calcolare media e varianza del portafoglio. • Assumendo che i rendimenti delle attività siano distribuiti normalmente, possiamo calcolare il VaR del portafoglio. Simulazione dei dati: il bootstrapping • Senza imporre nessuna restrizione sulla distribuzione di probabilità dei rendimenti. • Si supponga di disporre delle serie storiche relative alle attività in portafoglio. • Il bootstrapping è una tecnica di “rimpasto” casuale dei dati: per ogni iterazione le serie storiche vengono riordinate e viene calcolato il rendimento di portafoglio. CASUALE • Restituisce un numero casuale distribuito in maniera uniforme maggiore o uguale a 0 e minore di 1. Ogni volta che si calcola un nuovo foglio di lavoro viene restituito un nuovo numero casuale. • Sintassi: CASUALE( ) CASUALE.TRA • Sintassi: CASUALE.TRA(minore, maggiore) • Minore è l'intero più piccolo restituito da CASUALE.TRA. • Maggiore è l'intero più grande restituito da CASUALE.TRA. Valutazione opzioni Europee: • Formula per valutazione Call Europea su albero binomiale: n i n i i n i q ( 1 q ) max Su d X ,0 i i 0 • Put Europea: n n i n i i n i q ( 1 q ) max X Su d ,0 i i 0 n Call Europea Function EurCall(S, X, T, rf, sigma, n) delta_t = T / n up = Exp(sigma * Sqr(delta_t)) down = Exp(-sigma * Sqr(delta_t)) R = Exp(rf * delta_t) q_up = (R - down) / (R * (up - down)) q_down = 1 / R - q_up EurCall = 0 For Index = 0 To n EurCall = EurCall + Application.Combin(n, Index) * q_up ^ Index * _ q_down ^ (n - Index) * Application.Max(S * up ^ Index * down ^ _ (n - Index) - X, 0) Next Index End Function Valutazione opzioni Americane • Procedimento backward • Ad ogni nodo il valore dell’opzione è pari al massimo tra: Il payoff se esercitata Il valore attuale atteso sotto la probabilità risk-neutral dei payoff nei due nodi collegati al tempo successivo Call Americana Function AmericanCall(S, X, T, rf, sigma, n) delta_t = T / n up = Exp(sigma * Sqr(delta_t)) down = Exp(-sigma * Sqr(delta_t)) R = Exp(rf * delta_t) q_up = (R - down) / (R * (up - down)) q_down = 1 / R - q_up Dim OptionReturnEnd() As Double Dim OptionReturnMiddle() As Double ReDim OptionReturnEnd(n) Dichiarazione variabili ed assegnazione valori For State = 0 To n OptionReturnEnd(State) = Application.Max(S * _ up ^ State * down ^ (n - State) - X, 0) Next State Assegnazion e valori ai nodi finali Call Americana (continua) Ciclo che sconta i payoff fino al tempo 0 ReDim OptionReturnMiddle(Index) Assegna For State = 0 To Index OptionReturnMiddle(State) = Application.Max(S * _ dimensione e valori al up ^ State * down ^ (Index - State) - X, _ vettore dei q_down * OptionReturnEnd(State) + _ nodi centrali For Index = n - 1 To 0 Step -1 q_up * OptionReturnEnd(State + 1)) Next State ReDim OptionReturnEnd(Index) For State = 0 To Index OptionReturnEnd(State) = OptionReturnMiddle(State) Next State Next Index AmericanCall = OptionReturnMiddle(0) End Function Assegna dimensione e valori al vettore dei nodi finali uguali a quelli del vettore dei nodi centrali Proprietà opzioni Call E Put E Call A Put A S + - + - X - + - + T ? ? + + sigma + + + + R + - + - Div - + - + La Distribuzione Lognormale • Assunzione centrale del modello di Black & Scholes • Proprietà ragionevoli dei prezzi delle azioni • Esaminiamo i prezzi ed i rendimenti dell’S&P500 • Usiamo la funzione matrice FREQUENZA(matr dati;matr classi) per i rendimenti e notiamo che si distribuiscono normalmente. La Distribuzione Lognormale • St+Dt=SterDt • Assumiamo che il tasso di rendimento abbia una distribuzione normale, allora il prezzo dell’azione ha una distribuzione lognormale • St+Dt=Ste(mDt+Zradq(Dt)) • Estraiamo una serie di numeri casuali da una distribuzione normale standard ed usiamo l’equazione precedente per simulare il sentiero di prezzo dell’azione Generazione numeri casuali • Strumenti / Analisi dati / generazione numero casuale • Stimiamo il valore dell’azione a fine anno utilizzando la serie di numeri casuali • Usiamo la funzione frequenza e facciamo un istogramma che illustra la forma della distribuzione lognormale Simulazione in VBA • • • • • • • • Sub simula() Dim vettore(1 To 1000) As Double For i = 1 To 1000 z = Application.NormSInv(Rnd) vettore(i) = z Cells(i, 1).Value = vettore(i) Next i End Sub Black & Scholes • Call Europea: C SN (d1 ) Xe rT N (d 2 ) ln( S / X ) (r 2 / 2)T d1 T d 2 d1 T rT P SN ( d ) Xe N ( d 2 ) • Put Europea: 1 rT P S C Xe • Put Call Parity: Black & Scholes Function dOne(Azione, Esercizio, Scadenza, Interesse, sigma) dOne = (Log(Azione / Esercizio) + Interesse * Scadenza) / (sigma * Sqr(Scadenza)) _ + 0.5 * sigma * Sqr(Scadenza) End Function Function BSCall(Azione, Esercizio, Scadenza, Interesse, sigma) BSCall = Azione * Application.NormSDist(dOne(Azione, Esercizio, _ Scadenza, Interesse, sigma)) - Esercizio * Exp(-Scadenza * Interesse) * _ Application.NormSDist(dOne(Azione, Esercizio, Scadenza, Interesse, sigma) _ - sigma * Sqr(Scadenza)) End Function Black & Scholes 'Questo è il prezzo dell'opzione put B&S secondo la parità put-call Function BSPut(Azione, Esercizio, Scadenza, Interesse, sigma) BSPut = BSCall(Azione, Esercizio, Scadenza, Interesse, sigma) + _ Esercizio * Exp(-Scadenza * Interesse) - Azione End Function Volatilità implicita Function CallVolatility(Azione, Esercizio, Scadenza, Interesse, Obiettivo) High = 1 Low = 0 Do While (High - Low) > 0.0001 If CallOption(Azione, Esercizio, Scadenza, Interesse, (High + Low) / 2) > _ Obiettivo Then High = (High + Low) / 2 Else: Low = (High + Low) / 2 End If Loop CallVolatility = (High + Low) / 2 End Function Risolutore • Componenti aggiuntivi • Strumenti\Riferimenti\Solver.xla • Solveradd ( cellRef, relation, formulaText) Relation: 1 <= 2 = 3 >= • SolverOk (SetCell, MaxMinVal, ValueOf, ByChange) Value of: 1 max 2 min 3 al valore di • SolverOptions • SolverSolve