Shoot for the Stats

Strategie di Trading

Una strategia di trading è un piano prefissato e costruito per ottenere un guadagno secondo le esigenze di chi la sta costruendo. Si tratta, quindi, della strategia di base per definire le regole di vendita o di acquisto degli strumenti finanziari, in modo da favorire un guadagno che può essere stato pianificato come a lungo…

Bande di Bollinger

Le bande di Bollinger sono degli intervalli sfruttati nell’ambito finanziario, per poter misurare e studiare la componente casuale che influisce sull’andamento dei mercati, la cosiddetta volatilità. Questa può essere vista come la deviazione standard del valore di un titolo, ovvero come la fluttuazione media in un dato intervallo temporale. Quando si effettuano transazioni, è importante…

Moving averages

In statistica, la media mobile è uno strumento utilizzato per l’analisi di serie storiche. In particolare, le medie mobili vengono ampiamente utilizzate nell’analisi tecnica. Viene definito come una media pesata di più termini, centrata solitamente sul valore di riferimento. In formule, data una serie storica y_t contenenti i valori osservati di una variabile Y dal tempo 1 al…

Timer e Backgroud worker

In VB.NET e in C# esistono metodi che permettono la manipolazione di eventi da diversi punti di vista. In questo articolo ne vedremo, nello specifico, tre: Timer: permette la creazione di un timer con cui gestire l’attivazione di determinate azioni; Background worker: consente di dedicare un thread all’esecuzione di alcune specifiche operazioni; Extention method: metodi…

Scomposizione del PNL

Il Profit and Loss (P&L) è una funzione del tempo che dipende dalle transazioni eseguite e dal prezzo degli strumenti su cui vengono eseguite queste transazioni al momento delle transazioni. Indica i guadagni e le perdite di un certo intervallo temporale. In generale, è dato dalla differenza tra il prezzo di vendita (sell) e di acquisto (buy)…

Processi stocastici con mean reversion

In finanza l’incertezza gioca un ruolo chiave e la capacità di modellare questa e di saperla in qualche modo prevedere è un fattore fondamentale quando si operano investimenti. Per molti strumenti finanziari, soprattutto quelli relativi alle materie prima (commodities), la fluttuazioni del prezzo attorno ad un valore di equilibrio non riesce ad essere modellato da…

Il processo di Poisson

Il processo di Poisson è un processo stocastico che simula il manifestarsi di eventi che siano indipendenti l’uno dall’altro e che accadano continuamente nel tempo. Si tratta quindi di un processo a tempo continuo, ma definito su uno spazio discreto ed è il processo più utilizzato per processi di conteggio. Viene utilizzato sopratutto per scenari in cui è necessario…

Moto Browniano Geometrico

Un moto Browniano geometrico (anche conosciuto come moto Browniano esponenziale), è un processo stocastico ad indice continuo.La particolarità di questo processo è che il logaritmo degli incrementi si comportano come un moto Browniano standard. Questo processo è stato teorizzato per sopperire ai limiti del moto Browniano aritmetico, che procede per incrementi additivi. Questo, in uno…

Definizione differenziale del processo di Wiener

In matematica, un processo di Wiener, conosciuto anche come moto browniano, è un processo stocastico gaussiano in tempo continuo con incrementi indipendenti, usato per modellizzare il moto browniano stesso e diversi fenomeni casuali osservati nell’ambito della matematica applicata, della finanza e della fisica. In matematica applicata, il processo di Wiener è usato per rappresentare l’integrale del rumore bianco gaussiano; ed è molto utile come modello del rumore in ingegneria…

Moto Browniano

Il moto Browniano è sicuramente una delle scoperte più importanti del secolo scorso. Inizialmente modellato per descrivere la traiettoria di particelle sufficientemente piccole in dei fluidi, si è subito visto come la sua reale applicazione potesse essere estesa ai più diversi ambiti, tra cui anche e sopratutto la finanza. A differenza della random walk, il…

Teorema funzionale del limite centrale

Il teorema del limite centrale funzionale, detto anche teorema di Donsker, è un’estensione funzionale del classico teorema del limite centrale (TLC). Il teorema del limite centrale è uno dei teoremi più importanti della teoria delle probabilità. In verità esso costituisce una classe di teoremi, di cui una delle formulazioni più note è la seguente: Sia…

Processo aleatorio e Random walk

Un processo aleatorio (o processo stocastico) è un insieme ordinato di funzioni reali di un certo parametro (in genere il tempo) che gode di determinate proprietà statistiche. In generale è possibile identificare un processo stocastico come una famiglia ad un parametro di variabili casuali reali X(t) rappresentanti le trasformazioni dello stato iniziale nello stato al tempo t . In breve, un processo aleatorio…

Ricorsione e iterazione

I metodi ricorsivi ed i metodi iterativi sono di per sé simili, in quanto utilizzano entrambi utilizzo una struttura ripetitiva, caratterizzata da una condizione di uscita che termina l’esecuzione. La principale e fondamentale differenza, tuttavia, risiede nel fatto che un algoritmo iterativo presenta una struttura, quale un loop for, while o do-while, dove un’operazione viene…

Uso della memoria da parte di un programma

Quando un programma viene avviato, viene messa a disposizione, da parte del computer, una certa quantità di memoria. Questa viene allocata principalmente per 4 diverse componenti: una prima area di memoria è dedicata a contenere le istruzioni stesse del programma; una seconda area di memoria è dedicata alle variabili che non sono definite nei metodi,…

Trasformazione di coordinate: dal “mondo reale” al “mondo virtuale”

Uno degli aspetti fondamentali quando si disegna un grafico attraverso C# o VB.NET è il riuscire a trasformare in maniera opportuna le coordinate del dataset che si vuole rappresentare. Infatti, una trasformazione delle coordinate errata può portare dei risultati sbagliati e fuorvianti. La prima cosa che bisogna ricordare è che il sistema richiede le coordinate…

Principali oggetti grafici

Uno degli aspetti dove Visual Studio eccelle è nella gestione dell’interfaccia grafica. Infatti, sia VB.NET che C# mettono a disposizione una libreria, chiamata “GDI+”, che permette la rappresentazione di grafici (utile sopratutto per rappresentazioni statistiche), fornendo la possibilità di gestire diverse opzioni grafiche con molta facilità. La creazione di un grafico segue sostanzialmente alcuni step…

Lambda expressions

In programmazione informatica, una funzione anonima o funzione lambda è una funzione o una subroutine definita, e possibilmente chiamata, senza essere legata ad un identificatore (da qui, appunto, funzione anonima ). Le funzioni lambda sono una forma di funzione nidificata, che consente l’accesso alle variabili nella portata della funzione contenitrice (variabili non locali). Forniscono un scorciatoia rapida per applicare funzioni senza necessità…

Procedure per calcolare la distribuzione di frequenze univariata o bivariata

Nell’analisi statistica, è spesso molto interessante studiare delle variabili dal punto di vista della distribuzione di frequenza. Questo rende spesso necessario (a meno di variabili con un numero fisso di valori che possono assumere) la creazione di intervalli in cui valutare la distribuzione di frequenza. Infatti, variabili continue potrebbero assumere tutte valori diversi, nonostante il…

Metodi disponibili per leggere file testuali di dati statistici, con esempi

In C# e VB.NET esistono diversi metodi per leggere i file di testo, da cui è possibile ottenere gli stessi risultati attraverso specificazioni diverse. Rimane discrezione del programmatore decidere quale sia il metodo più adatto nelle diverse situazioni. I tre metodi principali sono: Hardcode; StreamerReader; TextFieldParse Il metodo hardcode è sicuramente quello che presenta la…

Elementi fondamentali della specifica CSV

In programmazione ed in statistica è fondamentale saper lavorare con dataset esterni. La prima cosa necessaria è saper importare correttamente diversi tipi di file all’interno del sistema in cui si sta lavorando. La maggior parte dei file contenenti dataset viene salvato attraverso l’estensione .csv. Il CSV, abbreviazione di comma-separated values, è un formato di file basato su file di…

La formula di Legendre e la sua utilità nelle applicazioni

In teoria dei numeri, l’identità di Legendre-de Polignac (o formula di Legendre), è una formula che fornisce l’esponente massimo di un numero primo p che divide il fattoriale n!. In altri termini, questa formula permette di ricavare una scomposizione, fissato un numero primo p, di un fattoriale nel seguente modo: n! = p^\upsilon R dove…

Algoritmi classici di manipolazione dei bit

Gli algoritmi di manipolazione dei bits permettono, in maniera elegante ed efficacie, di risolvere problemi come il trovare l’ultima cifra significativa di un numero rappresentato in binario (LSB, dall’inglese Least Significant Bit), oppure il contare il numero di setbit (ovvero bit pari a 1) in un numero qualsiasi codificato in binario. Queste domande sono spesso…

I principali operatori in VB.NET e C#

In informatica e programmazione, un operatore è un simbolo che specifica quale legge applicare a uno o più operandi, per generare un risultato. Gli operatori possono essere classificati in base al numero di operandi che accettano, ovvero in base al numero di dati su cui lavorano, o in base alle operazioni che svolgono e ad i risultati che forniscono. La…

Scomposizione della varianza nella regressione lineare

Quando si applica una regressione lineare, la devianza totale (TSS, dall’inglese “total sum of square”), che rappresenta la somma degli scarti dalla media al quadrato, può essere divisa in due fattori distinti: il primo, chiamato anche devianza non spiegata, rappresenta la varianza dei valori residui del modello, ovvero la devianza di ciò che il modello…

Regressione lineare

Quando si studiano due variabili è spesso interessante studiare se esiste una certa relazione che le leghi. Questo può portare a molteplici vantaggi, come ad esempio poter predire i valori di una conoscendo solo l’altra, o anche riuscire a controllare i valori di una variabile direttamente non controllabile attraverso variabili più facilmente controllabili. La relazione…

Tipi numerici a precisione arbitraria e la Struct BigInteger di System.Numerics

I tipi numerici a “precisione arbitraria” (conosciuti anche come interi a “precisione infinita” o bignum), permettono la rappresentazione del numero attraverso uno spazio mutevole di memoria, aumentando enormemente il range di rappresentazione del numero. L’unico limite si pone, infatti, per la finitezza della memoria del computer. Tuttavia, con 8 KB di memoria, si può arrivare a…

Gli algoritmi per il calcolo del fattoriale

Il fattoriale di un numero n, indicato con la simbologia n!, rappresenta il prodotto di tutti gli interi da 1 fino al numero n compresi, ovvero: \prod_{i = 1}^{n} i Il calcolo del fattoriale seguendo la formula canonica può rivelarsi essere molto lungo e molto esigente, dal punto di vista del costo computazionale.…

La struttura Try Catch e la gestione delle eccezioni in C# e VB.NET

In programmazione la gestione degli errori è il processo di risposta all’occorrenza di exceptions, che sono condizioni anomale o speciali che richiedono una gestione speciale. Queste eccezioni (o errori) vengono “lanciate” automaticamente dal compilatore quando si imbatte in problemi che interrompono la normale esecuzione del programma (come, ad esempio, overflow). In poche parole, quando si…

Coefficienti binomiali

In matematica, il coefficiente binomiale {n \choose k} è un numero intero non negativo definito dalla seguente formula: {n \choose k} = C_{n,k} = \frac{n!}{k!(n-k)!} Questo numero è dimostrato corrispondere alle combinazioni semplici di n elementi di classe k, che equivale a dire il numero di sottoinsiemi di k elementi estratti da un insieme…

Relazioni di ricorrenza per la covarianza

La covarianza tra due variabili statistiche X e Y, indicata con \sigma_{X,Y} è un indice di variabilità congiunta che fornisce una misura di quanto le due varino assieme, ovvero della loro dipendenza. Può essere calcolata solo su due insiemi con la stessa numerosità. è possibile costruire un indice relativo della covarianza, denominato indice di…

Convenzioni sui nomi nella programmazione

Quando si scrive un programma, è essenziale ricordare che potrebbe essere riletto numerose volte, ed eventualmente anche modificato. Si rende quindi necessario scrivere un codice facilmente leggibile da tutti, per poter comprendere cosa il codice fa in minor tempo. In questo contesto nascono le convenzioni sui nomi, che forniscono uno standard nella scrittura dei programmi.…

Calcolo della varianza

Come abbiamo già visto per la media, il calcolo delle statistiche di un campione può portare diversi problemi, sia perché, utilizzando le formule canoniche, è spesso necessario sapere in partenza il numero di elementi che si andrà a considerare, sia per le approssimazioni dovute alla rappresentazione con cifre finite dei numeri reali, che possono portare…

Liste e dizionari: differenze e similitudini

Per poter gestire più oggetti dello stesso tipo, abbiamo visto che è possibile utilizzare strutture come gli array. Tuttavia, essi hanno un limite che può complicare notevolmente il loro utilizzo. Infatti, bisogna dichiarare in precedenza il numero di elementi che verranno trattati, compito che a volte risulta impossibile, soprattutto quando si vanno a trattare dati…

Perdita di significatività e cancellazione catastrofica

La finitezza nella rappresentazione dei numeri reali all’interno di un computer può portare a diversi tipi di errori. Da una parte, la limitazione nella dimensione dei numeri può comportare errori quali overflow e underflow, ovvero quando il numero eccede il limite massimo o il limite minimo di rappresentazione della variabile in cui viene salvato (la dimensione…

Rappresentazione nel computer dei tipi interi e floating point

Ogni dato, indipendentemente dal suo tipo, viene memorizzato in un computer con una stringa binaria. Le differenze poi sono stabilite in fase di lettura, ovvero il modo in cui una sequenza viene letta determina il valore (ed il tipo) del dato stesso. In particolare, è possibile memorizzare due tipologie diverse di dati numerici: Integer e…

Array e strutture iterative For e Foreach

Quando si parla di Array (o Vettori) nell’informatica, ci si riferisce ad una struttura di dati contenenti più valori. Si può immaginare un array come una sorta di contenitore, le cui caselle sono dette celle (o elementi) dell’array stesso. Ciascuna delle celle si comporta come una variabile tradizionale; tutte le celle sono variabili di uno stesso tipo preesistente,…

Restanti Homework

Applicazione per il calcolo della media di tutti i numeri compresi tra due interi Questa applicazione, sviluppata sia in C# che in VB.net, prevede l’inserimento in input di due interi, uno massimo ed uno minimo, e il calcolo della media di tutti gli interi compresi tra questi due, estremi inclusi. Vengono inoltre visualizzati separati gli…

Secondo Homework

Applicazione avventura grafica La seconda applicazione sviluppata consiste in una breve avventura grafica, dove l’utente si muove all’interno di un dungeon e deve sconfiggere un boss finale. Per la flessibilità della gestione dei comandi input, questa applicazione è stata sviluppata solo in VB.net. Il codice è portato qui di seguito: Link all’applicazione su google drive.

Strutture condizionali

Le strutture condizionali, anche dette strutture di controllo “alternative”,  consentono di specificare che un dato blocco di istruzioni venga eseguito “(solo) se” vale una certa condizione. Le principali e più utilizzate strutture condizionali sono: Struttura if-then e if-then-else Struttura alternative case Queste due strutture sono sostanzialmente molto simili. La struttura if-then (se-allora) può essere parafrasata…

Strutture Do, While in VB.net e C#

In programmazione, esistono diversi tipi di strutture di controllo iterative che consentono di specificare che una data istruzione (o blocco di istruzioni) deve essere eseguita ripetutamente sotto delle condizioni che, se false, ne consentono l’uscita. Le principali strutture di controllo iterative sono: Ciclo for Ciclo while Ciclo loop-until Il ciclo while, in particolare, può presentarsi…

Algoritmo di Knuth

Uno dei principali problemi che si riscontra nel calcolo degli indici da dati online, è il fatto che non si ha una conoscenza preliminare del numero di dati che verranno utilizzati. Un altro importante errore che potrebbe comportare un metodo “classico” è la Catastrophic Cancellation, ovvero la cancellazione di cifre significative. Questo comporta che per molti…

Reference type e value type

In Visual Basic vengono trattati solo due diversi types: i reference type e i value type. La principale (e fondamentale) differenza consiste nel fatto che i value type allocano una porzione di memoria direttamente riempita con il valore d’interesse, mentre i reference type contengono contengono un puntatore ad un oggetto (e quindi al relativo valore).…

Visual Studio e altre piattaforme di sviluppo

Microsoft Visual Studio (più comunemente detto Visual Studio) è un ambiente di sviluppo integrato (IDE) sviluppato da Microsoft. Un IDE è un software che supporta i programmatori il fase di sviluppo del codice, segnalando errori di sintassi direttamente in fase di scrittura, oltre a tutta una serie di strumenti e funzionalità di supporto alla fase di…

Primo Homework

Quiz Matematico Il primo programma è una sorta di piccolo quiz matematico. Qui è presentato scritto sia in C# che in VB.NET. È possibile scaricare i file del codice dei due esercizi nei link presenti dopo i riquadri contenenti il codice. Soluzione in C# Link per scaricare il programma in C#. Soluzione in VB.NET Link…

Principali differenze tra C# e VB.NET

Un linguaggio di programmazione è un linguaggio formale che specifica un insieme di istruzioni che possono essere usate per produrre dati in output. Di solito si utilizza per il controllo del comportamento di una macchina. Esistono moltissimi linguaggi di programmazione, ognuno differente dall’altro, che possono essere suddivisi in diverse categorie di linguaggi: imperativi: propongono comandi…

I principali strumenti finanziari

Con strumento finanziario si intende una particolare categoria di prodotti finanziari considerati mezzi di investimento di natura finanziaria. La definizione di strumenti finanziari si fonda si fonda essenzialmente sul concetto di relazione di investimento. Rappresentano beni economici non in senso materiale, né in senso immateriale, ma come rapporti bilaterali costruiti attorno alla distribuzione di risorse finanziarie…

I mercati finanziari

I mercati finanziari sono i “luoghi” dove si effettuano le operazioni di contrattazione e scambio di strumenti finanziari di vario genere: azioni, obbligazioni, derivati etc. “Luogo” non è da intendere come ambiente fisico, ma bensì come piattaforme informatiche dove si incrociano la domanda e l’offerta. I mercati possono essere divisi secondo diversi fattori, quali: natura;…

La figura del “Quant”

Il quant, abbreviazione di “quantitative analyst”, è una figura professionale specializzata nell’applicazione di metodi matematici e statistici a problemi in ambito finanziario. Pur nascendo contemporaneamente ai mercati finanziari, questa figura è stata resa nota al di fuori di questi ambienti solo all’inizio del ventunesimo secolo grazie al libro “My life as a Quant” di Emanuel…

Presentazione

Non mi fido molto delle statistiche, perché un uomo con la testa nel forno acceso e i piedi nel congelatore statisticamente ha una temperatura media. Charles Bukowski Questo blog raccoglie piccole ricerche di ambito statistico-finanziario e del codice informatico che le supporta. È realizzato nell’ambito del corso di laurea magistrale in Scienze Statistiche. Gli articoli…


Segui il mio blog

Ottieni i nuovi contenuti, spediti direttamente nella tua casella di posta (tanto è gratis).