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 sviluppo e debugging.
Nonostante generalmente gli IDE siano rivolti ad uno specifico linguaggio di programmazione, alcuni degli IDE in uso sono multilinguaggio, tra cui Eclipse e lo stesso Visual Studio. Normalmente è composto da più componenti, da cui appunto il nome integrato:
un editor di codice sorgente;
un compilatore e/o un interprete;
un tool di building automatico;
(solitamente) un debugger.
Un editor di testo serve per facilitare la scrittura di un testo. Spesso sono integrati dal suggerimento della sintassi e aiutano anche nel debug. In Visual Studio l’editor inserisce alcuni comandi automaticamente (come la chiusura di un ciclo o della creazione di una classe).
Il compilatore è un programma che traduce una serie di istruzioni scritte in un determinato linguaggio di programmazione (codice sorgente) in istruzioni di un altro linguaggio (codice oggetto). L’interprete, invece, è un programma che riesce ad eseguire altri programmi a partire direttamente dal relativo codice sorgente, scritto in un linguaggio di alto livello (come VB.net e C# , senza la previa compilazione dello stesso (codice oggetto), eseguendo cioè le istruzioni nel linguaggio usato traducendole di volta in volta in istruzioni in linguaggio macchina del processore.
Infine il debugger è un programma specificatamente progettato per l’analisi e l’eliminazione dei bug, ovvero errori di programmazione interni al codice. Il suo compito principale è quello di mostrare il frammento di codice macchina che genera il problema.
Visual Studio comprende tutti gli elementi finora descritti e supporta diversi linguaggi di programmazione tra cui C#, VB.net e C++. In questo blog verranno scritti diversi programmi utilizzando i primi due linguaggi elencati.
Inoltre Visual Studio fornisce nella sua interfaccia grafica anche di una casella degli strumenti, da cui è possibile selezionare e trascinare i vari controlli direttamente nel form del programma che si sta progettando, integrandolo con la possibilità di modificare velocemente, attraverso un’apposita finestra, le caratteristiche grafiche dei vari controlli introdotti.
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#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HW1C
{
public partial class Form1 : Form
{
// Creo oggetto chiamato randomizer che è un oggetto Random.
Random randomizer = new Random();
// Aggiungo variabili per il problema di somma.
int addend1;
int addend2;
// Aggiungo variabili per il problema di differenza, prodotto e div.
int sub1;
int sub2;
int prod1;
int prod2;
int div1;
int div2;
// Aggiungo una variabile per il timer
int timeLeft;
// Aggiungo il metodo StartTheQuiz() che usa il metodo Next().
// Inizio il problema riempiendo le caselle e iniziando il timer.
public void StartTheQuiz()
{
// Metto due numeri randomici nei due addendi.
// Il valore tra parentesi è il valore massimo (non compreso).
addend1 = randomizer.Next(51);
addend2 = randomizer.Next(51);
// Converto i due numeri in stringhe per mostrarli
// nel label controls.
plusLeftLabel.Text = addend1.ToString();
plusRightLabel.Text = addend2.ToString();
// Imposto il valore del controllo "sum" a 0.
sum.Value = 0;
// Stessa cosa per il problema della sottrazione, prod e div.
sub1 = randomizer.Next(1, 101);
sub2 = randomizer.Next(1, sub1);
minusLeftLabel.Text = sub1.ToString();
minusRightLabel.Text = sub2.ToString();
difference.Value = 0;
prod1 = randomizer.Next(2, 11);
prod2 = randomizer.Next(2, 11);
timesLeftLabel.Text = prod1.ToString();
timesRightLabel.Text = prod2.ToString();
prod.Value = 0;
int temp = randomizer.Next(2,11);
div2 = randomizer.Next(2,11);
div1 = div2 * temp;
diviedLeftLabel.Text = div1.ToString();
diviedRightLabel.Text = div2.ToString();
quoz.Value = 0;
// Inizio il timer.
timeLeft = 30;
timeLabel.Text = "30 secondi";
timer1.Start();
}
private bool CheckTheAnswer()
{
if ((addend1 + addend2 == sum.Value)
&& (sub1-sub2 == difference.Value)
&& (prod1*prod2 == prod.Value)
&& (div1/div2 == quoz.Value))
return true;
else
return false;
}
private void answer_Enter(object sender, EventArgs e)
{
// Select the whole answer in the NumericUpDown control.
NumericUpDown answerBox = sender as NumericUpDown;
if (answerBox != null)
{
int lengthOfAnswer = answerBox.Value.ToString().Length;
answerBox.Select(0, lengthOfAnswer);
}
}
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void plusLeftLabel_Click(object sender, EventArgs e)
{
}
private void label8_Click(object sender, EventArgs e)
{
}
private void label12_Click(object sender, EventArgs e)
{
}
private void startButton_Click(object sender, EventArgs e)
{
StartTheQuiz();
startButton.Enabled = false;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (CheckTheAnswer())
{
timer1.Stop();
MessageBox.Show("Hai risposto bene a tutto!", "Complimenti!");
startButton.Enabled = true;
}
if (timeLeft > 0)
{
// Cambio il nuovo tempo rimanente
timeLeft = timeLeft - 1;
timeLabel.Text = timeLeft + " secondi";
if (timeLeft <= 5)
{
timeLabel.BackColor = Color.Red;
}
}
else
{
// Se il tempo finisce blocco tutto
timer1.Stop();
timeLabel.Text = "Tempo finito!";
MessageBox.Show("Non hai terminato in tempo.", "Puoi riporvare però!");
sum.Value = addend1 + addend2;
difference.Value = sub1 - sub2;
prod.Value = prod1 * prod2;
quoz.Value = div1 / div2;
startButton.Enabled = true;
}
}
}
}
Public Class Form1
' Creo un oggetto Random.
Private randomizer As New Random
' Creo variabili di addizione.
Private sum1 As Integer
Private sum2 As Integer
' Creo variabili per sottrazione, prodotto e quoz
Private min1 As Integer
Private min2 As Integer
Private prod1 As Integer
Private prod2 As Integer
Private quoz1 As Integer
Private quoz2 As Integer
' Aggiungo una variabile per il timer
Private timeLeft As Integer
' Aggiungo il metodo StartTheQuiz() che usa il metodo Next().
' Inizio il problema riempiendo le caselle e iniziando il timer.
Public Sub StartTheQuiz()
' Metto due numeri randomici nei due addendi.
sum1 = randomizer.Next(51)
sum2 = randomizer.Next(51)
'Metto due numeri randomici anche per sottrazione, prod e div
min1 = randomizer.Next(1, 100)
min2 = randomizer.Next(1, min1)
prod1 = randomizer.Next(1, 11)
prod2 = randomizer.Next(1, 11)
quoz2 = randomizer.Next(1, 11)
Dim temp As Integer = randomizer.Next(1, 11)
quoz1 = quoz2 * temp
plusLeftLabel.Text = sum1.ToString()
plusRightLabel.Text = sum2.ToString()
minusLeftLabel.Text = min1.ToString()
minusRightLabel.Text = min2.ToString()
prodLeftLabel.Text = prod1.ToString
prodRightLabel.Text = prod2.ToString
quozLeftLabel.Text = quoz1.ToString
quozRightLabel.Text = quoz2.ToString
sum.Value = 0
dif.Value = 0
prod.Value = 0
quoz.Value = 0
' Inizio il timer
timeLeft = 30
timeLabel.Text = "30 seconds"
Timer1.Start()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub Label5_Click(sender As Object, e As EventArgs) Handles Label5.Click
End Sub
Private Sub startButton_Click() Handles startButton.Click
StartTheQuiz()
startButton.Enabled = False
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If CheckTheAnswer() Then
Timer1.Stop()
MessageBox.Show("Hai risposto bene a tutto!", "Complimenti!")
startButton.Enabled = True
ElseIf timeLeft > 0 Then
timeLeft -= 1
timeLabel.Text = timeLeft & " secondi"
If timeLeft <= 5 Then
timeLabel.BackColor = Color.Red
Else
timeLabel.BackColor = Color.White
End If
Else
' Se il tempo finisce blocco tutto
Timer1.Stop()
timeLabel.Text = "Tempo finito!"
MessageBox.Show("Non hai terminato in tempo.", "Puoi riporvare però!")
sum.Value = sum1 + sum2
dif.Value = min1 - min2
prod.Value = prod1 * prod2
quoz.Value = quoz1 / quoz2
startButton.Enabled = True
End If
End Sub
Public Function CheckTheAnswer() As Boolean
If sum1 + sum2 = sum.Value AndAlso
min1 - min2 = dif.Value AndAlso
prod1 * prod2 = prod.Value AndAlso
quoz1 / quoz2 = quoz.Value Then
Return True
Else
Return False
End If
End Function
Private Sub answer_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sum.Enter, prod.Enter, dif.Enter, quoz.Enter
Dim answerBox = TryCast(sender, NumericUpDown)
If answerBox IsNot Nothing Then
Dim lengthOfAnswer = answerBox.Value.ToString().Length
answerBox.Select(0, lengthOfAnswer)
End If
End Sub
End Class
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 per la manipolazione del contenuto della memoria e le operazioni da eseguire in modo arbitrario. Ogni elemento presente lascia traccia nella memoria centrale;
funzionali: danno dei comandi che calcolano risultati partendo dai dati di ingresso e non consentono che le funzioni modifichino la memoria del computer;
dichiarativi: descrivono oggetti informatici come la struttura di un database e la sequenza delle loro dichiarazioni non è relazionata al tempo;
procedurali: permettono di generare operazioni di alto livello scomponendole in procedure o funzioni;
logici: consentono di ideare sistemi matematici logici;
orientati agli oggetti: semplificano le realizzazione di schemi predefiniti tramite i quali le problematiche standard della programmazione trovano soluzioni standardizzate.
Un’ulteriore suddivisione va fatta tra linguaggio interpretato, compilato o JIT. Nel primo caso il sorgente viene direttamente interpretato da un software. Nel secondo caso un software compilatore legge il sorgente e lo rende eseguibile. Nel terzo caso, invece, il linguaggio è compilato in modo tale da poter essere eseguito da una macchina virtuale.
Nel nostro caso consideriamo i linguaggi C# e VB.NET. Sono entrambi linguaggi orientati agli oggetti ed entrambi compilati (anche se in verità C# è un ibrido tra compilato e JIT, poiché viene compilato in run time a seconda della macchina dove viene eseguito). Sono due tra i molti linguaggi disponibili per la piattaforma .NET.
Oltre ad una differenza nelle possibilità di programmazione che offrono i due linguaggi, differiscono anche per la sintassi utilizzata:
VB.NET risulta essere più lungo rispetto all’equivalente in C#;
C# è case sensitive, mentre VB.NET no;
in C# ogni istruzione deve terminare con “;” per poter essere eseguita, cosa non necessaria in VB.NET;
in C# si usano le parentesi graffe per delimitare i blocchi di codice, mentre in VB.NET si termina un blocco con la dichiarazione End;
in C# è necessario inizializzare le variabili, mentre VB.NET le inizializza direttamente in fase di dichiarazione.
Un esempio nella differenza tra i due linguaggi la sua apprezzare nei due seguenti codice. Entrambi servono per la costruzione del famoso programma “Hello World!”, il primo però utilizza il linguaggio C#, mentre il secondo VB.NET.
Il codice in C# risulta essere:
using System.Windows.Forms;
class HelloWorldApp
{
public static void Main()
{
MessageBox.Show("Hello World");
}
}
Mentre quello in VB.NET è:
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
MessageBox.Show("Hello, world!", "Titolo esempio", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Entrambi i programmi servono per stampare il testo “Hello world!” in una Message Box
Anche i tipi di variabili, e il loro codice, differiscono a seconda del linguaggio utilizzato.
In C# esistono due generi di tipi: tipi valore e tipi riferimento. Le variabili dei tipi valore contengono direttamente i propri dati, mentre le variabili dei tipi riferimento archiviano i riferimenti ai propri dati, noti come oggetti.
I tipi valore di C# sono ulteriormente suddivisi in tipi semplici, tipi enum, tipi struct e tipi valore nullable. I tipi riferimento di C# sono ulteriormente suddivisi in tipi classe, tipi interfaccia, tipi matrice e tipi delegato.
Tipi valore
Tipi semplici
Signed Integer: sbyte, short, int,long
Unsigned Integer: byte, ushort, uint,ulong
Caratteri Unicode: char
File binario IEEE a virgola mobile: float, double
Decimale ad alta precisione a virgola mobile: decimal
Booleano: bool
Tipi enum
Tipi definiti dall’utente nel formato enum E {...}
Tipi struct
Tipi definiti dall’utente nel formato struct S {...}
Tipi valore nullable
Estensioni di tutti gli altri tipi valore con un valore null
Tipi riferimento
Tipi classe
Classe di base principale di tutti gli altri tipi: object
Stringhe Unicode: string
Tipi definiti dall’utente nel formato class C {...}
Tipi interfaccia
Tipi definiti dall’utente nel formato interface I {...}
Tipi di matrice
Unidimensionale e multidimensionale, ad esempio int[] e int[,]
Tipi delegato
Tipi definiti dall’utente nel formato delegate int D(...)
Le variabili in VB.NET sono sostanzialmente le stesse, ma differiscono per la sintassi utilizzata nella definizione della variabile. Ad esempio in VB.NET si ha Doubleinvece di double, Integerinvece di int, Single invece di float e Boolean invece di bool.
Un’altra importante differenza riguarda gli operatori nei due linguaggi. Infatti la sintassi è diversa, sopratutto per quanto riguarda gli operatori logici. Per semplicità, il confronto è riportato nella tabella qui sotto:
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 tra le due parti.
Gli strumenti finanziari fanno parte di una definizione gerarchica a tre categorie. La prima e più esterna è la categoria dei prodotti finanziari: questa comprende gli strumenti finanziari e ogni altra forma di investimento di natura finanziaria. La categoria degli strumenti finanziari comprende a sua volta:
valori mobiliari;
strumenti del mercato monetario;
quote di un organismo di investimento collettivo del risparmio (OICR) o di fondi di investimento come gli exchange-traded fund (ETF);
contratti su strumenti derivati.
I valori mobiliari sono strumenti di investimento finanziario, la cui principale funzione è quella di fornire le risorse necessarie agli operatori economici per investire, offrendo agli investitori una forma di impiego del risparmio, normalmente con una durata predeterminata e con un rendimento fisso o variabile a seconda delle categoria di appartenenza.
Esempi di valori mobiliari sono: le azioni societarie (in inglese stock), ovvero quote di proprietà di una società per azioni; le obbligazioni, ovvero titoli di debito emessi da società o enti pubblici che attribuiscono al possessore, alla scadenza, il diritto al rimborso del capitale prestato all’emittente, più un interesse; i titoli di Stato.
Alcuni esempi di strumenti del mercato monetario sono: i buoni del tesoro; i certificati di deposito e le carte commerciali.
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;
durata;
momento di emissione.
In base alla natura degli strumenti finanziari è possibile distinguere i mercati in: mercato creditizio, mercato mobiliare e mercato assicurativo.
Il mercato creditizio è il mercato finanziario dove vengono negoziati gli strumenti finanziari non trasferibili, come i mutui e i depositi bancari. Questi strumenti sono contraddistinti da un alto grado di personalizzazione.
Il mercatomobiliare invece tratta strumenti finanziari di minore personalizzazione, come la compravendita di valori mobiliari.
Il mercato assicurativo riguarda, invece, la trattazione di strumenti finanziari che hanno come scopo la riduzione dell’incertezza futura dello stato di un singolo. In altre parole, le assicurazioni servono in qualche modo ad assicurare, anche in caso di avversità, un tenore di vita al singolo e il mercato assicurativo si occupa proprio della trattazione dei prezzi di queste assicurazioni.
In base alla durata degli strumenti finanziari possiamo distinguere i mercati in: mercato dei capitali, dove gli strumenti scambiati hanno una scadenza di più di 12 mesi (sono gli strumenti finanziari più lunghi); mercato monetario, dove gli strumenti finanziari scambiati sono a breve scadenza (massimo 12 mesi).
Il momento dell’emissione degli strumenti finanziari permette la distinzione in: mercato primario, ovvero che riguarda l’emissione di tutti i nuovi titoli; mercato secondario, dove si scambiano titoli già emessi.
Un’ultima importante distinzione riguarda la presenza o meno di una regolamentazione e ci permette di distinguere i mercati in:
mercati regolamentati, ovvero dove sono presenti regole sull’organizzazione stessa del mercato;
mercati non regolamentati, ovvero un mercato dove l’offerta e la domanda si incontrato senza direttamente senza intermediari.
Questa mancanza di regole nei mercati non regolamentati risulta in una minore trasparenza (e di garanzia) degli stessi, per questo sono anche definiti come mercati Over The Counter (OTC), ovvero “fuori borsa”.
I principali mercati finanziari
Esistono diversi mercati dove è possibile avere attività di trading. I principali sono:
il mercato Forex;
il mercato azionario;
il mercato delle materie prime;
il mercato delle criptovalute.
Mercato Forex
Il mercato Forex, abbreviazione per Foreign Exchangemarket, si ha quando una valuta viene scambiata con un’altra (per questo è anche conosciuto come mercato delle valute). Il mercato Forex è indubbiamente il mercato più grande al mondo, raccogliendo le transazioni che avvengono tra banche, banche centrali, governi ed altri enti con una grande disponibilità economica, generando in media un’attività finanziaria che assomma a più di 4.000 miliardi di dollari al giorno.
Rientra nella categoria dei mercati OTC, poiché non esiste alcuna autorità che sovraintende al funzionamento del mercato. Questa velocità di scambio, eliminata la figura di mediatore del broker, comporta una maggiore volatilità, soprattutto in rapporto alle borse mondiali. Naturalmente queste oscillazioni sono anche influenzati dagli stati stessi in cui una data valuta è utilizzata, subendo quindi anche gli effetti di fattori politica monetaria, oltre che a fattori macroeconomici.
Mercato azionario
Il mercato azionario riguarda, appunto, lo scambio di titoli azionari, e si distingue in mercato primario e mercato secondario. Viene quindi utilizzato dalle società che possono emettere titoli per trovare finanziamenti (e finanziatori). Questi titoli possono poi successivamente essere scambiati all’interno delle borse stesse, permettendo anche al finanziatore di avere un ricavo, nel caso in cui il valore dell’azione al momento della vendita sia aumentato da quello di primo acquisto. La Borsa valori è il mercato finanziario regolamentato dove si scambiano anche le quote di capitale ed è un mercato secondario, poiché i titoli interessati in questi scambi sono stati precedentemente emessi. Il valore di un titolo dipenderà, non solo dal valore stesso della società, ma anche dal rapporto tra domanda ed offerta. Ad esempio, è possibile che un titolo venga scambiato ad un valore molto diverso dal suo valore determinato in modo fondamentale. Questo processo può creare le cosiddette “bolle speculative“, dove un titolo assume un valore fortemente maggiore rispetto al suo reale valore, ad esempio in seguito ad un aumento della ricerca di questo titolo da parte degli speculatori, che comporta un aumento della domanda ed un conseguente aumento del prezzo di questo titolo.
Mercato delle materie prime
Il mercato delle materie prime, detto anche commoditymarket, è il mercato finanziario che si occupa delle transazioni riguardanti il settore primario.
Le commodity scambiate possono essere divise in due categorie: soft commodities, ovvero tutte quelle che possono essere coltivate; hard commodities, che di contro sono tutti le risorse estratte.
Esiste tuttavia una categorizzazione molto più fitta delle commodities, che possono essere divise in agricole, coloniali e tropicali, metalli, energetici e carne. Le commodities energetiche riguardano una importante fetta del mercato delle materie prime ed è composto, in maggioranza, da hard commodities.
Mercato delle criptovalute
Il mercato delle criptovalute è il mercato finanziario dove avvengono, appunto, le compravendite di criptovalute, ovvero una rappresentazione digitale di valore, basata sulla crittografia. Si tratta probabilmente del mercato finanziario più recente ed è sicuramente un mercato che ha visto negli ultimi anni una crescita vertiginosa, passando la capitalizzazione del mercato, nel solo 2017, da 30 a 800 miliardi di dollari . Tuttavia gran parte di questo incremento è stato determinato da una bolla speculativa, che infatti ha poi comportato un rapido decremento della capitalizzazione di mercato, passando a 450 miliardi di dollari nel 2018, fino ad arrivare a 280 miliardi di dollari nel 2020.
Le principali Borse valori
La Borsa valori è un mercato finanziario regolamentato, poiché sono disciplinate in modo specifico tutte le operazione di negoziazione. Vengono scambiati strumenti finanziari rappresentativi di debito, quote di capitale e strumenti finanziari derivati. Si tratta di un mercato secondario poiché vengono trattati strumenti finanziari già emessi e quindi già in circolazione.
Ha particolare importanza sia per il volume delle contrattazioni, sia per la loro specifica funzione economica, ovvero la canalizzazione del risparmio delle famiglie e degli investitori istituzionali verso le imprese, che collocano in Borsa quote del loro capitale o prestiti per finanziare gli investimenti. Il prezzo delle azioni è sintomo delle previsioni degli investitori sui profitti che una determinata società quotata riuscirà ad avere e risulta perciò essere un indicatore importante per analizzare le tendenze degli investitori.
Essendo un mercato regolamentato, la funzione della Borsa è quello di ricevere gli ordini di compravendita degli operatori ed eseguirli attenendosi alla legge della domanda e dell’offerta. Gli operatori che si occupano di queste trattazioni sono detti traders. La loro attività è fortemente regolamentata, al fine di tutelare i risparmiatori con trattazioni trasparenti.
Le principali Borse internazionali sono:
New York: Nella Borsa di New York sono presenti due mercati azionari, che sono anche i più grandi al mondo (per capitalizzazione). Il New York Stock Exchange (NYSE) e il National Association of Securities Dealers Automated Quotation (più comunemente conosciuto con il suo acronimo NASDAQ). Il NYSE, soprannominato “Big Board”, è il più grande mercato al mondo per volume di scambi, con una capitalizzazione totale di 21.000 miliardi di dollari, cinque volte più grande del secondo, che è il NASDAQ stesso. Il NASDAQ, secondo al mondo per volume di scambi, ma primo per volume di azioni, è il primo esempio al mondo di mercato borsistico elettronico, cioè di un mercato costituito da una rete di pc. Essenzialmente, è l’indice dei principali titoli tecnologici della Borsa americana. Sono quotate, tra le tantissime, aziende come Microsoft, IBM, Apple, Cisco System, Google e Amazon (solo per citare alcune tra le più iportanti).
Tokyo: La Borsa di Tokyo Tokyo Stock Exchange (TSE) è la Borsa più importante dopo quella di New York. In generale, il mercato asiatico, comprese le Borse di Shangai e Hong Kong, è un mercato in rapida crescita. La TSE, tuttavia, è stata istituito nel 1878, per poi essere unita nel 1943 con altre 10 Borse delle principali città giapponesi per formare un singolo mercato borsistico giapponese. Dal 1999 è divenuto completamente elettronico.
Londra: La Borsa di Londra, la London Stock Exchange Group (LSEG), è la più grande Borsa europea e una delle più grandi al mondo. Nasce nel 2007 con l’unione tramite acquisto della Borsa di Milano con la Borsa londinese.
Ciascuna Borsa ha associato un indice azionario, ovvero una sintesi del valore del paniere di titoli azionari che rappresentano. Le variazioni di questo indice sono un buon indicatore per capire l’andamento generico del valore delle azioni all’interno della Borsa.
Esistono diversi metodologie di calcolo degli indici, ovvero:
Indici equally weighted: sono indici caratterizzati dall’uguaglianza dei pesi, che non sono quindi influenzati dalla capitalizzazione delle società incluse.
Indici price weighted: questi indici, invece, sono caratterizzati da pesi associati ad ogni titolo che dipendono dal prezzo di quest ultimo. Lo svantaggio principale di questi indici è che sono fortemente influenzati dai titoli più “costosi”, non rappresentando quindi tutto il paniere, ma solo una sua parte.
Indici value weighted: questo indice risolve i problemi del precedente indice in quanto i pesi associati ad ogni titolo dipendono dalla capitalizzazione di questi ultimi in borsa.