Opzioni MIBO - OPT71 – Opzioni sintetiche – Creare una macro di Excel per storicizzare il DDE
Prima di continuare con lo studio sul doppio hedging di Opzioni e Future, oggi vorrei che ci prendessimo una sosta di tipo informatico. Vediamo cioè come si possa fare a realizzare un archivio storico di un portafoglio excel.
La premessa da fare è che quando si imposta una strategia che dura nel tempo <per esempio la nostra combinazione n.4 di banca (a) e di banca (b)> diventa fondamentale controllarla passo-passo, anche più volte al giorno, in modo da seguirne la sorte per poi decidere di lasciarla correre oppure di chiuderla nella malaugurata ipotesi che risulti in perdita.
Non solo: non so a voi, ma per quanto io abbia creduto di avere capito alla perfezione il comportamento dei prezzi delle Opzioni, dopo diversi anni di studio e di osservazione dei movimenti dell’Indice, del tempo e della volatilità, ancora mi ritrovo a fare errori clamorosi su questa o quella MIBO. Per questo non mi dò pace e ancora mi esercito molto spesso facendomi dei test di questo tipo: call marzo 2012 (ovvero 10 mesi alla scadenza) strike 24000 quanto vale? Vale più o meno di 500 punti Indice?
Forse sono io ad essere il caprone di turno oppure il fatto è che per quanto ci si sforzi all’infinito, questi benedetti prezzi sono sempre un rebus incomprensibile. Pazienza! Tant’è.
Non solo, ma ci si può immaginare cosa ci può capitare quando le Opzioni in gioco sono più di una e nella struttura compaiono anche dei Future! Figurati!
Allora non resta altro da fare che crearsi un foglio Excel con i prezzi di carico e con quelli spot, cioè quelli istantanei di mercato.
Chi di noi sarà riuscito a fare un collegamento DDE con la piattaforma di trading on line (QuickTrade di IWBank per esempio) sarà facilitato perché vedrà il proprio gain / loss in diretta sul totalizzatore, diversamente occorrerà armarsi di santa pazienza e digitare a mano i prezzi uno alla volta.
Se poi volessimo salvare i risultati per farne un prezioso ‘storico’ la possibilità è quella del copia-incolla, un sistema banale ma altrettanto noioso e ben poco raffinato.
L’ideale è dunque costruire una macro Excel da attivare tramite un “bottone”; a questo punto basterà fare un semplice click e sarà il programma a trasferire i risultati su un nuovo foglio creato ad hoc.
Partiamo dall’Excel del nostro portafoglio dove in basso al centro abbiamo sistemato il bottone a nome “Storicizza”.
Per creare un Bottone su un foglio Excel occorre passare alla Modalità Progettazione che si ottiene cliccando sull’icona che mostra una squadra e una riga nella barra delle applicazioni.
La creazione di un bottone corrisponde all’istruzione: =INCORPORA("Forms.CommandButton.1";"")
Ecco le proprietà da assegnare al CommandButton il cui nome sarà ‘Storicizza’.
E sempre ‘Storicizza’ sarà il nome della macro che, prima di qualsiasi spiegazione, vediamo qui di seguito nella sintassi completa.
In pratica, quando faremo click sul Bottone, il sistema eseguirà la macro corrispondente con lo stesso nome ‘Storicizza’.
________________________________________________________________________________________________________________
Macro “Storicizza”:
Private Sub Storicizza_Click()
Application.Goto Reference:="SITUAZIONE!R1C1"
Range("a1:I21").Select
Selection.Copy
Application.Goto Reference:="Storico!R1C1"
ultima = Worksheets("Storico").Range("A:A").End(xlDown).Row
ActiveCell.Offset(ultima, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.Goto Reference:="SITUAZIONE!R1C1"
End Sub
______________________________________________________________________________________________________________
Per capire il funzionamento della macro, numeriamo le righe delle istruzioni per gruppi in modo da poterli commentare uno per uno:
1) Private Sub Storicizza_Click()
2) Application.Goto Reference:="SITUAZIONE!R1C1"
3) Range("a1:I21").Select
4) Selection.Copy
5) Application.Goto Reference:="Storico!R1C1"
ultima = Worksheets("Storico").Range("A:A").End(xlDown).Row
ActiveCell.Offset(ultima, 0).Select
6) Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
7) Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
8) Application.Goto Reference:="SITUAZIONE!R1C1"
9) End Sub
E ora le spiegazioni:
- Excel collega il click del Bottone alla macro a nome ‘Storicizza’. I campi delle Proprietà del Bottone a nome “name” e “caption” devono essere anch’essi “Storicizza”
- Excel punta al foglio a nome “Situazione”
- Del foglio “Situazione”, Excel selezione la zona compresa tra le celle A1 e I21 corrispondente all’area da copiare. Ovviamente A1 e I21 si riferiscono all’attuale foglio da copiare. Per formati di foglio diversi occorrerà specificare il nuovo range da copiare
- Excel si predispone per copiare da A1 a I21
- Excel passa al foglio “Storico” che avremo precedentemente creato vuoto e va in cerca della prima riga libera, cioè non occupata da precedenti storicizzazioni.
- Excel incolla i valori della zona A1 – I21 del foglio Situazione in fondo al foglio “Storico”
- Excel sistema i ‘formati’ delle celle, cioè i colori, i bordi e i grassetti
- Excel torna a riga 1 e colonna 1 del foglio ‘Situazione”
- Fine della Macro
Ecco fatto: e se anche voi proverete a creare questa macro, vi divertirete molto a seguire l’andamento del vostro portafoglio Opzioni nel tempo e vi stupirete del continuo movimento ondivago dei prezzi, una sorta di beccheggio, quasi da mal di mare, ma veramente fondamentale per individuare gli eventuali lati oscuri della struttura che avete messo in piedi.
Buon lavoro e buon divertimento con le macro di Excel!
Francesco Caranti