Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 928

 
Juer:

Quale cartella condivisa? Non lo uso affatto. Inizio sempre in modalità portatile. Ho tutto nella cartella di installazione.

ArticoloLifeHack for Trader: rapporto comparativo di diversi test.

*** Ecco un esempio di un semplice scriptCheck_TerminalPaths.mq5:

//+------------------------------------------------------------------+
//|                                          Check_TerminalPaths.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
   Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
   Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
  }
//+------------------------------------------------------------------+

Questo script produce tre parametri:

  • TERMINAL_PATH - cartella da cui viene lanciato il terminale
  • TERMINAL_DATA_PATH - cartella dove sono memorizzati i dati del terminale
  • TERMINAL_COMMONDATA_PATH - la cartella comune di tutti i terminali client installati nel computer

Esempio per tre terminali (uno di loro è avviato con /Portable switch):

// Терминал запускается в основном режиме
TERMINAL_PATH 			= C:\Program Files\MetaTrader 5
TERMINAL_DATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
TERMINAL_COMMONDATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\Common

// Терминал запускается в основном режиме
TERMINAL_PATH 			= D:\MetaTrader 5 3
TERMINAL_DATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\0 C46DDCEB43080B0EC647E0C66170465
TERMINAL_COMMONDATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\Common

// Терминал запускается в режиме Portable
TERMINAL_PATH 			= D:\MetaTrader 5 5
TERMINAL_DATA_PATH 			= D:\MetaTrader 5 5
TERMINAL_COMMONDATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\Common

***

 
Vladimir Karputov:

Cartella condivisa:FILE_COMMON. Cerca, leggi. Pensare.

Perché ottengo l'errore 5004 nel tester con lo stesso file, ma quando faccio il debug sui dati reali tutto va bene?

 
Juer:

E perché ottengo l'errore 5004 nel tester con lo stesso file, mentre il debug con i dati reali è OK?

Lei non dà il quadro completo. Dovete tirare fuori le informazioni con una pinza.

Cerca di descrivere la situazione in modo intelligente. Fornire un CODICE che può essere AVVIATO.

 

Con FILE_COMMON passa senza errori sia sui dati reali che nel tester.

 

Potete dirmi come calcolare il costo per lotto senza usare OrderCalcMargin?

bool l=OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),Lts,SymbolInfoDouble(Symbol(),SYMBOL_ASK),Margin);

Allarme (l);

perché la mia funzione restituisce falso

 
Fast528:

Ho bisogno che l'indicatore visualizzi le posizioni di entrata/uscita sul grafico e tracci una linea tra loro, su un periodo di oggi meno 1 giorno per esempio, come si fa di solito in un indicatore o robot?

Non capisco quale sia la connessione tra la domanda originale e le linee. Oggi meno 1 giorno può essere impostato in diversi modi. o la domanda è diversa?
 
Alexey Viktorov:
Non capisco la connessione tra la domanda originale e le linee. Oggi meno 1 giorno può essere assegnato con diverse opzioni. o la domanda è diversa?

hai chiesto a cosa serve la variabile tempo? ecco come impostare il calcolo della "data del server" meno 1-2 giorni

e così, naturalmente, c'era una domanda e qual è la differenza tra queste due opzioni per completare la Struttura,

MqlDateTime dt;
TimeTradeServer(dt);

и

MqlDateTime tm;
TimeToStruct(TimeTradeServer(),tm);
 
Fast528:

hai chiesto a cosa serve la variabile tempo? ecco come impostare il calcolo di "Server date" meno 1-2 giorni

e così naturalmente c'era una domanda e qual è la differenza tra queste due opzioni per riempire la Struttura,

Beh, se si tratta solo di riempire la struttura, è improbabile che ci sia qualche differenza.

E perché determinare l'ora del server attraverso l'ora del computer locale? Perché non ti piace TimeCurrent() e lo usi?

 
ConTimeTradeServer nel fine settimana è più conveniente sperimentare le gamme di trading
 

Codice

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   for(int i=0;i<=21;i++)
     {
      Print("Timeframe: "+EnumToString((ENUM_TIMEFRAMES)i));
     }
  }

Dà questo risultato:

2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_CURRENT
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M1
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M2
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M3
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M4
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M5
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M6
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::7
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::8
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::9
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M10
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::11
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M12
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::13
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::14
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M15
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::16
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::17
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::18
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::19
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M20
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::21
Cosa sto facendo di sbagliato?
Motivazione: