Proprietà del programma (#property)

Ogni programma MQL5 permette di specificare ulteriori parametri specifici denominati #property che aiutano il terminale client nella corretta revisione dei programmi senza la necessità di avviarli in modo esplicito. Ciò riguarda prima di tuttto le impostazioni degli indicatori esterni, le proprietà descritte nei file inclusi vengono completamente ignorate. Le proprietà devono essere specificate nel file mq5 principale.

#property valore dell'identificatore

Il compilatore scriverà valori dichiarati nella configurazione del modulo eseguito.

Costante

Tipo

Descrizione

icon

string

Il percorso al file di un'immagine che verrà utilizzata come icona del programma EX5. Le regole specifiche del percorso sono le stesse per risorse. La proprietà deve essere specificata nel modulo principale con il codice sorgente MQL5. Il file deve essere in formato ICO.

link

string

Link al sito web della società

copyright

string

Il nome della società

version

string

Versione Programma, massimo 31 caratteri

descrizione

string

Breve descrizione del testo di un programma mql5. Possono essere presenti alcune delle descrizioni, ciascuna delle quali descrive una riga di testo. La lunghezza totale di tutte le descrizioni non può superare i 511 caratteri compresi gli avanzamento riga.

stacksize

int

Grandezza pila del programma MQL5. La pila(stack) di grandezza sufficiente è necessaria quando si eseguono chiamate ricorsive.

Quando si avvia uno script o un Expert Advisor sul chart, viene allocata una pila di almeno 8 MB. In caso di indicatori, la dimensione della pila è sempre fissa ed uguale a 1 MB.

Quando un programma viene lanciato nello strategy tester, lo stack di 16 MB viene sempre assegnato per esso.

library

 

Una libreria, nessuna funzione start è assegnata; funzioni con il modificatore export possono essere importate in altri programmi MQL5

indicator_applied_price

int

Specifica il valore predefinito per il campo "Applica a". È possibile specificare uno dei valori di ENUM_APPLIED_PRICE. Se la proprietà non è specificata, il valore predefinito è PRICE_CLOSE

indicator_chart_window

 

Mostra l'indicatore nella finestra del chart

indicator_separate_window

 

Mostra l'indicatore in una finestra separata

indicator_height

int

Altezza fissa della sottofinestra indicatore in pixel (proprietà INDICATOR_HEIGHT)

indicator_buffers

int

Numero di buffer per il calcolo dell'indicatore

indicator_plots

int

Numero di serie grafiche nell'indicatore

indicator_minimum

double

Il limite inferiore di scala per una finestra indicatore separata

indicator_maximum

double

Il limite superiore di scala per una finestra di indicatore separata

indicator_labelN

string

Consente di impostare una etichetta per la N-esima serie grafica visualizzata in DataWindow. Per le serie grafiche che richiedono buffer indicatori multipli (DRAW_CANDLES, DRAW_FILLING e altri), i nomi delle variabili sono definiti dal separatore ';'.

indicator_colorN

color

Il colore per visualizzare la linea N, dove N è il numero di serie grafiche; la numerazione parte da 1

indicator_widthN

int

Spessore linea nelle serie grafiche, dove la numerazione di N - numero di serie grafica, inizia da 1

indicator_styleN

int

Stile di linea nelle serie grafiche, specificato dai valori di ENUM_LINE_STYLE. N - numero di serie grafiche, la numerazione inizia da 1

indicator_typeN

int

Tipo di grafico tracciato, indicato dai valori di ENUM_DRAW_TYPE. N - numero di serie grafica, la numerazione inizia da 1

indicator_levelN

double

Livello orizzontale di N in una finestra di indicazione separata

indicator_levelcolor

color

Colore di livelli orizzontali dell'indicatore

indicator_levelwidth

int

Spessore di livelli orizzontali dell'indicatore

indicator_levelstyle

int

Stile di livelli orizzontali dell'indicatore

script_show_confirm

 

Visualizzazione di una finestra di conferma prima di eseguire lo script

script_show_inputs

 

Visualizzazione di una finestra con le proprietà prima di eseguire lo script e disattivazione di questa finestra di conferma

tester_indicator

string

Il nome di un indicatore personalizzato nel formato "indicator_name.ex5". Indicatori che richiedono testing sono definiti automaticamente dalla chiamata della funzione iCustom(), se il parametro corrispondente viene impostato tramite una costante stringa. Per tutti gli altri casi (utilizzo della funzione IndicatorCreate() o uso di una non costante stringa nel parametro che imposta il nome indicatore) questa proprietà è obbligatoria

tester_file

string

Nome file per un tester con l'indicazione di estensione, tra virgolette (come una costante stringa). Il file specificato verrà passato al tester. File di input da testare, se ci sono quelli necessari, deve sempre essere specificato.

tester_library

string

Nome libreria con l'estensione, tra virgolette. Una libreria può avere estensione DLL o EX5. Librerie che richiedono il testing vengono definite automaticamente. Tuttavia, se una delle librerie viene utilizzata da un indicatore personalizzato, questa proprietà è necessaria.

tester_set

string

Nome del file impostato con i valori e lo steo dei parametri di input. Il file viene passato al tester prima del test e dell'ottimizzazione. Il nome del file viene specificato con un'estensione e le doppie virgolette come una costante stringa.

 

Se si specifica il nome EA e il numero di versione come "<nome_expert> _ <numero> .set " in un nome file impostato, allora viene automaticamente aggiunto al menu di download delle versioni dei parametri sotto numero della versione <numero> . Ad esempio, il nome "MACD Sample_4.set" indica che si tratta di un file impostato per l'EA "MACD Sample.mq5" con il numero di versione uguale a 4.

 

Per studiare il formato, si consiglia di salvare manualmente le impostazioni di test/ottimizzazione nel tester strategia e quindi aprire il file set creato in questo modo.

tester_no_cache

string

Durante l'esecuzione dell'ottimizzazione, il tester della strategia salva tutti i risultati dei passaggi eseguiti su cache di ottimizzazione, in cui il risultato del test viene salvato per ogni set di parametri di input. Ciò consente di utilizzare i risultati predefiniti durante la ri-ottimizzazione sugli stessi parametri senza perdite di tempo nel ricalcolo.

 

Ma in alcune attività (ad esempio nei calcoli matematici), potrebbe essere necessario eseguire calcoli indipendentemente dalla disponibilità di risultati-pronti nella cache di ottimizzazione. In questo caso, il file dovrebbe includere la proprietà tester_no_cache. I risultati del test sono sempre memorizzati in cache, in modo da poter visualizzare tutti i dati sui passaggi eseguiti nel tester di strategia.

tester_everytick_calculate

string

Nelno Strategy Tester, gli indicatori vengono calcolati solo quando si accede ai loro dati, ovvero quando vengono richiesti i valori dei buffer degli indicatori. Ciò fornisce una velocità di test e ottimizzazione significativamente più veloce, se non è necessario ottenere valori di indicatori su ogni tick.

 

Specificando la proprietà tester_everytick_calculate, è possibile attivare il calcolo forzato dell'indicatore su ogni tick.

 

Gli indicatori nel Tester di Strategia sono anche calcolati forzatamente su ogni tick, nei seguenti casi:

 

Questa funzione si applica solo allo Strategy Tester, mentre negli indicatori del terminale vengono sempre calcolati su ogni tick ricevuto.

optimization_chart_mode

string

Specifica il tipo di chart ed i nomi di due parametri di input che verranno utilizzati per la visualizzazione dei risultati di ottimizzazione. Ad esempio, "3d, InpX, InpY" significa che i risultati saranno mostrati in un grafico 3D con gli assi delle coordinate basati sui valori dei parametri InpX e InpY testati. Pertanto, la proprietà abilita la specifica dei parametri che verranno utilizzati per visualizzare il grafico di ottimizzazione ed il tipo di grafico, direttamente nel codice del programma.

Possibili opzioni:

  • "3d, input_parameter_name1, input_parameter_name2" significa un chart di visualizzazione 3D, che può essere ruotato, ingrandito e ridotto. Il chart viene creato utilizzando due parametri.
  • "2d, input_parameter_name1, input_parameter_name2" indica un chart a griglia 2D, in cui ogni cella viene disegnata in un determinato colore a seconda del risultato. Il chart viene creato utilizzando due parametri.
  • "1d, input_parameter_name1, input_parameter_name2" significa un chart lineare, in cui i risultati sono ordinati in base al parametro specificato. Ogni passaggio viene visualizzato come un punto. Il chart è basato su un parametro.
  • "0d, input_parameter_name1, input_parameter_name2" indica un chart normale con risultati ordinati in base all'ora di arrivo del risultato del passaggio. Ogni passaggio viene visualizzato come un punto nel chart. L'indicazione dei parametri non è richiesta, ma i parametri specificati possono essere utilizzati per il passaggio manuale ad altri tipi di chart.

Facoltativamente, è possibile indicare solo il tipo di chart, senza specificare uno o due parametri di input. In questo caso, il terminale selezionerà i parametri richiesti per mostrare il chart di ottimizzazione.

Esempio di Task di Descrizione e Numero di Versione

#property version     "3.70"      // Versione corrente dell' Expert Advisor
#property description "ZigZag universal con Patterns Pesavento"
#property description "Al momento sono inclusi nell'indicatore vari Zig-Zag con diversi algoritmi"
#propertydescription"E' possibile inserire un gran numero di altri indicatori che mostrano gli alti ed i"
#propertydescription"bassi e generare automaticamente da questi alti e bassi, vari strumenti grafici"

Esempio di visualizzazione di descrizione e versione all'avvio del programma

 

Esempi di Specificare un' Etichetta Separata per ogni Indicatore Buffer ("C open; C high; C low; C close")

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots   1
#property indicator_type1   DRAW_CANDLES
#property indicator_width1  3
#property indicator_label1  "C open;C high;C low;C close"

Esempio di visualizzazione di una etichetta per ogni buffer indicatore