ChartApplyTemplate

Applica un modello specifico da un file specificato al grafico. Il comando viene aggiunto alla coda dei messaggi del chart e verrà eseguito dopo l'elaborazione di tutti i comandi precedenti.

bool  ChartApplyTemplate(
   long          chart_id,     // Chart ID
   const string  filename      // Nome file Template
   );

Parametri

chart_id

[in] ID del Grafico. 0 significa il grafico corrente.

filename

[in] Il nome del file contenente il template.

Valore restituito

Restituisce true se il comando è stato aggiunto alla coda del chart, altrimenti false. Per avere informazioni sull' errore, Chiamare la funzione GetLastError().

Nota

L'Expert Advisor verrà de-caricato e non sarà in grado di continuare ad operare in caso di caricamento di successo di un nuovo template per il grafico a cui è allegato.

When applying the template to the chart, trade permissions may be limited due to security reasons:

Live trading permission cannot be extended for the Expert Advisors launched by applying the template using ChartApplyTemplate() function.

If the mql5-program calling ChartApplyTemplate() function has no permission to trade, the Expert Advisor launched via the template will also not be able to trade regardless of the template settings.

If the mql5-program calling ChartApplyTemplate() function has permission to trade, while there is no such permission in the template settings, the Expert Advisor launched via the template will not be able to trade.

Utilizzo dei modelli

Le risorse del linguaggio MQL5 permettono di impostare più proprietà del grafico, compresi i colori che utilizzano la funzione ChartSetInteger():

  • Colore di sfondo del grafico;
  • Colore degli assi, la scala e la linea OHLC;
  • Colore della griglia;
  • Colore dei volumi e dei livelli di apertura delle posizioni;
  • Colore della barra superiore, ombra e bordo della candela rialzista(_*bullish);
  • Colore della barra inferiore, ombra e bordo della candela ribassista(_*bearish);
  • Colore della linea del grafico e candele Doji;
  • Colore del corpo della candela rialzista(_*bullish);
  • Colore del corpo della candela ribassista(_*bearish);
  • Colore della linea di prezzo di Offerta(_*Bid);
  • Colore della linea prezzo di Domanda(_*Ask);
  • Colore della linea del prezzo ultumo affare (Last);
  • Colore dei livelli stop order (Stop Loss e Take Profit).

Inoltre, ci possono essere molteplici oggetti grafici ed indicatori su un grafico. È possibile impostare un grafico con tutti gli indicatori necessari, e poi salvarlo come template. Tale template può essere applicato a qualsiasi grafico.

La funzione ChartApplyTemplate() è intesa all' utilizzo di un template precedentemente salvato, e può essere utilizzata in qualsiasi programma MQL5. Il percorso del file che memorizza il template è passato come secondo parametro di ChartApplyTemplate(). Il file template viene cercato in base alle seguenti regole:

  • se il separatore barra rovesciata(backslash) "\" (scritto come "\\") è posto all'inizio del percorso, il template è cercato relativo al percorso _terminal_data_directory\MQL5,,
  • se non c'è backslash, il template viene cercato per il relativo eseguibile file EX5, in cui ChartApplyTemplate() viene chiamato;
  • se un template non si trova nelle prime due varianti, la ricerca viene eseguita nella cartella terminal_directory\Profiles\Templates\.

Qui terminal_directory è la cartella da cui MetaTrader 5 Terminal Client è in esecuzione, e terminal_data_directory è la cartella in cui sono memorizzati i file modificabili, la sua posizione dipende dal sistema operativo, il nome utente e le impostazioni di sicurezza del computer. Normalmente sono cartelle diverse, ma in alcuni casi possono coincidere.

La posizione delle cartelle e terminal_data_directory terminal_directory può essere ottenuta usando la funzione TerminalInfoString().

//--- directory da cui viene avviato il terminale
   string terminal_path=TerminalInfoString(TERMINAL_PATH);
   Print("Terminal directory:",terminal_path);
//--- terminale directory di dati, in cui si trova la cartella MQL5 con EA ed indicatori
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
   Print("Terminal data directory:",terminal_data_path);

Ad esempio:

//--- per un template in terminal_data_directory\MQL5\
ChartApplyTemplate(0,"\\first_template.tpl"))
//--- ricerca per un template nella directory_di_EX5_file\, poi in terminal_data_directory\Profiles\Templates\
ChartApplyTemplate(0,"second_template.tpl"))
//--- ricerca per un template nella directory_di_EX5_file\Miei_templates\, poi nella cartella terminal_directory\Profiles\Templates\My_templates\
ChartApplyTemplate(0,"My_templates\\third_template.tpl"))

I templates non sono risorse, non possono essere inclusi in un file eseguibile EX5 file.

Esempio:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- example of applying template, located in \MQL5\Files
   if(FileIsExist("my_template.tpl"))
     {
      Print("The file my_template.tpl found in \Files'");
      //--- apply template
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
        {
         Print("The template 'my_template.tpl' applied successfully");
         //--- redraw chart
         ChartRedraw();
        }
      else
         Print("Failed to apply 'my_template.tpl', error code ",GetLastError());
     }
   else
     {
      Print("File 'my_template.tpl' not found in "
            +TerminalInfoString(TERMINAL_PATH)+"\\MQL5\\Files");
     }
  }

Vedi anche

Risorse