giovedì 9 aprile 2015

Codice Visual Studio per l'apertura di un file


Imports System
Imports System.IO
Imports System.Text


Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim o As New OpenFileDialog
        o.ShowDialog()

        Dim nomeFileSelezionato = o.FileName
        Me.RichTextBox1.AppendText(nomeFileSelezionato)



        Dim sr As StreamReader = New StreamReader(nomeFileSelezionato)

        Do While sr.Peek() >= 0
            Me.RichTextBox1.AppendText(vbCrLf & sr.ReadLine())
        Loop
        sr.Close()

        'Function Split(
        '    ByVal nomeFileSelezionato As String,
        '    Optional ByVal Delimiter As String = " ",
        '    Optional ByVal Limit As Integer = -1,
        '    Optional ByVal Compare As CompareMethod = CompareMethod.Binary
        ') As String()

    End Sub
End Class

Codice Visual Studio per l'allineamento di colonne di un file

Imports System.IO
Public Class Form1


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim i As Integer = 0
        Dim s As String
        Dim data As String() = New String(3) {}
        Dim day As String = ""
        Dim month As String = ""
        Dim year As String = ""
        Dim miastringa As String = ""
        Dim o As New OpenFileDialog
        o.ShowDialog()

        Dim nomeFile = o.FileName

        For Each s In File.ReadAllLines(nomeFile)

            Dim dividi As String() = s.Split(New Char() {","c})

            For i = 0 To UBound(dividi)

                data = dividi(0).Split(New Char() {"-"c})
            Next

            For i = 0 To data.Length - 1
                If (data(i) = "Date") Then
                    Name = "year" + " " + "month" + " " + "day"
                    Me.RichTextBox1.AppendText(Name)
                End If
                If data(i) <> "Date" Then
                    year = data(0)
                    month = data(1)
                    day = data(2)
                End If

            Next

            RichTextBox1.AppendText(year & " " & month & " " & day & " " & dividi(1) & " " & dividi(4) & vbCrLf & vbNewLine)
            ' Me.RichTextBox1.AppendText(year & " " & month & " " & day & " " & dividi(1) & " " & dividi(4) & vbCrLf)
        Next
        Dim saveFileDialog1 As New SaveFileDialog()
        saveFileDialog1.FileName = "" 'Imposta il path (completo) di default
        saveFileDialog1.Filter = ("File csv|*.csv") 'imposta i formati in cui è possibile salvare il file ("nome|*.formato")
        saveFileDialog1.ShowDialog() 'Visualizza la finestra
        My.Computer.FileSystem.WriteAllText(saveFileDialog1.FileName, RichTextBox1.Text, False)


    End Sub

Codice Visual Studio per la Rappresentazione grafica con Disegna()

Imports System.Math


Public Class Disegna
    Public X As Integer
    Public Y As Integer
    Public collisionX As Boolean
    Public passo As Integer
    Public asseX As Integer
    Public asseY As Integer
    Public collisionY As Boolean
    Public colore As New Color

    Sub New(ByVal X As Integer, ByVal Y As Integer, ByVal asseX As Integer, ByVal asseY As Integer, ByVal colore As Color, ByVal passo As Integer, ByVal collisionX As Boolean, ByVal collisionY As Boolean)
        Me.X = X
        Me.Y = Y
        Me.asseX = asseX
        Me.asseY = asseY
        Me.colore = colore
        Me.passo = passo
        Me.collisionX = collisionX
        Me.collisionY = collisionY
    End Sub
    Public Sub ricalcolo(ByVal g As Graphics, ByVal b As Bitmap)
        If X + asseX > b.Width Then
            collisionX = True
        End If
        If Y + asseY > b.Height Then

            collisionY = True
        End If
        If X <= 0 Then
            collisionX = False
        End If
        If Y <= 0 Then
            collisionY = False
        End If


        If collisionX = True And collisionY = True Then
            X = X - passo
            Y = Y - passo
        End If
        If collisionX = False And collisionY = False Then
            X = X + passo
            Y = Y + passo
        End If

        If collisionX = True And collisionY = False Then
            X = X - passo
            Y = Y + passo
        End If
        If collisionX = False And collisionY = True Then
            X = X + passo
            Y = Y - passo
        End If


        g.FillEllipse(New SolidBrush(colore), X, Y, asseX, asseY)
    End Sub

End Class

Public Class Form1

    'Dim b As New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
    Public b As New Bitmap(1000, 500)
    Public g As Graphics = Graphics.FromImage(b)
    Dim lista As New List(Of Disegna)

    Private Sub button1_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim random As Random = New Random
        Dim posizioneX1 As Integer = random.Next(0, 1000)
        Dim posizioneY1 As Integer = random.Next(0, 500)
        Dim posizioneX2 As Integer = random.Next(0, 1000)
        Dim posizioneY2 As Integer = random.Next(0, 500)
        Dim posizioneX3 As Integer = random.Next(0, 1000)
        Dim posizioneY3 As Integer = random.Next(0, 500)

        Dim p1 As New Disegna(posizioneX1, posizioneY1, 30, 30, Color.NavajoWhite, 5, True, True)
        Dim p2 As New Disegna(posizioneX2, posizioneY2, 30, 30, Color.Aqua, 5, True, True)
        Dim p3 As New Disegna(posizioneX3, posizioneY3, 30, 30, Color.Black, 5, True, False)


        Me.lista.Add(p1)

        Me.lista.Add(p2)

        Me.lista.Add(p3)

        Me.Timer1.Interval = 100
        Me.Timer1.Start()

    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

        g.Clear(Color.Green)
        For Each p As Disegna In Me.lista
            p.ricalcolo(g, b)

            ' If Math.Abs(p1.X) = Math.Abs(p2.X) OrElse Math.Abs(p1.Y) = Math.Abs(p2.Y) Then
            '     p1.X = p1.X + 3
            '     p1.Y = p1.Y - 3
            '     p2.X = p2.X - 10
            '     p2.Y = p2.Y + 10
            '     p2.collisionX = False
            '     p2.collisionY = False
            ' End If


        Next

        PictureBox1.Image = b

    End Sub


End Class

La figura del quantitative analyst


L’Analisi Quantitativa è una tecnica di analisi finanziaria che cerca di capire il comportamento dei mercati utilizzando modelli matematici e statistici complessi. Assegnando un valore numerico alle variabili, gli analisti quantitativi hanno il compito di cercare di replicare matematicamente la realtà .
Secondo Ciaran Healy,un consulente della società di recruiting specializzata in questa tipologia di professionisti, ci sono due ruoli:

- gli "analisti con la sfera di cristallo", che analizzano le serie storiche dei mercati finanziari per trovare ricorrenze in grado di prevedere gli sviluppi futuri;
- gli "analisti sulla torre d’avorio", che usano complessi modelli matematici per prezzare gli strumenti derivati.

Entrambe queste figure sono molto richieste: i primi sono ricercati dagli hedge funds e dalle banche di investimento per lo sviluppo di piattaforme algoritmiche per il trading; i secondi, invece, trovano impiego presso le banche per la messa a punto di nuove tipologie di derivati.

Gli analisti quantitativi e l’analisi del rischio

Anche le banche tradizionali hanno bisogno di analisti quantitativi che lavorino dietro le quinte.
I cacciatori di teste europei dicono che l’impiego di analisti quantitativi sta crescendo velocemente anche nel campo del controllo del rischio. Secondo Sergio Pigoli, presidente della Pigoli Consulenza, una società di consulenza per gli hedge funds, la ricerca di questi profili è iniziata alcuni anni fa ma solo ultimamente è diventata una delle priorità dei fondi alternativi. “Le persone più ricercate sono quelle che possiedono un dottorato in matematica – spiega Pigoli – ma la scarsità di queste figure è tale che il più delle volte anche una laurea in fisica è sufficiente”.

Non tutti i matematici possono lavorare come analisti quantitativi per una banca d’investimento. Per aver successo ci sono due requisiti indispensabili: un dottorato e degli studi di alto livello.

La giusta mossa

Nelle City di Londra i dottorati preferiti sono quelli delle università di Oxford e Cambridge, dell’Imperial College e della London School of Economics. Vanno bene anche un ristretto numero di università francesi.
Non tutti i matematici possono lavorare come analisti quantitativi per una banca d’investimento. Per aver successo ci sono due requisiti indispensabili: un dottorato e degli studi di alto livello.
Secondo Healy negli Stati Uniti le banche considerano solo quei profili provenienti da poche e selezionate scuole: “C’è una netta preferenza per i dottorati conseguiti a Harvard, Yale, Princeton, Dartmouth, Stanford, MIT e Caltech”.
Heayle sottolinea che qualche volta le banche di Wall Street accettano eccezionalmente candidati con solo un master. Ma questi casi sono molto rari: “Se non possiedi un dottorato di ricerca, l’unica alternativa è andare a dormire nello stesso letto del direttore finanziario”.

Francia e Cina: i serbatoi mondiali di analisti quantitativi

Le scuole francesi come l’Università di Parigi IV, l’Ecole Polytechnique, l’Ecole Normale, l’Ecole Nazionale de la Statistique et de l’Administration Economique (ENSAE) e l’Università di Parigi Dauphine hanno un’ottima reputazione presso le banche.
Paradossalmente la richiesta di queste figure in Francia è bassa, così molti trovano impiego all’estero.
Gli studenti francesi che aspirano a un impiego come analisti quantitativi devono avere almeno un DEA con indirizzo finanziario, ovvero l’equivalente di un primo anno di PhD. Andrew Fisk, un recruiter presso la Carrington Fox di Londra, sostiene che le banche qualche volta preferisco i DEA francesi ai PhD inglesi: “I candidati francesi hanno una maggiore vocazione. Il più delle volte hanno già avuto effettuato degli stages, il che puó rappresentare un vantaggio competitivo rispetto a chi possiede un PhD ma non ha esperienza lavorativa”.
Se la City di Londra si rifornisce di analisti quantitativi in Francia, Wall Street fa arrivare gli esperti dalla Cina. Healy dice che circa il 40-50% dei candidati negli Stati Uniti sono cinesi. Molti di loro sono laureati presso le università di Tsinghua, Shanghai e Pechino, prima di aver fatto un PhD in un’università americana.

I migliori analisti quantitativi sono quelli che riescono a generare profitti per le banche. Nel lungo periodo gli analisti che mettono a punto efficienti modelli di trading o che realizzano nuovi strumenti derivati sono in grado di guadagnare cifre considerevoli.
I bravi analisti ricevono un’ottima remunerazione. “I migliori arrivano superano tranquillamente il milione di dollari”, spiega April di Wall Street.

Gli hedge funds nella sfera di cristallo

“Gli analisti sulla torre d’avorio” passano la loro vita a sviluppare modelli sempre più complicati per prezzare i derivati per le banche d’investimento, ma “gli analisti con la palla di cristallo” con sistemi di trading vincenti possono anche mettersi in proprio. Si prenda l’esempio di Cliff Asness, che dopo aver conseguito un MBA e un Phd in finanza presso l’Università di Chicago, è stato assunto da Goldman Sachs, diventando successivamente direttore della divisione di ricerca quantitativa applicata alla gestione del capitale. Oggi Asness è il direttore nonché socio fondatore di AQR Capital Management, un hedge fund con una massa gestita superiore a 11 miliardi di dollari.

Strumenti finanziari e strategie di Trading

Gli strumenti finanziari sono titoli acquistabili e vendibili su un mercato da parte di un risparmiatore privato o di un investitore qualificato. Gli strumenti finanziari acquistati da un risparmiatore o da un investitore offrono dei guadagni potenziali o reali in ragione del loro grado di rischio. Più uno strumento finanziario è rischioso, più il suo guadagno o la relativa perdita tende a crescere. Esistono strumenti finanziari al alto rischio quali i future e le opzioni. Gli strumenti finanziari possono essere suddivisi in titoli di massa (titoli idonei a realizzare operazioni di investimento finanziari dirette ad interessare una "massa" di risparmiatori) e contratti derivati. Rientrano nella categoria dei contratti derivati i contratti futures. 
Un mercato finanziario è un luogo ideale nel quale vengono scambiati strumenti finanziari di varia natura a medio o lungo termine. Un mercato finanziario consente il trasferimento del risparmio dai soggetti che lo accumulano (sopratutto le famiglie) ai soggetti che lo richiedono (le imprese). I soggetti che richiedono liquidità emettono strumenti finanziari (depositi bancari, azioni, Buoni Ordinari del Tesoro ecc.) che cedono ai "soggetti in avanzo finanziario" in cambio di moneta. 
Lo scambio tra strumenti finanziari e moneta consente la redistribuzione dei rischi economici, perchè vengono assunti in parte dagli acquirenti degli strumenti finanziari. E' possibile per questi ultimi cedere tali strumenti ad altri soggetti economici, scambiandoli nei mercati appositi. Esistono quindi mercati azionari, obbligazionari, dei derivati, delle opzioni, dei warrant, ecc. ognuno con proprie regole e caratteristiche.
Gli operatori che partecipano al mercato sono gli investitori che acquistano e vendono strumenti finanziari; gli emittenti che emettono titoli o strumenti finanziari; gli intermediari finanziari che facilitano gli scambi.

Definizioneattività sottostante o strumento sottostante

Per strumento sottostante ad uno strumento derivato si intende quell'attività (non necessariamente finanziaria) da cui dipende il derivato. La tipologia del sottostante può essere estremamente vasta: ad esempio, per stock option si intende un'opzione il cui sottostante sono dei titoli azionari ovvero la facoltà di comprare l'azione ad un prezzo stabilito ad una data stabilita. Gli strumenti sottostanti di tipo finanziario possono essere: titoli di qualsiasi tipo )azioni, obbligazioni, ecc.); Indici ad esempio Nasdaq; Valute; Tassi di interesse; Commodity; Fondi comuni di investimento. Un Future sulle valute, ad esempio, può avere come attività finanziaria sottostante il dollaro, l'euro o lo yen, ovvero un'altra grandezza che nello specifico caso è valutaria. Un future sulle materie prime può avere come attività sottostante non uno strumento finanziario ma un bene fisico a tutti gli effetti come ad esempio il grano. Gli strumenti finanziari collegati ad un sottostante sono prodotti strutturati e molto spesso a elevato rischio. L'investitore è infatti esposto da un lato a guadagni esponenzialmente illimitati ma dall'altri anche a perdite pari all'intero capitale investito.

Strumenti finanziari derivati o Contratti (su) derivati

Un contratto derivato è stato sviluppato negli ordinamenti di common law (modello di ordinamento giuridico di origine anglosassone) ed è un contratto definito dalla dottrina inglese "alieno" dove il termine "alieni" ha come calcolo "alius" e quindi "altro, straniero" ma anche "alien" e quindi "extraterrestre" e tale genesi si manifesta anche nel nome che costituisce una traduzione dell'aggettivo inglese "Derivative". Con tale termine la dottrina inglese identifica quegli strumenti finanziari basati su un altro strumento elementare che ne influenza il valore. 
La Banca d'Italia li definisce "i contratti che insistono su elementi di altri schemi negoziali, quali titoli, valute, tassi di interesse, tassi di scambio, indici di borsa, ecc. Il loro valore 'deriva' da quello degli elementi sottostanti. Costituiscono prodotti derivati, ad esempio, ifutures, le options, gli swaps, i forward rate agreements". 
Secondo la dottrina italiana, i derivati possono definirsi come "contratti il cui valore deriva (cioè dipende) dal prezzo di una "attività finanziaria sottostante", ovvero dal valore di un parametro finanziario di riferimento (indice di borsa, tasso d'interesse, cambio)". 
Oggetto del contratto non è mai il 'sottostante' ma il differenziale tra il valore dell'entità di riferimento al momento della stipula e quello assunto dalla medesima entità al momento della data di esecuzione del contratto.
Altra definizione di contratto (su) derivato viene fornita dallo standard contabile IAS 39 (emanato nel dicembre 1998 e applicabile a partire dal primo gennaio 2001). Lo IAS 39 definisce il derivato quel contratto quel quel contratto o strumento finanziario che possieda, congiuntamente, le seguenti caratteristiche:
a) Il suo valore cambia in relazione al cambiamento di un tasso di interesse, di un prezzo di uno strumento finanziario, di un prezzo di una merce, di un tasso di cambio in valuta estera, di un indice di prezzi o di tassi, di un merito di credito (rating) o indici di credito o altra variabile prestabilita (alcune volte denominata "sottostante". 
b) Non richiede un investimento netto iniziale o richiede un investimento netto iniziale che sia minore di quanto sarebbe richiesto per altri tipi di contratti da cui ci si aspetterebbe una risposta simile a cambiamenti di fattori di mercato. 
c) E' regolato a data futura, con regolamento differito rispetto alla data di negoziazione.
La prima caratteristica è coerente con la tradizionale nozione del derivato, contratto che assume a riferimento il valore di un bene (materiale o immateriale). La seconda caratteristica valorizza l'effetto 'di leva' contenuto dallo strumento che consente di ottenere ad un costo più contenuto lo stesso risultato conseguibile attraverso un contratto sottostante (ma anche amplifica opportunità di profitto e rischi di perdita). La terza ricorda che il derivato fa parte del genere dei contratti a termine ovvero ad esecuzione differita.

Exchange-Traded Funds (ETF) 

Gli Exchange Traded Funds (letteralmente "fondi indicizzato quotati") sono una particolare categoria di fondi le cui quote sono negoziate in Borsa in tempo reale come semplici azioni, attraverso una banca o un qualsiasi intermediario autorizzato.
Una delle caratteristiche degli ETF è l'indicizzazione: gli ETF sono fondi a gestione passiva che si limitano a replicare l'andamento di un determinato indice finanziario investendo negli strumenti che lo compongono. Ad esempio, se si compra un ETF che clona l'andamento della borsa italiana, automaticamente verranno comprate in un sol colpo tutte le 40 azioni che compongono l'indice della borsa stessa. Non ci sarà nessun rischio di andamento difforme dall'effettuato investimento rispetto al mercato di riferimento. 
I vantaggi degli ETF sono: 
La rapidità: gli ETF sono scambiati in borsa durante tutta la giornata, si possono comprare e vendere in tempo reale senza aspettare la fine della seduta come accade per i fondi di investimento. Ciò è particolarmente importante per uscire in fretta da un investimento quando il mercato precipita;
Costi bassi: gli ETF non hanno commissioni di ingresso ed hanno commissioni di gestione bassissime. L'unico onere diretto sono i costi di acquisto che sono gli stessi previsti per le azioni.


E-TRADE Finacial Corporation (ETFc)

Nel 1982, William A. Porter e Bernard A. Newcomb fondano la PicoTrade Inc. a Palo Alto in California, nel 1991 Porte fonda una nuova società, la E-TRADE Securities, Inc. con diverse centinaia di migliaia di dollari di capitale inziale da PicoTrade. In seguito la società venne riorganizzata ed emerse con il nome di E-TRADE. 
E-TRADE Finacial Corporation è una società con sede a New York quotata su Nasdaq. 
E-Trade è stata una delle prime a specializzarsi nella negoziazione on line di titoli quali: azioni, obbligazioni, opzioni, fondi comuni di investimento. Recentemente, ai prodotti di trading è stata affiancata una gamma di servizi bancari più tradizionali come: conti correnti, conti di deposito, carte di credito ecc.
La società E-TRADE Finacial Corporation fa parte del settore di servizi finanziari e produce prodotti di trading, investing e banking.
Le informazioni contenute nel sito Nasdaq.com sono utili per chi vuole orientarsi nel mercato azionario e investire in fondi o azioni. Nel sito vengono infatti fornite le  le quotazioni azionarie in tempo reale per E-TRADE Financial Corporation, le sintesi di quotazioni, il dopoborsa e un grafico di base. 






Futures


Il mercato dei Futures ha origine nel 1800. Nel 1848 venne fondato il Chicago Board Of Trade, primo mercato dove vennero scambiati contratti futures regolamentati.

I primi contratti ebbero come merce di riferimento il grano, mentre nel 1972 comparvero i primi Futures su valute scambiati presso l'International Monetary Market. Poco dopo le contrazioni vennero ampliate ai tassi d'interesse, mentre il 24 febbraio del 1983 il Kansas City Board Of Trade diede il via al primo scambio di Futures sugli indici, il Line Composit Index. 

Definizione di "Future": 

Un "Future Contract" in inglese significa "contratto a realizzazione futura". E' un contratto (su) derivato con il quale due parti contraenti si accordano sulla compravendita di una determinata merce, stabilendo oggi il prezzo e la quantità della merce in oggetto ma rimandando la consegna della stessa a una data futura prestabilita nel contratto stesso.

Se considero due parti contraenti, il venditore e il compratore stipulano un contratto secondo il quale il venditore vende al compratore ad un prezzo fissato della merce che verrà consegnata solo in una data futura dalla stipula del contratto stesso. Ambedue i contraenti sono tutelati da un contratto del genere: se nel periodo tra stipula del contratto e scadenza del contratto, il valore della merce, per qualche motivo, sale allora guadagnerà il compratore che aveva prefissato un prezzo inferiore e acquisterà la merce secondo il prezzo fissato al momento della stipula del contratto. Diversamente, se il il valore della merce diminuisce, verrà venduta la merce al prezzo fissato inizialmente con il conseguente guadagno del venditore.
In economia, un intermediario (conosciuto anche con il termine inglese broker) è una persona fisica o un gruppo di persone (agenzia d'affari, agenzia di rappresentanza) che organizza le transazioni tra un acquirente e un venditore, guadagnando una commissione quando viene concluso l'affare. Un trader è un operatore finanziario che effettua compravendita di strumenti finanziari, quali azioni, obbligazioni e derivati sulle varie borse valori e su altri mercati mobiliari in nome proprio. Un trader effettua anche scelte autonome basandosi su strumenti di analisi a differenza del broker.
Al mercato dei futures si ha accesso attraverso i brokers che operano nella borsa. Per entrare in un contratto futures bisogna prendere contatti con un broker. Il borker chiede al trader di effettuare un deposito a garanzia degli impegni presi. Questo deposito è chiamato margine iniziale (initial margin).
L'investitore, per aprire una posizione deve depositare un margine cauzionale che rappresenta solo una piccola parte del contratto sottostante dando comunque tutti i benefici di guadagno come se noi avessimo impiegato l'intera cifra per l'acquisto della merce in oggetto nel contratto (detto sottostante).

Le operazione su futures comportano un elevato grado di rischio. L'ammontare del margine iniziale è ridotto (rispetto pochi punti percentuali) rispetto al valore dei contratti e ciò produce il così detto "effetto di leva". Questo significa che un movimento dei prezzi di mercato relativamente piccolo avrà un impatto proporzionalmente più elevato sui fondi depositati presso l'intermediario: tale effetto potrà risultare a favore o a sfavore dell'investitore. Il margine versato inizialmente cioè gli ulteriori versamenti effettuati per mantenere la posizione, potranno di conseguenza andare perduti completamente. Nel caso i movimenti di mercato sino a sfavore dell'investitore, egli può essere chiamato a versare i fondi ulteriori con breve preavviso al fine di mantenere aperta la propria posizione in futures. Se l'investitore non provvede a ad effettuare i versamenti addizionali richiesti entro il termine comunicato, la posizione può essere liquidata in perdita e l'investitore debitore di ogni altra passività prodottasi. 

Vengono definite commody i beni che tendono a conservare le loro caratteristiche originali nel tempo, come ad esempio l'oro, e che si prestano ad essere scambiate sui mercati finanziari

I contratti futures possono essere di due tipi: "lunghi" (long) sono accordi per comprare un certo ammontare della commody in un certo mese futuro. I contratti "corti" (short) sono accordi per vendere un certo ammontare di commody in un certo mese futuro.

L'attività sottostante di un future può essere un'azione, un'obbligazione, un tasso di interesse a lungo termine, un tasso a breve, una valuta, un indice azionario o una merce.

In Italia i futures sono negoziati sul mercato IDEM. Esistono tre tipi di contratti: S&P/Mib Futures (contratto future scritto sull'indice S&P/Mib, ogni punto indice vale 5 euro), Mini S&P/Mib (analogo al precedente, ma con un valore di 1 euro per ciascun punto indice), Single Stock Futures (future scritti su titoli azionari).

I futures possono essere negoziati con tre finalità: copertura, speculazione e arbitraggio.

Opzioni

Un'opzione è un contratto (su) derivato che conferisce al compratore il diritto di acquistare (Call) o vendere (Put) un bene ad un prezzo prefissato (detto Strike price o prezzo di esercizio) ad un certa data futura.
Con qualche forzatura la dottrina statunitense rintraccia il primo contratto su derivati nella Bibbia (Genesi, 29) e quindi secondo la tradizione 1700 anni prima di Cristo. Secondo tale dottrina Giacobbe avrebbe acquistato da Labano l'opzione si sposarne la figlia Rachele in cambio di sette anni di lavoro. Al termine dei sette anni Labano invece di sposare Rachele (bella di forme e avvenente di aspetto) gli diede in moglie la primogenita Lia (dagli occhi smorti). Volendo Giacobbe sposare (anche) Rachele di cui era innamorato, Labano gli concesse una (seconda) opzione: il diritto di sposare Rachele in cambio di ulteriori sette anni di lavoro gratuito. Il primo derivato si concludeva dunque con il primo default: Giacobbe era costretto a pagare il doppio del prezzo convenuto per un prodotto che il tempo aveva inevitabilmente deprezzato.
La storia antica offre alti esempi su contratti derivati. Talete di Mileto nel 580 a.C. - racconta Aristotele - fece fortuna (era infatti povero) stipulando in inverno (quando la domanda di utilizzo era ovviamente bassa) una opzione sull'utilizzo in autunno di alcuni frantoi (epoca della massima domanda, tanto più perchè quell'anno vi era stata un'abbondante raccolta).
Le opzioni possono essere di tipo europeo o americano. Nel caso siano di tipo europeo il diritto di acquistare o vendere un bene può essere esercitato solo alla scadenza, se le opzioni sono di tipo americano il compratore può esercitare il suo diritto in qualsiasi momento e non soltanto alla scadenza. 
A fronte della stessa attività sottostante sussistono diversi contratti di opzione Call (diritto del compratore di acquistare) oppure Put (diritto del compratore a vendere) a seconda del prezzo di esercizio. Solitamente se il prezzo di esercizio di un'opzione Call (Put) è inferiore (superiore) al prezzo corrente dell'attività sottostante l'opzione si dice "in-the-money" cioè se scadesse in questo momento originerebbe un guadagno; se il prezzo di esercizio è pari a quello dell'attività sottostante l'opzione di dice "at-the-money" altrimenti si dice "out-of-the-money" e in entrambi i casi non genera alcun flusso. In sostanza la differenza tra il prezzo del titolo ed il prezzo di esercizio (o viceversa) determina se un'opzione è da considerarsi In-the-moneyAt-the-money oOut-of-the-money, ovvero se l'eventuale esercizio genera un'entrata in cassa o meno. 
Un contratto di opzione dà al compratore il diritto ma non l'obbligo di fare qualcosa e ciò differenza questo contratto dagli altri contratti a termine (come il contratto futures, ad esempio= dove sia in compratore che il venditore si impegnano a comprare o vendere l'attività sottostante. Il contratto di opzione estingue generalmente gli obblighi del compratore al momento della stipulazione con il pagamento del premio. Successivamente il compratore non ha più obblighi ma soltanto la facoltà di esercitare il suo diritto. Per questo motivo il detentore di un'opzione beneficia della possibilità di guadagni teoricamente illimitati mentre può subire perdite limitate (al massimo possono essere pari al premio pagato). I profitti illimitati derivano ad esempio da un'opzione Call, dal fatto che chi detiene l'opzione, se decide di esercitarla (e cioè quando il valore dell'attività sottostante è maggiore del prezzo di esercizio) è in grado, rivendendo subito l'attività sottostante ai prezzi di mercato, di guadagnare la differenza tra il valore dell'attività sottostante ed il prezzo di esercizio pagato. Questa asimmetria nella distribuzione dei pay-off è la caratteristica principale che estingue e opzioni da tutti gli altri strumenti derivati.
Si noti che la stipula di un contratto futures non costa nulla mentre l'acquisto di un contratto opzione comporta un costo (il premio).

Strategie di Trading

Il trading è l'attività che consiste nel comprare e vendere strumenti finanziari (azioni, obbligazioni, derivati come futures, opzioni ecc.)per lucrare le differenze di prezzo tra il costo di acquisto e il ricavo di vendita. 
E' un attività rischiosa nel senso che è possibile guadagnarci ma anche perderci. Se il titolo che abbiamo prescelto non va' nella direzione da noi sperata, il denaro lo so perde invece di guadagnare. Molti traders utilizzano strumenti come l'analisi tecnica o l'analisi fondamentale per prendere le loro decisioni di investimento cioè sostanzialmente per decidere cosa acquistare (o vendere) e quando farlo. 
Il trader può essere  rialzista (se spera in un rialzo delle quotazioni del titolo acquistato) o ribassista (se spera in un ribasso delle quotazioni del titolo che ha venduto allo scoperto). 
Quando si vende allo scoperto (in gergo si dice short) bisogna mettere in garanzia dell'operazione il cosiddetto "margine" cioè una somma stabilita dall'intermediario (broker o banca)che servirà a coprire l'operazione nel caso in cui dovessimo sbagliare la previsione.
Con il termine "sistema di trading" ci si riferisce a una metodologia rigorosamente definita che utilizza determinate regole per decidere qualndo comprare o quando vendere su un certo mercato. Scopo del sistema di trading è quello di generare una strategia che sia nel medio-lungo periodo che sia profittevole per l'investitore o lo speculatore. 
Un sistema di trading non è necessariamente uno strumento previsivo. Per guadagnare è sufficiente ma non necessario prevedere l'andamento future dei prezzi. 
Dato che l'andamento dei mercati segue normalmente un processo casuale, la cui natura può essere quella di un semplice "random walk" ma può essere anche molto più complessa, è difficile se non impossibile ottenere un sistema affidabile dal punto di vista previsivo. 
Le strategie di trading servono a determinare delle regole di acquisto e vendita di titoli, che permettano di generare un rendimento a fronte di un capitale investito. Per poter valutare una particolare strategia di trading è necessario testarla su serie storiche dei prezzi simulate. La costruzione a tavolino delle serie storiche dei prezzi è formulabile attraverso vari metodi come la passeggiata aleatoria o il Geometric Random Walk. Questi due approcci non sono equivalenti. Infatti, la passeggiata aleatoria non è particolarmente indicata a produrre serie realistiche dei prezzi di un titolo azionario, in quanto, per un numero elevato di osservazioni, può portare a valori negativi che non avrebbero alcun senso se associati ai prezzi. Questo inconveniente è superabile utilizzando il Geometric Random Walk che utilizza le realizzazioni di una variabile aleatoria normale per poter determinare la variazione di prezzo tra l'istante t e l'istante t+1. Con questo metodo, oltre a superare la problematica dei prezzi negativi, è possibile fornire un trand ed un livello di volatilità alla serie variando i parametri della normale presa in esame. In generale, una media positiva determinerà un trand dei prezzi crescente mentre, una varianza alta corrisponderà ad una volatilità, del titolo preso in esame, alta. Utilizzando questo modello per la generazione dei prezzi, è possibile valutare qualsiasi strategia di trading adottata in diverse congiunture economiche e su vari titoli. Questo tipo di approccio è basata sull'analisi degli scenari “What-If”.
In particolare, per avere un esempio di questo modello, si propongono parti di un codice in VB.NET con il quale si è valutata una particolare strategia. Per prima cosa si mostra la generazione della serie storica con il modello GBM utilizzando la trasformazione di Box-Muller:

Dim u1 As Double = r.NextDouble
Dim u2 As Double = r.NextDouble
Dim NormalStandard As Double = Math.Sqrt(-2 * Math.Log(u1)) * Math.Sin(2 * Math.PI * u2)

Dalla normale standardizzata costruita con la trasformazione di Box-Muller si passa ad una normale non standardizzata agendo sulla media e sulla varianza.

Dim T As Double = TSpan.TotalDays / 252
Dim Media As Double = (Parametro_Mu - Parametro_Vol * Parametro_Vol / 2) * T
Dim std As Double = Parametro_Vol * Math.Sqrt(T)
Dim Normal As Double = Me.NOrmaleNonSTardard(NormalStandard, Media, std)


Una volta determinata la curva normale, si costruisce la serie storica:

Dim NuovoPrezzo As Double = PrezzoCorrente * Math.Exp(Normal)
Dim DifferenzaRispettoPrecedenteInTicks As Integer = CInt((NuovoPrezzo - PrezzoCorrente) / TickSize)





PrezzoCorrente = PrezzoCorrente + DifferenzaRispettoPrecedenteInTicks * TickSize

IstanteCorrente = IstanteCorrente.AddMilliseconds(TSpan.TotalMilliseconds)





Dim NewOsservazione As New Osservazione
With NewOsservazione
.Istante = IstanteCorrente
.Prezzo = PrezzoCorrente
End With

ListaPrezzi.Add(NewOsservazione)


Le variabili utilizzate nel codice per determinare la strategia sono:


Dim target As Double = Double.Parse(Me.TextBox2.Text)
Dim PrezzoIniziale = Double.Parse(Me.TextBox1.Text)
Dim ContaAcquisti As Integer = 0
Dim ContaVendite As Integer = 0
Dim ValoreAcquistato As Double = 0
Dim ValoreVenduto As Double = 0
Dim Posizione As Integer = 0
Dim guadagno As Double = 0
Dim k As Double = Double.Parse(Me.NumericUpDown1.Value)
Dim MinPrezzoBuy = PrezzoIniziale
Dim decremento As Double = Double.Parse(Me.NumericUpDown2.Value)


Si definisce la condizione di acquisto:

If o.Prezzo <= MinPrezzoBuy - (k * decremento) Then





Dim buy As New VariazionePrezzo
With buy
.Istante = o.Istante
.isBuy = True
.quantita = 1
.PrezzoCorrente = o.Prezzo
ValoreAcquistato += .PrezzoCorrente * .quantita
Posizione += .quantita
.PNL = ValoreVenduto - ValoreAcquistato
.minPrezzoBuy = .PrezzoCorrente
MinPrezzoBuy = .PrezzoCorrente





Ordini.Add(buy)
End With


Analogamente si definisce la condizione per la vendita:

ElseIf (o.Prezzo * Posizione >= ValoreAcquistato + target) Then





Dim vendita As New VariazionePrezzo
ValoreVenduto += o.Prezzo * Posizione
With vendita
.PrezzoCorrente = o.Prezzo
.PNL = ValoreVenduto - ValoreAcquistato
.isBuy = False
.minPrezzoBuy = .PrezzoCorrente
MinPrezzoBuy = .PrezzoCorrente
Ordini.Add(vendita)
End With


L'output restituisce il numero di acquisti il numero di vendite e il PNL:

Me.RichTeBox1.Clear()
Me.RichTextBox1.AppendText(vbCrLf & " numero acquisti " & ContaAcquisti)
Me.RichTextBox1.AppendText(vbCrLf & " numero vendite " & ContaVendite)
Me.RichTextBox1.AppendText(vbCrLf & " PNL del giorno " & guadagno - ValoreAcquistato)
End Sub

Con questo programma si può avere un'idea della qualità della strategia di trading esposta, in varie condizioni e con diversi titoli.



Algoritmi per il calcolo di media e varianza

Introduzione

In statistica la varianza di una variabile aleatoria X è un numero, indicato con Var(X), o \sigma^2  , che fornisce una misura di quanto i valori assunti dalla variabile differiscano dalla media µ. In altri termini è il valore medio del quadrato degli scarti. La varianza è quindi una misura di concentrazione: minore (maggiore) è la varianza, peggiore (maggiore) è la concentrazione (dispersione) dei dati attorno al valore medio.


La formula matematica per il calcolo della varianza per un’intera popolazione di dimensione N è:

                                                     \sigma ^2=\frac{1}{N}[\sum_{i=1}^{N}x_{i}^2-\frac{1}{N}(\sum_{i=1}^{N}x_{i})^2]

La formula per il calcolo di una stima corretta della varianza di un campione di grandezza n è invece:


S^2=\frac{1}{n-1}[\sum_{i=1}^{n}x_{i}^2-\frac{1}{n}(\sum_{i=1}^{n}x_{i})^2]
Algoritmi

Gli algoritmi per il calcolo della varianza svolgono un ruolo importante nel calcolo statistico. Uno degli algoritmi per calcolare la media e la varianza è il cosiddetto Algoritmo Naive:




Quest’algoritmo può essere utilizzato per il calcolo della varianza per un’intera popolazione semplicemente dividendo per N invece che per n-1 nell’ultima riga.
Poiché Sum_sqr e (Sum*Sum)/n possono essere numeri molto simili, questo potrebbe portare ad avere una varianza molto vicina allo 0 e quindi ad una poca precisione del risultato.
Un algoritmo alternativo a quello appena presentato prevede l’utilizzo di due step separati per il calcolo della varianza:
1) calcoliamo la media del campione:
  \overline{x}=\frac{1}{n}\sum_{i=1}^{N}x_{i}
2) calcoliamo la somma dei quadrati della differenza dalla media: s^{2}=\frac{1}{n-1}\sum_{i=1}^{n}\left(x_{i}-\overline{x} \right )^2


Il codice utilizzato per il Two Step Algorithm è il seguente:



Quest’algoritmo è sempre numericamente stabile, a meno che n non sia troppo elevato.
Entrambi gli algoritmi calcolano la differenza tra due somme di grandi dimensioni simili tra loro. E’, dunque, poco conveniente utilizzarli nella pratica, in quanto sono estremamente vulnerabili agli effetti dell’arrotondamento nelle operazioni con numeri a virgola mobile; è, infatti, facile incorrere ad errori computazioni come la Catastrophic Cancellation che prevede la cancellazione di molte cifre significative. E’ possibile ottenere, in alcuni casi, varianza negativa!
Gli algoritmi precedenti possono, però, essere migliorati.
Il problema della perdita di cifre significative è descritta e analizzata da Donald Knuth (Art of Computer Programming, Vol 2, Seminumerical Algorithms“, section 4.2.2), un informatico statunitense. La soluzione prevede di calcolare media e varianza utilizzando equazioni di ricorrenza nel caso di data stream:


\overline{x}_{n}=\frac{(n-1)\overline{x}_{n-1}+x_{n}}{n}


\sigma^{2}_{n}=\frac{(n-1)\sigma^{2}_{n-1}+(x_{n}-\overline{x}_{n-1})(x_{n}-\overline{x}_{n})}{n}

Dalle precedenti equazioni possiamo ricavare anche la formula di ricorrenza per la covarianza:


\sigma^{2}_{xyn}=\frac{(n-1)\sigma^{2}_{n-1}+(x_{n}-\overline{x}_{n})(y_{n}-\overline{y}_{n-1})}{n}

È di notevole interesse la dimostrazione che dalle formule classiche portano alla scrittura delle formule di ricorrenza:

Media:

                                          \overline{x}_{n}=\frac{\sum_{i=1}^{n}x_{i}}{n}=x_{n}+\frac{\sum_{i=1}^{n-1}x_{i}}{n}=x_{n}+(n-1)\overline{x}_{n-1}


Varianza:                                     \sigma ^{2}_{n}=\frac{\sum_{i=1}^{n}(x_{i}-\overline{x}_{n})^{2}}{n}=\frac{\sum_{i=1}^{n}x_{i}^{2}- n\overline{{x}}^{2}_{n}}{n}


Consideriamo la differenza  \sigma^{2}_{n}-\sigma^{2}_{n-1} :

\sigma^{2}_{n}-(n-1)\sigma^{2}_{n-1}=
= \sum_{i=1}^{n}x_{i}^{2}-n\overline{x}_{n}^{2}-\sum_{i=1}^{n-1}x_{i}^{2}+(n-1)\overline{x}_{n-1}^{2}
= x_{n}^{2}-n\overline{x}_{n}^{2}+(n-1)\overline{x}_{n-1}^{2}
= x_{n}^{2}-\overline{x}_{n-1}^{2}+n(\overline{x}_{n-1}^{2}-x_{n})(\overline{x}_{n-1}+\overline{x}_{n})
= x_{n}^{2}-x_{n}\overline{x}_{n}-x_{n}\overline{x}_{n-1}+x_{n}\overline{x}_{n-1}
= (x_{n}-\overline{x}_{n})-(x_{n}-\overline{x}_{n-1})
da cui   \sigma ^{2}_{n}=\frac{\sum_{i=1}^{n}(x_{i}-\overline{x}_{n})^{2}}{n}=\frac{\sum_{i=1}^{n}x_{i}^{2}- n\overline{{x}}^{2}_{n}}{n} .

I “running Algorithm” (o algoritmi online) sono quegli algoritmi che utilizzano le formule appena dimostrate. Essi vengono attribuiti da Knuth a Welford.


Considerando la quantità  M_{2,n}=\sum_{i=1}^{n}(x_{i}-\overline{x}_{n})^2 , riportiamo di seguito il codice dell’algoritmo online:



Quest’algoritmo è molto meno incline alla perdita di precisione dovuta alla cancellazione, ma potrebbe essere meno efficiente a causa dell’operazione di divisione all’interno del ciclo.

Esempio

Di seguito riportiamo un codice per il calcolo della media, della varianza e della covarianza implementati in VB.NET e in C# considerando due liste a priori.
Mettendo i due codici dei due linguaggi a confronto risultano essere molto simili tra loro.
Calcolo della media in VB.NET:

Image and video hosting by TinyPic
Calcolo della media in C#:


Calcolo della varianza in VB.NET:

Image and video hosting by TinyPic

Calcolo della varianza in C#:


Per il calcolo della covarianza bisogna definire un’altra lista in quanto la covarianza è una misura di quanto due variabili aleatorie variano assieme, ovvero al loro dipendenza:

Calcolo della covarianza in VB.NET:

Image and video hosting by TinyPic

Calcolo della covarianza in C#: