Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 43

 
fxsaber:
In questi casi, anche senza le parentesi aggiuntive, funzionerà.
Le staffe sono per me stesso. Ci vedo meglio in questo modo.
 
Quando è faticoso selezionare la funzione giusta sotto la proprietà di interesse
double TerminalInfo( const ENUM_TERMINAL_INFO_DOUBLE Property )
{
  return(TerminalInfoDouble(Property));
}

long TerminalInfo( const ENUM_TERMINAL_INFO_INTEGER Property )
{
  return(TerminalInfoInteger(Property));
}

string TerminalInfo( const ENUM_TERMINAL_INFO_STRING Property )
{
  return(TerminalInfoString(Property));
}

void OnStart()
{
  Print(TerminalInfo(TERMINAL_COMMUNITY_BALANCE));
  Print(TerminalInfo(TERMINAL_LANGUAGE));
  Print(TerminalInfo(TERMINAL_BUILD));
}
 

Forum sul trading, sistemi di trading automatico e test di strategia

Biblioteche: TypeToBytes

fxsaber, 2017.06.13 16:01

string GetDirectory( const string FileName )
{
  int Pos = StringFind(FileName, "\\");
  int LastPos = Pos;
  
  while (Pos >= 0)
  {
    LastPos = Pos;
    
    Pos = StringFind(FileName, "\\", Pos + 1);
  }

  return((LastPos >= 0) ? StringSubstr(FileName, 0, LastPos + 1) : "");
}

// Возвращает список всех файлов по фильтру
int GetFileNames( string &FileNames[], int Pos = 0, string Filter = "*", const int Common_Flag = 0 )
{
  string FileName;
  const long handle = FileFindFirst(Filter, FileName, Common_Flag);

  if (handle != INVALID_HANDLE)
  {    
    const string Directory = GetDirectory(Filter);    
    Filter = StringSubstr(Filter, StringLen(Directory));
    
    do
    {
      const string TmpFileName = Directory + FileName;
      
      ArrayResize(FileNames, Pos + 1);      
      FileNames[Pos] = TmpFileName;      
      Pos++;
        
      if (!FileIsExist(TmpFileName, Common_Flag))
        Pos = GetFileNames(FileNames, Pos, TmpFileName + Filter, Common_Flag);
    }
    while (FileFindNext(handle, FileName));  
    
    FileFindClose(handle);
  }
  
  return(Pos);
}
 
Per favore, ditemi qual è lo scopo della funzione HistoryDealSelect, quando in HistoryDealGetInteger, HistoryDealGetDouble,
Le funzioni HistoryDealGetString, quando il ticket_number dovrebbe essere specificato di nuovo?
 
. ... Rick D. ... .:
Potete dirmi qual è lo scopo della funzione HistoryDealSelect, quando nelle funzioni HistoryDealGetInteger, HistoryDealGetDouble,
Le funzioni HistoryDealGetString, quando è necessario specificare nuovamente il ticket_number?

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Peculiarità del linguaggio mql5, sottigliezze e trucchi

fxsaber, 2017.06.07 22:20

Ci sono due tabelle di cronologia corrente i cui dati sono disponibili attraverso le funzioni di cronologia - la tabella degli ordini e la tabella degli affari.

Il loro contenuto può essere influenzato solo tramite le funzioni HistorySelect. E succede come segue

  • HistorySelect e HistorySelectByPosition - influenzano entrambe le tabelle contemporaneamente.
  • La HistoryDealSelect influenza SOLO la tabella Deals (non ha effetto sulla tabella Ordini-storia corrente).
  • HistoryOrderSelect influisce SOLO sulla tabella Ordini (non influisce sulla tabella Deals-history corrente).

La tabella Deal diventa un unico elemento.
 
C'è un limite al numero di oggetti grafici che possono essere inseriti in un grafico? ) Non si tratta di un grafico a pixel, ma di elementi grafici - linee di tendenza, rettangoli, ecc.
 
Konstantin:
C'è qualche limite al numero di oggetti grafici che possono essere inseriti in un grafico? Non mi riferisco alla grafica in pixel, ma agli elementi grafici - linee di tendenza, rettangoli, ecc.
provato più di 2000 - ha funzionato
 
Vitaly Muzichenko:
provato più di 2000 - ha funzionato

e come sarebbe meno costoso in termini di risorse se si devono fare modifiche ad ogni spunta:

1. usare 2000 oggetti grafici

2. usare la classe Canvas e creare su ogni tick un disegno che contiene gli stessi 2000 disegni di oggetti grafici

 
Konstantin:

e come sarebbe meno costoso in termini di risorse se si devono fare modifiche ad ogni spunta:

1. usare 2000 oggetti grafici

2. usare la classe Canvas e creare un disegno con gli stessi 2000 disegni di oggetti grafici su ogni segno di spunta

Canvas sarà diverse volte più produttivo, l'ho provato.
 
Vitaly Muzichenko:
La tela sarà diverse volte più produttiva, l'ho provato.

Ho bisogno di disegnare un array di linee orizzontali su un grafico, puoi mandarmi un esempio di codice?

Oops )) Si scopre che l'aiuto del sito è più esteso, ho trovato quello che sto cercando - la classe CLineChart ))