Per Value Type si intende la tipologia di dati in cui la variabile stessa è la locazione di memorie del dato. Quando si parla di Reference Type, invece, si intende che la variabile in questione rappresenta un puntatore del dato: si utilizza solo per dati molto grandi, difficili da trattare.
Tra le Value Type ricordiamo le variabili
Int
Double
Decimal
DateTime
TimeSpan
Per quanto riguarda le Reference Type, invece, le variabili più utilizzate sono:
Char
String
Supponiamo di introdurre due variabili, che chiameremo S_1 e S_2. Se uguagliassi S_1 a S_2 nella Value Type i valori relativi alla seconda variabile verrebbero copiati nella prima. Tuttavia, se provassimo ad applicare la stessa uguaglianza nella Reference Type non staremmo più copiando i valori di S_2 in S_1 ma renderemmo semplicemente il riferimento della prima variabile uguale a quello della seconda: essi punteranno alla stessa allocazione di memoria.
Prendendo in esame il linguaggio C#, invece, possiamo vedere come esso presenta due categorie di tipi, il tipo valore ed il tipo riferimento (una terza categoria è costituita dal tipo puntatore, utilizzabile solo in codice unsafe, e che va aldilà degli scopi del testo). I tipi valore sono così chiamati perché le variabili contengono direttamente i dati, cioè dei valori, mentre le variabili di tipi riferimento contengono appunto solo un riferimento a questi dati. Con i tipi di riferimento, una variabile contiene l’indirizzo in memoria dell’oggetto, è quindi possibile che due differenti variabili facciano riferimento allo stesso oggetto, e di conseguenza operando su una delle due, i cambiamenti sull’oggetto saranno riflesse anche sull’altra variabile.
Per quanto riguarda la stesura dei codici, la scelta di utilizzare VB.Net o C# non comporta molte differenze. Esiste, infatti un’equivalenza tra questi due linguaggi dimostrata dal fatto che per entrambi si verifica una traduzione in uno strato intermedio del software detto Mc Low Microsoft Intermediate Language che verrà successivamente tradotto in linguaggio macchina. Quindi, dal punto di vista prestazionale questi due linguaggi sono equivalenti
A livello di preferenze personali, invece, esistono delle differenze tra VB.Net e C#:
VB.Net è nato in un ambiente totalmente visuale mentre C# vi è stato portato in un secondo momento. Questo spiega perché VB.Net sia maggiormente integrato nell’ambiente visuale, riuscendo anche a sviluppare delle forme di interazione con gli oggetti visuali più potenti rispetto a C#. Questa sua particolarità ha fatto in modo che, almeno tra i principianti in materia di programmazione, si sia sviluppata una propensione all’utilizzo di VB.Net rispetto a C#.
VB.Net si definisce “case insensitive”: non fa distinzione tra lettere maiuscole e minuscole.
Il linguaggio C# ricorre all’utilizzo del “;” come delimitatore mentre VB.Net chiede semplicemente che dopo ogni istruzione si vada accapo.
Scelta delle parole chiave: nel linguaggio C# si utilizza “this” mentre in VB.Net si usa “Me”.
Presenza della clausola “Handles” in VB.Net per realizzare l’associazione tra l’evento e il codice dell’evento mentre in C# si usa una riga di codice (si può vere, tuttavia, come anche nel linguaggio VB.Net si può sostituire la parola chiave standard con una riga di codice)
Sebbene C # e VB.net siano sintatticamente molto diversi, le analogie tra questi due linguaggi di programmazione sono molteplici. Essi infatti sono stati sviluppati da Microsoft affinché facessero parte della stessa piattaforma di sviluppo .NET Framework. Sono entrambi sviluppati, gestiti e supportati dallo stesso team di sviluppo linguistico di Microsoft. Sebbene ci siano alcune differenze nei costrutti di programmazione , le loro differenze sono principalmente sintattiche. Infine, entrambi i linguaggi fanno riferimento alle stesse Classi di base di .NET Framework per estenderne le funzionalità. Di conseguenza, con poche eccezioni, un programma scritto in entrambe le lingue può essere eseguito attraverso un semplice convertitore di sintassi per tradurlo nell’altra. Esistono molti prodotti open source e disponibili in commercio per questo compito. Le uniche differenze fondamentali tra le lingue si possono trovare nell’implementazione delle interfacce e nella dichiarazione, raccolta e gestione degli eventi. Sebbene entrambi i linguaggi siano linguaggi di programmazione di alto livello, VB.net mantiene un livello di astrazione leggermente superiore per alcuni aspetti. Dal punto di vista sintattico, questi linguaggi di programmazione presentano numerose differenze che vengono esaminate nel sito corrispondente al seguente link: https://sites.harding.edu/fmccown/vbnet_csharp_comparison.html
Microsoft Visual Studio (o più comunemente Visual Studio) è un ambiente di sviluppo integrato multilinguaggio sviluppato da Microsoft che attualmente supporta la creazione di progetti per varie piattaforme, tra cui anche Mobile e Console. È possibile creare ed utilizzare estensioni e componenti aggiuntivi. Visual Studio, nelle sue ultime versioni da quando è nata la piattaforma .NET, supporta diversi linguaggi di programmazione tra cui C#,VISUAL BASIC.NET e C++
Visual Studio, nelle sue ultime versioni da quando è nata la piattaforma .NET, supporta diversi linguaggi di programmazione tra cui C#,Visual basic.net e C++. Nelle passate edizioni era disponibile anche il supporto a J#. Visual Studio è incompatibile col linguaggio Java da cui comunque il linguaggio J# aveva preso forte ispirazione.
Gli strumenti finanziari rientrano nella più ampia categoria dei ‘prodotti finanziari’, ovvero mezzi di investimento economici. Nei prodotti finanziari sono compresi anche i mezzi di pagamento, che però non sono considerati strumenti finanziari. Nella letteratura finanziaria il concetto indica qualsiasi contratto finalizzato al trasferimento di denaro nello spazio, attraverso assegni e carte di credito, e nel tempo, attraverso depositi bancari, azioni, mutui, obbligazioni, ecc. Tra gli strumenti finanziari più importanti troviamo:
le azioni e gli altri titoli rappresentativi di capitale di rischio;
le obbligazioni, i Titoli di Stato e gli altri titoli di debito negoziabili sul mercato dei capitali;
Il Quantitative Analyst, in gergo finanziario “quant“, è una figura professionale specializzata nella applicazione della metodologia matematica e statistica a problemi di gestione finanziaria e di rischio. Il suo ruolo è dunque quello di cercare di replicare e prevedere, tramite tecniche di analisi finanziaria, il comportamento del mercato.
Le principali aree di lavoro in cui opera un quant sono: strategie di trading, ottimizzazione di portafogli, pricing di derivati, risk management, analisi di credito, ALM (asset-liability management), pricing di azioni, gestione di portafogli.
Tutte queste operazioni richiedono l’applicazione della statistica. Sono infatti necessarie delle analisi del mercato finanziario che facciano da input per la costruzione delle strategie. Queste ultime devono essere testate, per cui si rende ancora necessaria la statistica al fine della creazione di simulazioni per verificare la presenza di eventuali incogruenze tra la strategia e la realtà di mercato. Le simulazioni, di cui il Quant si occupa, sono di tipo backtesting (test della strategia sulla base di dati osservati in passato, come serie storiche), montecarlo (test della strategia su dati generati in modo casuale o aleatorio in base a dei modelli) o forward testing (test della strategia su dati reali). Il pericolo a cui il Quant va incontro, soprattutto nelle simulazioni backtesting, è il cosiddetto curve fitting o overfitting, ovvero la possibilità che la strategia elaborata sia troppo adatta ad un certo tipo di dati, ma non sia generica.
Al Quantitative Analyst è richiesta solitamente una formazione nell’ambito della matematica applicata, della fisica o dell’ingegneria, oltre che competenze di programmazione informatica: infatti gli è richiesta una Laurea in Matematica applicata, Statistica, Fisica o Ingegneria, piuttosto che in Economia, per via delle competenze matematiche, statistiche, probabilistiche ed econometriche necessarie allo svolgimento di tale professione. Ulteriore requisito è quello di una buona conoscenza nell’ambito della programmazione informatica, dove i principali linguaggi di programmazioni utilizzati sono C, C#, C++, VBNet, Java, R e Python.
I ruoli principali svolti dal Quant sono i seguenti:
Raccolta di dati
Data mining (la cui fase pi elementare è detta Repartistica)
Strategie di trading: che consiste nella compravendita di uno o più strumenti finanziari
Fase di simulazione: divisa in
simulazione basata su dati del passato (back test)
simulazione ottenuta mediante la creazione di una serie storica (la quale corre il rischio di non essere realistica come situazioni con volatilità costante)
simulazione basata su dati reali in real time ma senza trasmettere gli ordini d’acquisto nel mercato (questa pratica è detta paper trading)
Performance assesment: permette al Quant di comprendere i pregi ed i rischi della sua strategia finanziara
Se si volesse dare una definizione di mercato finanziario, in campo economico così come in quello finanziario, si potrebbe considerare come il luogo nel quale si realizzano le operazioni di contrattazione e scambio di strumenti finanziari di varia natura, a medio o lungo termine. Lo scopo dei mercati finanziari è quello di trasferire denaro tra chi ne ha e chi ne ha bisogno. Queste transazioni possono riguardare grandi aziende oppure singoli investitori ed avvengono mediante la mediazione dei broker. Il broker finanziario è un professionista che, per conto della propria clientela e su mandato di quest’ultima, compra e vende l’asset migliore secondo le necessità e le preferenze del mandante. Nell’ultimo secolo e mezzo, i mercati finanziari sono diventati sempre più importanti come luogo di investimento e generazione di ricchezza tanto da diventare essi stessi, non solo effetto, ma anche causa di crisi economiche di grande portata. Tra i mercati finanziari più importanti ricordiamo: