giovedì 9 aprile 2015

Catastrophic Cancellation


La catastrophic cancellation è un effetto indesiderabile nei calcoli che utilizzano numeri a virgola mobile. Essa si verifica quando un'operazione su due numeri aumenta l’errore relativo più di quanto incrementi l’errore assoluto, ad esempio nel sottrarre due numeri quasi uguali.
Il risultato consiste nella perdita inaccettabile del numero di cifre significative. Le cause di tale inconveniente non sono da attribuire all’operazione di sottrazione effettuata dalla macchina, ma dipendono dagli errori già presenti nei due operandi e da quelli introdotti dal processo di troncamento effettuato dal calcolatore (in quanto potrebbe succedere che per poter memorizzare i numeri in memoria il calcolatore stesso debba troncare il numero dopo un tot stabilito di cifre dopo la virgola). L’operazione di sottrazione si limita ad amplificare ancora di più questi errori. L’esempio seguente dimostra la perdita di significatività per un numero decimale con 10 cifre significative.
Si consideri il numero decimale

0.1234567891234567890

Una rappresentazione a virgola mobile di questo numero su una macchina che supporta 10 cifre significative sarebbe

0.1234567891

Possiamo notare che la differenza tra i due numeri è molto piccola.

Infatti, calcolando:

0.1234567891234567890 − 0.1234567890 = 0.0000000001234567890

e

0.1234567891 − 0.1234567890 = 0.0000000001

La  “perdita di significato” del risultato è data dalle cifre “elise” le quali, invece, in certi ambiti potrebbero essere essenziali.

Per ovviare alla catastrophic cancellation bisogna controllare la stabilità di un algoritmo, cioè vedere se un algoritmo amplifica poco (relativamente alle caratteristiche del calcolatore) gli errori di arrotondamento introdotti nelle singole operazioni.

Fonti: http://it.wikipedia.org/

Rappresentazione grafica della serie storica dei prezzi, della running mean e della moving average

Obiettivo: Rappresentare graficamente la serie storica dei dati relativi ai post precedenti (nel nostro caso quelli dell' IBM) con le rispettive medie running e medie mobili.
I dati a cui ci riferiamo sono i "Close", cioè i prezzi di chiusura.

Il mio form sarà composto nel modo seguente:

  1. Button_Click
  2. PictureBox1
In seguito, riporto l'implementazione del codice in VB.NET:
























































































Output:
 
  • Serie storica dei prezzi "Close"
  • Running Mean
  • Moving Mean
  

Principali strumenti finanziari e Strategie di trading


ETF

Cos'è un ETF?

ETF è l’acronimo di Exchange Traded Fund, un termine con il quale si identifica una particolare tipologia di fondo d’investimento con due principali caratteristiche:
  • è negoziato in Borsa come un’azione;
  • ha come unico obiettivo d’investimento quello di replicare l’indice al quale si riferisce (benchmark) attraverso una gestione totalmente passiva.
Un ETF riassume in sé le caratteristiche proprie di un fondo e di un’azione, consentendo agli investitori di sfruttare i punti di forza di entrambi gli strumenti:
  • diversificazione e riduzione del rischio proprie dei fondi;
  • flessibilità e trasparenza informativa della negoziazione in tempo reale delle azioni.


Date le sue caratteristiche, l’ETF si presta a varie modalità d’impiego: investimento di medio / lungo termine, trading anche di tipo intraday e vendita allo scoperto al fine di prendere una posizione ribassista sull’indice benchmark. La possibilità di diversificare facilmente il portafoglio, la precisione con cui viene replicato l’indice benchmark e i bassi costi di gestione fanno si che l’ETF sia particolarmente adatto anche alla costruzione di un piano di accumulo (PAC) attraverso versamenti periodici, anche di piccola entità, effettuati dai singoli investitori.
Non deve invece essere dimenticato che gli ETF sono ovviamente esposti al rischio che le azioni, le obbligazioni e gli altri strumenti in cui è investito il loro patrimonio perdano valore.

 ETFs (ETF strutturato):

Cos'è un ETFs?
Gli ETF strutturati sono degli OICR cioè dei fondi o delle Sicav negoziabili in tempo reale come delle azioni gestiti con tecniche volte a perseguire rendimenti che non sono solo in funzione dell’andamento del mercato a cui fanno riferimento, ma che possono essere volte:
  • a partecipare in maniera più che proporzionale all’andamento di un indice (ETF a leva)
  • a partecipare inversamente ai movimenti del mercato di riferimento (ETF short con o senza leva)
  • alla protezione del valore del portafoglio pur partecipando agli eventuali rialzi dell’indice di riferimento (ETF protective put)
  • alla realizzazione di strategie d’investimento più complesse come ad esempio la strategia cosiddetta buy-write o covered call che prevede l’assunzione di una posizione lunga sul benchmark e la contestuale vendita di un opzione call sull’indice stesso con strike out of the money del 5%
L’elemento che accomuna gli ETF strutturati agli ETF è la politica d’investimento che si può sinteticamente definire “passiva” in considerazione del fatto che una volta definito il modello matematico in base al quale il patrimonio sarà gestito, la discrezionalità lasciata al gestore è limitata. Come per gli ETF, le quote possono essere create e riscattate continuamente da parte degli intermediari autorizzati (authorised participant), assicurando che il prezzo di mercato sia sempre allineato al NAV del fondo (di conseguenza il rischio di acquistare un ETF a premio o di venderlo a sconto è ridotto, tuttavia questo rischio non può essere eliminato) e garantendo che l'ETF strutturato sia tanto liquido quanto il mercato di riferimento.

FUTURES

I futures sono contratti a termine standardizzati per poter essere negoziati facilmente in una borsa valori.
Sono strumenti molto standardizzati: ogni elemento del contratto è definito in un contratto standard, e le controparti non possono modificarlo. Acquistare futures significa impegnarsi ad acquistare alla scadenza ed al prezzo prefissati l'attività sottostante. Questa può essere sia un'attività reale, ad esempio una commodity(grano, oro, metalli, caffè, ecc.) sia un'attività finanziaria. In quest'ultimo caso si parla di financial futures, i cui sottostanti possono essere ad esempio una valuta (currency futures) od un indice borsistico.
La standardizzazione consiste nella definizione del taglio unitario, della scadenza contrattuale e della modalità di negoziazione attraverso la Cassa di compensazione. La peculiarità di essere standardizzati rende questi contratti interscambiabili tra loro. Ciò rende possibile stipulare un contratto  di segno opposto all'originale. In questo modo, verrà evitata la consegna dell'attività sottostante il contratto. L'acquisto di futures corrisponde ad una aspettativa di rialzo dell'attività sottostante; la vendita, invece, sottende un'aspettativa al ribasso. Se le intenzioni fossero speculative, la vendita del futures dovrà essere effettuata prima della scadenza contrattuale; se, invece, le intenzioni sono di coprire un futuro acquisto/vendita della commodity sottostante, il futures permette una copertura senza rischi di oscillazioni del prezzo, e si aspetterà la scadenza prevista per provvedere all’acquisto/vendita della commodity stessa.

OPZIONI

Le opzioni sono contratti finanziari che danno al compratore il diritto, ma non l’obbligo, di acquistare una data quantità di una attività finanziaria sottostante (titoli, indici, valute etc...) ad un determinato prezzo di esercizio chiamato “strike” ad una data specifica o entro tale data. Nel caso in cui l’opzione possa essere esercitata solo alla scadenza avremo opzioni cosiddette “europee”, mentre le opzioni “americane” danno al possessore la possibilità di esercizio in qualunque momento entro la data di scadenza.
Opzione Call
Garantisce al possessore il diritto di ricevere a scadenza (o entro la scadenza) e ad un prezzo prefissato il sottostante, oppure quando non possibile (ad esempio per opzioni su indici) il corrispettivo in denaro. Ovviamente l’esercizio avrà senso solo se il prezzo del sottostante sarà superiore allostrike ed il profitto realizzato sarà pari alla differenza tra il prezzo di mercato e lo strike.
g1
Il grafico sintetizza il profilo di profitti e perdite connesso con l’uso di opzioni call. L’asse orizzontale del grafico indica il prezzo del sottostante: verso destra vi è un aumento di prezzo, verso sinistra, cioè verso l’origine degli assi, i prezzi calano.
L’asse verticale indica invece i profitti (o le perdite) dell’acquirente dell’opzione. Come già detto l’opzione acquisirà senso solo se il prezzo di mercato del sottostante sarà maggiore del prezzo di esercizio. Dal momento che l’acquisto della call ha un costo (è il premio che si deve concedere a chi scrive l’opzione, a chi cioè accetta di garantire all’acquirente il diritto di acquistare il sottostante al prezzo prefissato) il grafico del payoff della call ha partenza in territorio negativo. In caso di ribasso dei prezzi, il valore della call tenderà a zero e la massima perdita che l’investitore sosterrà sarà il premio pagato.
Questo strumento risulta ottimo per coloro i quali vogliono scommettere sul rialzo del mercato senza correre il rischio - in caso di ribasso - di subire le perdite in conto capitale connesse con il possesso diretto del sottostante. È utile anche per gli investitori che desiderano acquistare il titolo sottostante, ma vogliono differire nel tempo le uscite finanziarie che l’acquisto diretto del titolo comporterebbe.

Opzione Put
Garantisce al possessore il diritto di vendere a scadenza il sottostante ad un prezzo prefissato. In questo caso l’esercizio avrà senso solo se il prezzo del sottostante sarà inferiore allo strike; il profitto realizzato ammonterà alla differenza tra lo strike e il prezzo di mercato.
g2

La Put è uno strumento che permette di guadagnare se il mercato scende. Il compratore di opzioni put vuole scommettere sul ribasso del mercato senza i costi connessi con lo “short selling” (vendita allo scoperto, cioè di titoli che non si possiedono) né le perdite subite se il mercato va in direzione opposta a quella sperata (se i titoli si apprezzano sarà oneroso ricoprirsi).
Inoltre la put è spesso utilizzata da chi desidera proteggere il proprio portafoglio da ribassi del mercato. Acquistare un titolo e la relativa una putgarantisce di ottenere i guadagni in conto capitale sul titolo in caso di mercato in salita e al tempo stesso di evitare di perdere se il mercato dovesse scendere. Infatti in questo secondo caso le perdite sul titolo verrebbero bilanciate dall’apprezzamento dell’opzione; la massima perdita verrebbe comunque limitata al valore dello strike, ovvero al valore a cui il detentore della put ha il diritto di vendere i suoi titoli.
Questa strategia, chiamata “put protective strategy” è utilizzata per evitare che il portafoglio scenda sotto una soglia minima, è una sorta di assicurazione contro il ribasso con un costo pari al premio pagato per l’acquisto della put. Da notare che lo stesso profilo di ritorni si avrebbe con l’acquisto di un’opzione call con sottostante, strike e scadenza uguali.
In sintesi, le posizioni “lunghe” sulle opzioni consentono di prendere posizione scommettendo sul rialzo o sul ribasso del mercato con la possibilità di guadagno illimitato ed il rischio di una perdita limitata al prezzo del premio pagato.
Ma qual è il profilo di perdite e profitti per il venditore delle opzioni?
Bisogna sottolineare che mentre l’acquirente di opzioni a scadenza (o entro la scadenza per le opzioni americane) ha la facoltà di non esercitare il diritto (e da qui deriva il limite alle perdite che si possono subire) il venditore ha sempre l’obbligo di onorare l’impegno che l’opzione che ha scritto prevede.
Nel caso del venditore di una call, il payoff sarà il seguente:

imm3

Il profitto fisso iniziale (il premio incassato) va diminuendo all’aumentare del prezzo del sottostante: il venditore dell’opzione spera dunque che il mercato resti fermo o cali. A fronte di un profitto immediato limitato, la perdita è potenzialmente illimitata.
Nel caso della put:
im4
In questo caso, invece, l’erosione del premio iniziale incassato si ha se il prezzo del sottostante cala: il massimo profitto si avrà se il prezzo resterà costante o salirà. Anche per il venditore della put il profitto sarà limitato, mentre la perdita “quasi” illimitata (il sottostante non può infatti assumere valore negativo, la massima perdita si avrà se questo varrà zero).

OBBLIGAZIONI

Che cosa sono?

Le Obbligazioni sono un titolo di credito che rappresenta una parte di debito acceso da una società o da un ente pubblico per finanziarsi. Garantisce all'acquirente il rimborso del capitale più un tasso di interesse.
Le obbligazioni sono emesse allo scopo di reperire, direttamente tra i risparmiatori e a condizioni più vantaggiose rispetto a quelle dei prestiti bancari, capitali da investire. Il vantaggio per la società emittente deriva da tassi di interesse solitamente inferiori rispetto a quelli che sarebbe costretta a pagare rivolgendosi ad un finanziamento bancario di eguale scadenza, mentre l'investitore beneficia di un tasso maggiore rispetto a quello di un investimento in liquidità e ha la possibilità di smobilizzare il proprio investimento sul mercato secondario.
Il detentore di titoli di debito di una società, pur assumendosi il rischio d'impresa a differenza dell'azionista, non partecipa all'attività gestionale dell'emittente, non avendo diritto di voto nelle assemblee. In compenso, tuttavia, la remunerazione del capitale di rischio azionario è subordinata al preventivo pagamento di interessi e rimborsi agli obbligazionisti.
Esistono, tuttavia, delle obbligazioni (obbligazioni convertibili) che possono essere convertite in azioni della società emittente, o di una società appartenente allo stesso gruppo. A seguito della conversione si cessa di essere obbligazionista diventando azionista ed acquistando, quindi, tutti i diritti relativi.
La cedola è l'interesse pagato durante la vita del titolo: può avere periodicità trimestrale, semestrale, o annuale. L'interesse può essere fisso (stabilito a priori) o variabile (solitamente indicizzato al Libor o all'Euribor maggiorato di uno spread o ad altri tassi ufficiali e di norma aggiustato semestralmente). Spesso, per incentivare la sottoscrizione, l'emissione avviene sotto la pari, cioè il valore nominale (ovverosia il valore che verrà rimborsato a scadenza) è maggiore rispetto al prezzo di sottoscrizione (che è quello che si paga per acquistare il titolo): in questo modo aumenta il rendimento.
I titoli detti "zero coupon", invece, non pagano interessi sotto forma di cedole durante la loro vita ed il rendimento è dato unicamente dalla differenza tra il valore nominale ed il prezzo di sottoscrizione. Molto più raramente le obbligazioni vengono prezzate alla pari (valore di emissione e valore nominale uguali) o sopra la pari (valore nominale minore del prezzo di emissione). Per garantire i sottoscrittori dal rischio di insolvenza dell'emittente, la legge prevede che le obbligazioni non possano essere emesse per un importo superiore al capitale sociale della società emittente, versato ed esistente secondo l'ultimo bilancio approvato; si può derogare a questo principio generale solamente se l'emissione è accompagnata da garanzie reali.

STOCK SPLIT

Lo Stock Split è un frazionamento azionario che non comporta alterazioni nella capitalizzazione di Borsa di una società e quindi nel suo valore sul mercato. Quello che varia in presenza di uno stock split è invece il numero delle azioni disponibili sul mercato e il loro valore unitario.
Se, per esempio, una società ha un capitale di Borsa suddiviso in un milione di azioni del valore di 100 euro ciascuna, la sua capitalizzazione sarà pari a 100 milioni di euro. Supponiamo che il management decida un frazionamento di 10 per 1 del capitale azionario, si avrà di conseguenza che i titoli varranno un decimo del proprio valore originale e dunque 10 euro ciascuno. Il numero delle azioni, al contrario, si moltiplicherà per 10 volte e quindi sul mercato ci saranno 10 milioni di azioni. Questo valore, moltiplicato per quello delle nuove azioni, restituisce comunque la capitalizzazione originale di 100 milioni di euro. Il singolo azionista che avesse inizialmente 10 azioni del valore di 100 euro ciascuna, se ne troverà (gratuitamente) in portafoglio 100 del valore di 10 euro ciascuna.

Questo genere di operazioni sono in genere promosse per favorire una maggiore liquidità dei titoli e renderli quindi appetibili a una più ampia platea di investitori. Non a caso, infatti, lo stock split viene spesso promosso dopo forti rialzi di un’azione, quando il valore del singolo titolo sale notevolmente rendendo più oneroso l’investimento nel singolo titolo.
Esiste anche il caso opposto, il cosiddetto reverse stock split, un’aggregazione azionaria che genera invece titoli di maggiore valore. La situazione è in questo caso speculare. Supponiamo che una società abbia un capitale di quattro milioni di euro suddiviso in 20 milioni di titoli del valore di 0,20 euro. Un reverse stock split 1 per 10 aggregherà le azioni in pacchetti da dieci titoli. Ciascuna nuova azione avrà dunque un valore di 2 euro e il numero complessivo delle azioni sarà ridotto a 2 milioni di titoli per una capitalizzazione complessiva ancora invariata a 4 milioni di euro. Il singolo azionista che inizialmente avesse avuto 10 azioni del valore di 0,2 euro ciascuna, se ne troverà in portafoglio una del valore di 2 euro, per un investimento complessivo ancora invariato a 2 euro. Questo genere di operazioni avviene, come prevedibile, quando un titolo si deprezza eccessivamente.

Strategie di trading:


1) ARBITRAGGIO

Con il termine arbitraggio si indica un'operazione che consente di ottenere un profitto certo senza che il soggetto che la pone in essere corra alcun rischio. 
Solitamente l'arbitraggio consiste nell'acquisto/vendita di un bene o di un'attività finanziaria e in una contemporanea operazione di segno opposto sullo stesso strumento negoziato su un mercato diverso dal precedente, oppure su uno strumento diverso, ma avente le stesse caratteristiche del primo in termini di payout. Si sfruttano in questo modo le differenze di prezzo al fine di ottenere un profitto. L'operazione è ovviamente possibile se il guadagno che si ottiene supera i costi per il trasferimento del bene da un mercato all'altro.
Esiste l’opportunità di effettuare operazioni di arbitraggio ogni volta che una stessa attività è contrattata su due mercati diversi a prezzi diversi o, nel caso in cui due attività siano perfettamente sostituibili tra loro, con identico payout.
L'aumento di rapidità di comunicazione fra un mercato e l'altro (frutto della interconnessione dei mercati) ha limitato drasticamente le asimmetrie informative e, di conseguenza, le possibilità di arbitraggio. Quest'ultimo infatti risulta oggi meno frequente che in passato.

Affinchè l'operazione possa realizzarsi è necessario che gli strumenti finanziari oggetto di arbitraggio siano perfettamente sostituibili. Questi devono essere strumenti identici ma scambiati su mercati diversi oppure strumenti diversi ma aventi lo stesso payout (ad es. un paniere di titoli azionari ed il future avente lo stesso paniere come sottostante) o ancora strumenti che possono essere replicati sinteticamente (triangolazioni sul mercato valutario).

2) BASIS TRADING

Essa è una strategia di arbitraggio che consiste nell'acquisto e nella contemporanea vendita di strumenti finanziari simili. Di frequente impiego nel mercato futures con riferimento al quale consiste nella vendita (acquisto) di un contratto futures e nell'acquisto (vendita) dell'attività (o del paniere di attività) sottostante il futures. Strategia di arbitraggio comprensiva di una posizione corta in future e della corrispettiva posizione lunga in cash, caratterizzata da un costo complessivo – dato dalla somma del prezzo della posizione cash e dal cost of carry della posizione in future – inferiore al prezzo del future. Il basis trading è effettuato quando l'investitore ritiene che i due strumenti non siano correttamente prezzati in termini relativi (cioè l'uno rispetto all'altro). La strategia è profittevole se il prezzo di acquisto (vendita) dell'attività sottostante e il costo del suo finanziamento fino alla scadenza sono inferiori (superiori) rispetto al prezzo del futures.


Oggetti principali per la grafica e simulazione di palline in una PictureBox

In questo post andremo ad analizzare gli oggetti principali necessari per poter creare animazioni di qualsiasi tipo, grafici e immagini.

  1. PictureBox: è un oggetto nel quale possiamo inserire le nostre immagini o i nostri grafici.
  2. Bitmap: è una rappresentazione di una immagine o di un grafico su una finestra (picturebox). Per ottenere un bitmap ci sono due modi: è possibile creare un nuovo bitmap oppure utilizzarne uno già esistente. Per utilizzarne uno già esistente, basta inizializzare una nuova istanza dell'oggetto Bitmap passandogli come parametro l'immagine esistente: Bitmap(image).Altrimenti, bisogna creare una  istanza dell'oggetto passandogli come argomenti le dimensioni del bitmap: Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height).
  3. Graphics: questo oggetto rappresenta l'area di disegno ed è utilizzato per la creazione di immagini grafiche

In seguito, riporto l'implementazione in VB.NET di una serie di "palline" che si muovono all'interno di una Picturebox:










































































































In seguito, riporto l'output del programma.
Ad ogni click sul bottone si generano tre palline, le quali si muovono all'interno della PictureBox battendo contro la superficie dei bordi.


mercoledì 8 aprile 2015

Apllicazione dell'algoritmo di Knuth per il calcolo della media e della varianza

Consideriamo i dati relativi alla lettura e conversione di un file di dati finanziari.
A tale riguardo dobbiamo calcolare la media e la varianza degli "Open", seguendo l'algoritmo di Knuth enunciato in Algoritmo di Knuth per il calcolo di media e varianza.

VB.NET:








Ciò che dobbiamo fare è aggiungere questa parte di codice a quello già esistente( nel ciclo do while):



















C#:









 Dobbiamo aggiungere questa parte di codice nel ciclo while:























Metodi e Oggetti utilizzati:
  • Parse: tramite l'istanza dell'oggetto "double" posso richiamare il metoto "Parse" per convertire un array di stringhe in un tipo di dato double.
  • Cdbl: è un metodo che converte un array di stringhe in un tipo di dato double.
  • Replace: è un metodo che converte un carattere specifico con uno scelto dall'utente (nel nostro caso, nel nuovo array di stringhe "dividi[1]", il carattere '.' è stato sostituito con il carattere ','

Algoritmo di Knuth per il calcolo di media e varianza

Media:
Prendiamo in considerazione la media aritmetica:

Se questa formula la poniamo in forma di algoritmo per eseguirla con un software apposito, possiamo andare incontro a diverse anomalie. Infatti, se i dati osservati sono particolarmente numerosi (ad esempio dati di grandi imprese o di banche), il calcolo della media semplice porta a risultati inefficienti  con tempi di calcolo e memoria abbastanza elevati e, a lungo andare, i risultati possono rivelarsi totalmente sbagliati a causa del fenomeno della catastrophic cancellation.
Per rimediare a questo problema, utilizzeremo l'algoritmo di Knuth.
L'informatico Donald Knuth ha proposto delle formule alternative per media e varianza che permettono di calcolare queste grandezze con una complessità computazionale ridotta.

Per calcolare la media con l'algoritmo di Knuth si applica una media ponderata che permette di aggiornare l'informazione ricavata fino al passo n-1 con quella fornita dall'ennesimo dato immesso:

  • Calcolo della media con l'algoritmo di Knuth:

Da tale risultato si è sviluppato un algoritmo che permetta di calcolare la media in maniera sequenziale ovviando alla problematica della catastrophic cancellation.

Varianza:
Prendiamo in considerazione la varianza:

Poichè la varianza indica la concentrazione, allora:

  • Minore è la varianza e maggiore è la concentrazione dei dati attorno al valore medio
  • Maggiore è la varianza e più i dati si disperdono attorno al valore medio.

Anche in questo caso, come nella media, se poniamo tale formula in forma algoritmica possiamo andare incontro a diverse anomalie.
Anche per la varianza, Knuth ha proposto un algoritmo che permette di evitare di trovarsi di fronte al fenomeno della catastrophic cancellation:

  • Calcolo della varianza con l'algoritmo di Knuth:


Codice algoritmo di Knuth (running algorithm) :


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


Esistono tanti altri algoritmi per il calcolo della media e della varianza.
Prendiamo in considerazione due algoritmi:

  1. Algoritmo Naive
  2. Two Step Algorithm
1.

Se volessimo utilizzare quest'algoritmo per calcolare la varianza per l'intera popolazione, basta modificare la variabile variance in questo modo:

variance= (Sum_sqr - (Sum*Sum)/n)/N

Per N abbastanza grande, i due valori Sum_sqr e (Sum*Sum)/n sono approssimativamente uguali e questo porta ad avere una varianza approssimativamente uguale a 0 e quindi ad una poca precisione del risultato.

2.

Due step per il calcolo della varianza:
  1. Calcolo della media del campione:     \bar{x}= \frac{1}{n}\sum_{i=1}^{N}x_{i}
  2. Calcolo della somma dei quadrati della varianza: s^{2}=\frac{1}{n-1} \sum_{i=1}^{N}\left (x_{i}- \bar{x}\right)


Nella pratica è poco conveniente utilizzare questi due algoritmi, poichè è facile incorrere ad errori computazionali come la catastrophic cancellation, la quale prevede la cancellazione di molte cifre decimali. 
Per tale motivo, preferiamo utilizzare l'algoritmo del calcolo della media e della varianza di Knuth.



lettura e conversione di un file di dati finanziari

Obiettivo:

  1. Date: rappresenta la data dell'apertura e della chiusura dei prezzi
  2. Open: rappresenta il prezzo di apertura
  3. Close: rappresenta il prezzo di chiusura

  • Dividere la data nel seguente modo:
  1. Anno
  2. Mese
  3. Giorno

  • Scrivere su un nuovo file contenente la data splittata, gli open e i close. 


Struttura Form:

  1. Button1_Click: "Open"
  2. Button2_Click: "Save"
  3. TextBox1: visualizza il percorso del file che si vuole aprire
  4. TextBox2: visualizza il percorso del nuovo file che si vuole salvare
  5. Button3_Click: "Execute"
  6. RichtextBox1: visualizza l'output

Di seguito riporto il codice in VB.NET:






 Output:


Come possiamo notare, sulla RichTextBox vengono visualizzati i dati relativi a Date, Open e Close.

Metodi e Oggetti utilizzati:

  • OpenFileDialog: tramite questo oggetto, con il metodo showDialog() visualizziamo la finestra che ci permette di selezionare il file di interesse.
  • SaveFileDialog:  tramite questo oggetto, con il metodo showDialog() visualizziamo la finestra che ci permette di salvare il file di interesse, scegliendo un opportuno percorso.
  • Split: Restituisce un vettore di stringhe richiedendo come parametro il carattere da divididere(splittare).Il nuovo vettore conterrà i dati splittati secondo quel determinato carattere(nel nostro caso il carattere ",").
  • StreamReader: Ci permette di leggere il file desiderato,
  • StreamWriter: Ci permettere di scrivere su un file.
  • TryParseExact: Questo metodo dell'oggetto Date ci permette di dividere la data in anno,mese e giorno.
Di seguito riporto il codice in C#: