LEGO LE MIBO 022 – RISOLUZIONE DELL’ESERCIZIO SULLE GRECHE

rubrica: 

Dicevamo che per trovare il delta di una Opzione o di un portafoglio di più Opzioni bisogna conoscere come prima cosa la Volatilità Implicita.

Quest’ultima è alta quando il mercato è in tensione, bassa quando tutto appare tranquillo.

Chi muove la volatilità implicita è CHI fa il mercato, ossia i Market Maker che hanno in mano il vero e proprio strumento per intervenire sui prezzi … giusto il paragone con la manetta del tram.

Riprendiamo il problema con questa immagine del 7 giugno scorso (incredibile! proprio come adesso in cui scrivo: 15 giugno ore 10,17 – Indice = 25721):

Ho preso il sottostante Ftsemib delle 16,24 di lunedì 7 giugno: 25772

Ho contato i giorni alla scadenza di settembre (102). Le feste e i sabati VANNO CONTATI anch’essi.

Ho scelto lo strike 25.000

Ho preso il prezzo come semi-somma denaro-lettera del book dei prezzi della call settembre 25000 (1355 vs 1371 = 1363).

 

Adesso però dobbiamo vedere un problemino che riguarda l’analisi matematica ma che qui aggireremo tramite la nota ‘ricerca dicotomica’.

Se volete ripassare l’argomento vi lascio un link di circa 10 anni fa:

http://www.francescocaranti.net/calcolo-delle-probabilità-la-ricerca-dicotomica

Vediamo il codice VBA:

'-----------------------------------------------------------------------------------------------------------------

Function VolaCall(Sottostante, Strike, Tempo, Interessi, Target, Dividendi)

High = 5

Low = 0

Do While (High - Low) > 0.0001

If CallOption(Sottostante, Strike, Tempo, Interessi, (High + Low) / 2, Dividendi) > Target Then

High = (High + Low) / 2

Else: Low = (High + Low) / 2

End If

Loop

VolaCall = (High + Low) / 2

End Function

‘----------------------------------------------------------------------------------------------------------------

Un po' di note:

  • Lo script inizia col termine fisso ‘Function’.

Una Function è una specie di parente delle ‘Macro’ che, diversamente, iniziano col termine Sub.

Tanto per parlare con semplicità, il nostro Excel ha già un proprio elenco di Funzioni precaricate (appunto: Functions) ma tra queste, per quanto tantissime, non figurano le funzioni di Borsa quindi le inseriremo noi da qualche parte in modo che siano attive quando ci serviranno

  • Quindi: Function spazio Nome della Funzione aperta tonda parametri tra virgolette chiusa tonda

           Ecco come: Function VolaCall(Sottostante, Strike, Tempo, Interessi, Target, Dividendi)

  • Per il resto inizia la ricerca dicotomica tramite un ‘Loop’ che si arresterà quando sarà soddisfatta la richiesta
  • Il prezzo l’ho chiamato Target perché è questo il valore in cui la ricerca si dovrà fermare

In pratica: caro Excel, io ti fornisco: sottostante, strike, giorni alla scadenza, Interessi, Prezzo del target, dividendi.

Poi ti dico di partire tra gli estremi 5 (High) e 0 (Low) incrementando di 0,0001 alla volta.

Il prezzo da calcolare all’interno del ciclo viene da una seconda funzione (in viola la CallOption che vediamo subito):

'-----------------------------------------------------------------------------------------------------------------

Function CallOption(Sottostante, Strike, Tempo, Interessi, VolaImpl, Dividendi)

CallOption = Exp(-Dividendi * Tempo) * Sottostante * Application.NormSDist(dUno(Sottostante, Strike, Tempo, Interessi, VolaImpl, Dividendi)) - Strike * Exp(-Interessi * Tempo) * Application.NormSDist(dUno(Sottostante, Strike, Tempo, Interessi, VolaImpl, Dividendi) - VolaImpl * Sqr(Tempo))

End Function

'-----------------------------------------------------------------------------------------------------------------

Ottimo: anche se, accipicchia, abbiamo a che fare con un’altra Funzione ancora, che i testi sacri chiamano dUno e che quindi siamo costretti ad esplicitare in verde:

‘----------------------------------------------------------------------------------------------------------------

Function dUno(Sottostante, Strike, Tempo, Interessi, VolaImpl, Dividendi)

dUno = (Log(Sottostante / Strike) + (Interessi - Dividendi + 0.5 * VolaImpl ^ 2) * Tempo) / (VolaImpl * (Sqr(Tempo)))

End Function

‘----------------------------------------------------------------------------------------------------------------

Morale, e vi lascio un po' per digerire questa cosetta un po' complicata di oggi:

  • Per trovare il Delta mi serve la Volatilità Implicita di quel preciso istante
  • Per ottenerla utilizzo la ricerca dicotomica, cioè la trovo tramite approssimazioni successive
  • Ho inoltre bisogno della funzione CallOption che a sua volta necessita della dUno

Bene! La prossima volta vedremo come e dove riuscire ad incastrare queste Funzioni all’interno dell’interprete di Excel.

Buon lavoro e buon studio.

Francesco Caranti