Come impostare un filtro giornaliero automatico ai tuoi sistemi

Una delle domande che mi vengono poste spesso, riguarda la possibilità di programmare sistemi automatici muniti di particolari filtri giornalieri, sui segnali di trading .

Ad esempio potrebbe essere interessante che l’operatività del tuo trading system fosse limitata in determinati giorni della settimana, come ad esempio il lunedì o il venerdì oppure qualsiasi altro giorno tu creda necessario.

E’ piuttosto facile in MQL programmare una funzione che permette di realizzare questo tipo di limitazione alla tua operatività in determinati giorni che tu stesso potrai decidere, attraverso una serie di parametri esterni.

Voglio proporti una semplice soluzione a tale problema.

E’ una funzione che ho programmato personalmente e che risulta molto versatile perché può essere copiata ed incollata in un qualsiasi script MQL di un EA, per poi essere semplicemente utilizzata.

Essa utilizza alcuni parametri esterni che permettono di decidere in quali giornate il tuo sistema dovrà evitare di aprire nuovi trade.

Il codice riportato di seguito permette di definire tali parametri:

extern bool Lunedi = true;
extern bool Martedi = true;
extern bool Mercoledi = true;
extern bool Giovedi = true;
extern bool Venerdi = true;

extern bool Domenica = true;

Impostando true su uno dei parametri definiti poco fa, equivale a permettere le operazioni di trading nella relative giornata, viceversa impostando false equivale a disabilitare il trading durante quella giornata.

Ho volutamente omesso il sabato, perché notoriamente i mercati sono chiusi il sabato.

Ecco quindi la funzione IsTradingDay che permette di gestire il filtro giornaliero sul trading.

bool IsTradingDay(){

bool AllowTrading = false;
if(DayOfWeek() == 1 && Lunedi) {AllowTrading = true;}
if(DayOfWeek() == 2 && Martedi) {AllowTrading = true; }
if(DayOfWeek() == 3 && Mercoledi){ AllowTrading = true; }
if(DayOfWeek() == 4 && Giovedi) {AllowTrading = true; }
if(DayOfWeek() == 5 && Venerdi) {AllowTrading = true; }

if(DayOfWeek() == 0 && Domenica) {AllowTrading = true; }
return(AllowTrading);

}

 
In queste poche righe di programmazione la funzione personalizzata IsTradingDay() utilizza una funzione Mql, DayOfWeek(), la quale restituisce il giorno della settimana relativa alla data attuale  e attraverso degli operatori condizionali e grazie al confronto con le impostazioni dei parametri esterni, stabilisce se nella giornata attuale è possibile aprire dei trade oppure no.

Come puoi usarla ?

E’ semplice : basta inserirla in una istruzione condizionale come quella proposta di seguito, all’interno della quale verranno inserite le istruzioni per aprire l’ordine.

if (  IsTradingDay()==true  ) {
//piazza un ordine
}

Se ad esempio oggi è mercoledi e tu nei parametri esterni hai impostato true su Mercoledi, la funzione IsTradingDay restituirà true e il tuo trading system sarà abilitato per aprire dei trade .

Viceversa se sul parametri esterni Mercoledì fosse impostato su false, la funzione IsTradingDay restituirà false e il tuo trading system non potrà aprire nessun trade.

_____________________________________________________________________________________________________________

Se questo piccolo tutorial ti è stato utile e hai intenzione di fare sul serio col trading:

  1. Compra il nostro nuovo libro: “Missione Libertà”.
    Puoi leggere le recensioni di chi lo ha già letto qui.
  2. Iscriviti subito al nostro corso gratuito sul Trading Automatico, AUTOTRADING CHALLENGE!

Buona programmazione!

Riccardo Fornasiero
Trading Automatico

Impara le basi del Trading Professionale con il videocorso gratuito Trader Week

Trading Automatico? Imparalo con il videocorso gratuito AutoTrading Challenge

Menu