Imparare a programmare in Power Language !

Quando si sviluppa un “trading system” bisogna tenere presente la definizione canonica: strategia di trading codificata in un linguaggio di programmazione. Pertanto non è possibile creare regole non verificabili, discutibili, poco chiare. È richiesto il massimo della chiarezza e della trasparenza e le regole devono poter essere scritte in un linguaggio di programmazione sottoforma di funzioni matematiche.

Compila il form a fondo pagina per ricevere gratuitamente il codice sorgente (aperto) del trading system!

Clicca qui per iscriverti al webinar del 20/03/2018 dedicato a Power Language >>>

Da dove partire ?

Si potrebbe mixare il concetto di sistema trend following con quello di mean reverting. Il primo tipo di strategia mira a cogliere i trend del mercato sfruttando la direzionalità già acquisita, mentre il secondo punta a cogliere i rimbalzi del mercato. Quindi un sistema trend follower entra long quando il mercato sale, mentre un sistema di mean reversion entra long quando il mercato scende. Per non lasciare nulla al caso si specifica che long è la posizione che guadagna se una volta aperta il mercato sale, al contrario un’operazione short – più conosciuta come vendita allo scoperto – guadagna se il mercato scende. Da qui il concetto che psicologicamente è più semplice seguire sistemi trend following, piuttosto che quelli di mean reverting in cui si entra long quando il mercato scende e si punta al rimbalzo dello stesso. Tuttavia si potrebbe sfruttare le potenzialità della logica mean reversion utilizzandola sul breve periodo, entrando long solo in condizioni di trend di medio-lungo periodo favorevoli.

Regole della strategia di trading

Il sistema dovrà avere quattro condizioni sulle quali si baseranno i calcoli che determineranno gli ingressi e le uscite del sistema. Si elencano di seguito le regole da programmare:

  • Condizione 1 (LONG): il prezzo di chiusura di oggi deve essere minore della media dei prezzi di chiusura a breve periodo e maggiore della media dei prezzi di chiusura a  lungo periodo.
  • Condizione 2 (SHORT): il prezzo di chiusura di oggi deve essere maggiore della media dei prezzi di chiusura a breve periodo e minore della media dei prezzi di chiusura a  lungo periodo.
  • Condizione 3 (LONG): il prezzo di chiusura di ieri deve essere maggiore della media dei prezzi di chiusura a breve periodo calcolata escludendo la giornata odierna.
  • Condizione 4 (SHORT): il prezzo di chiusura di ieri deve essere minore della media dei prezzi di chiusura a breve periodo calcolata escludendo la giornata odierna.

Ingresso long: quando Condizione1 è vera e Condizione3 è falsa
Ingresso short: quando Condizione2 è vera e Condizione4 è falsa

Uscita long: quando il sistema è long e la Condizione3 è vera
Uscita short: quando il sistema è short e la Condizione4 è vera

Tipo di ordine ingresso long: limite sul prezzo minimo della giornata odierna
Tipo di ordine ingresso short: limite sul prezzo massimo della giornata odierna
Tipo di ordine uscita long: a mercato in apertura del giorno successivo
Tipo di ordine uscita short: a mercato in apertura del giorno successivo

Clicca qui per iscriverti al webinar del 20/03/2018 dedicato a Power Language >>>

Scriviamo un po’ di codice

Inserire all’interno delle variabili condition1-2-3-4 le relative regole. Per comodità è possibile differenziare la lunghezza della media a breve periodo tra condition1-2 e condition3-4.

condition1 = Close < Average(Close,MediaCorta) AND Close > Average(Close,MediaLunga);
condition2 = Close > Average(Close,MediaCorta) AND Close < Average(Close,MediaLunga);
condition3 = Close[1] > Average(Close,MediaUscita)[1];
condition4 = Close[1] < Average(Close,MediaUscita)[1];

Il codice soprastante è già codificati nella sintassi corretta.

Inserimento ordini di ingresso

Questa è la parte che consente al sistema di inserire gli ordini di ingresso per prendere posizione. Al verificarsi delle condizioni specificate nel paragrafo “regole della strategia di trading”  si inseriscono gli ordini limite.

if condition1 and condition3 = false then buy next bar at low limit;
if condition2 and condition4 = false then sell short next bar at high limit;

Da non dimenticare: la dichiarazione degli inputs

Gli inputs sono i valori che l’utente può modicare ed ottimizzare per cercare combinazioni che rendono il sistema più interessante dal punto di vista della “tradabilità”. Sono da inserire sempre all’inizio del codice

inputs: MediaCorta(5), MediaLunga(20), MediaUscita(10);

Setup di uscita

Se il sistema è long o short viene automaticamente controllato dalla piattaforma, quindi non è necessario specificarlo all’interno del codice. È sufficiente controllare le condizioni 3-4 ed inserire l’ordine di uscita a mercato in apertura della giornata successiva di trading.

if condition3 then Sell next bar at market;
if condition4 then Buy To Cover next bar at market;

Conclusioni

In pochi semplici passaggi il sistema è stato sviluppato. Il codice non è di difficile comprensione, ammesso che il lettore abbia conoscenze basi dell’inglese. Questo è il limite più evidente del linguaggio utilizzato nell’articolo.

Il sistema è stato caricato sul grafico dell’indice SPY ipotizzando un’investimento di 10.000 dollari per operazione.

Equity Line SPY

La equity line è stata ottenuta con time frame giornaliero dal 01/01/1995 al 2016 … scopri i nuovi risultati caricando il codice nella tua piattaforma!

Premesso che per sviluppare in qualsiasi linguaggio di programmazione sono richieste conoscenze di base almeno sulla sintassi del linguaggio, il presente articolo ha come obiettivo quello di dimostrare che per sviluppare un trading system non è necessario scrivere 1000 righe di codice complicato e incomprensibile. La prossima settimana pubblicheremo un articolo che mostra come migliorare i risultati di questo sistema!

Clicca qui per iscriverti al webinar del 20/03/2018 dedicato a Power Language >>>

Nessun campo trovato.

Tags: , , , ,

No comments yet.

Lascia un commento