Media mobile sui profitti

Read this article in your language IT | EN | DE | ES

Un nostro affezionato ed attivo lettore ci ha posto un interessante quesito in merito alla possibilità di calcolare la profittabilità media delle ultime operazioni chiuse.

In questo articolo vedremo come soddisfare la sua curiosità.

Scarica il progetto (18,51 kb)

Progetto

Il progetto è costituito da tre pagine:

  • Calcolo Profitto Medio: dove appunto calcoliamo la media mobile sui profitti
  • Visualizzazione: serve a visualizzare il testo all'interno della piattaforma
  • Strategia: una semplice strategia di trading scelta arbitrariamente il cui unico scopo è quello di effettuare degli ordini per verificare il funzionamento del sistema

Calcolo del profitto medio

Come sappiamo la media aritmetica (media semplice diremmo in analisi tecnica) è data dalla formula:

Nel nostro caso:

dove:
noc = Numero ordini chiusi;
ticket = Ticket dell'ordine chiuso.

La prima cosa da fare è creare queste variabili di supporto:

Successivamente resettiamo a zero il valore della media di profitti ed il numero degli ordini chiusi prima di ogni nuovo calcolo (blocco 1).

Il programma prosegue (blocco 2) eseguendo un ciclo tra gli ordini chiusi dal sistema tramite il componente CloseOrds Cycle, la cui funzione è appunto quella di eseguire il Code Block relativo per ogni ordine chiuso dal sistema corrente; ad ogni ciclo di iterazione la variabile passata come parametro (ticket nel nostro caso) assume il valore del numero di ordine chiuso affinché possa venire utilizzata con i componenti della famiglia Orders Details al fine di ottenerne i valori (quali ad esempio il profitto, la data di apertura od il prezzo di apertura).

All'interno del primo Code Block eseguiamo le seguenti operazioni:

  1. incrementiamo di uno la variabile noc in maniera tale da conteggiare gli ordini chiusi;
  2. eseguiamo la sommatoria del profitto degli ordini chiusi tramite il componente ProfitByTicket (Componenti -> Account, Market & Orders Info -> Orders Details);
  3. interrompiamo poi il ciclo dopo venti iterazioni per conoscere la media mobile solo degli ultimi 20 ordini tramite l'operatore BreakIf

Nel blocco 3 ci assicuriamo che il numero degli ordini chiusi sia maggiore di zero al fine di evitare una divisione per zero che produrrebbe un errore in fase di esecuzione. Tramite il componente If Action il Code Block relativo viene eseguito solo se la condizione di attivazione risulta vera (nel nostro caso avere chiuso almeno un ordine).

Per terminare il calcolo non ci rimane che dividere la sommatoria per il numero di ordini chiusi.

Visualizzazione della media mobile sui profitti sul terminale di trading

Per visualizzare nella piattaforma di trading la nostra media mobile ci avvaliamo del componente CreateLabel. Questo componente crea un testo di dimensioni, colore e font personalizzabili nella finestra del grafico in una posizione a nostra scelta. Il componente CreateLabel si trova nella sezione "Oggetti Grafici" alla voce "Text Objects". Per maggiori informazioni sui componenti di disegno in Trading Studio fate riferimento a questo articolo.

Ovviamente il parametro più importante del componente CreateLabel è il testo che vogliamo visualizzare; a tal fine utilizziamo una variabile di tipo testo che abbiamo chiamato TxtMediaProfitti.

Una volta che la variabile TxtMediaProfitti è stata valorizzata ne effettuiamo il databinding all'interno di CreateLabel.

Strategia di esempio

Ovviamente per verificare il funzionamento del progetto abbiamo bisogno di una strategia arbitraria che effettui degli ordini. La scelta è ricaduta su un semplice sistema di incrocio medie mobili.