I linguaggi di programmazione
Per passare da un’idea, su cui basarsi per determinare gli ingressi e le uscite dal mercato, ad un codice eseguibile sulla piattaforma occorre utilizzare uno specifico linguaggio di programmazione.
Esistono linguaggi di programmazione che risultano essere di facile lettura anche ai meno esperti e quelli più complessi codificabili a livello professionale o quasi.
Un aspetto fondamentale da tenere in considerazione per l’utilizzo di un codice in determinate strategie che richiedono un’elevata velocità di esecuzione è se il software venga compilato prima della sua esecuzione oppure interpretato dalla piattaforma. Nel primo caso il software sarà eseguito più velocemente, nel secondo caso ogni linea di comandi sarà interpretata sequenzialmente a scapito di una maggiore lentezza dell’esecuzione del Trading System rendendolo poco utilizzabile per Strategie di tipo Scalping o High Frequency.
Uno dei linguaggi più utilizzato dai Trader non istituzionali per via della sua facilità di lettura e di programmazione è il linguaggio ProRealTime, che permette di avvicinare al mondo della programmazione di Trading Systems Automatici anche chi non ha mai avuto esperienze pregresse.
Una volta progettato il Trading System, occorre tradurre queste regole in un codice che il PC possa capire. Analizziamo, per esempio, una sezione di codice scritto nel linguaggio di programmazione ProRealTime, che esegue un Trading System basato sul sorpasso relativo tra due medie mobili a diverso periodo.
ncontratti=1
nslow=60
nfast=50
puntisl=120
puntip=80
Si possono usare quasi tutti i nomi che si vuole quando si assegna un nome a una variabile. L'unica eccezione è un elenco di "parole proprietarie" che non è possibile utilizzare perché sono già utilizzati da comandi del programma. Dal nome è auspicabile, per una migliore leggibilità del Trading System, che si possa avere indicazioni sul significato della variabile stessa (ad esempio nfast rappresenta il periodo della media mobile più veloce).
mslow=Average[nslow](Close)
mfast=Average[nfast](close)
Le variabili possono essere utilizzate in qualsiasi altro punto del programma per rappresentare i dati che contengono. Un vantaggio nell'uso delle variabili rispetto ai soli numeri è che si possono cambiare i valori delle variabili e questo cambiamento viene effettuato istantaneamente in tutte le posizioni in cui tale variabile è stata utilizzata.
Organizzazione delle variabili in strutture
IF mfast crosses over mslow and NOT LongOnMarket THEN
BUY ncontratti CONTRACTS AT MARKET
ENDIF
IF mfast crosses under mslow and NOT ShortOnMarket THEN
SELLSHORT ncontratti CONTRACTS AT MARKET
ENDIF
SET STOP pLOSS puntisl
SET TARGET pPROFIT puntip
Le strutture predefinite dal linguaggio di programmazione (una struttura IF nel caso specifico) permettono, mediante le variabili definite precedentemente, di realizzare rigorosamente le regole progettate per il proprio trading System.