Características del lenguaje mql5, sutilezas y técnicas - página 43

 
fxsaber:
En estos casos, incluso sin los paréntesis adicionales, funcionará.
Los soportes son para mí. Así veo mejor.
 
Cuando es agotador seleccionar la función correcta en la propiedad de interés
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));
}
 

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Bibliotecas: 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);
}
 
Por favor, dígame cuál es el propósito de la función HistoryDealSelect, cuando en el HistoryDealGetInteger, HistoryDealGetDouble,
Funciones HistoryDealGetString, ¿cuándo se debe especificar de nuevo el ticket_number?
 
. ... Rick D. ... .:
Me pueden decir cuál es el propósito de la función HistoryDealSelect, cuando en las funciones HistoryDealGetInteger, HistoryDealGetDouble,
Las funciones HistoryDealGetString, ¿necesitan especificar de nuevo ticket_number?

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Peculiaridades del lenguaje mql5, sutilezas y trucos

fxsaber, 2017.06.07 22:20

Hay dos tablas de historial actuales cuyos datos están disponibles a través de las funciones de historial: la tabla de pedidos y la tabla de transacciones.

Su contenido sólo puede ser influenciado a través de las funciones HistorySelect. Y ocurre lo siguiente

  • HistorySelect y HistorySelectByPosition - afectan a ambas tablas simultáneamente.
  • El HistoryDealSelect afecta SOLO a la tabla Deals (no tiene ningún efecto sobre la tabla actual Orders-history).
  • HistoryOrderSelect afecta SÓLO a la tabla de Pedidos (no afecta a la tabla actual de Historial de Ofertas).

La tabla de reparto se convierte en un solo elemento.
 
¿Hay algún límite en el número de objetos gráficos que se pueden colocar en un gráfico? ) No se trata de un gráfico de píxeles, sino de elementos gráficos: líneas de tendencia, rectángulos, etc.
 
Konstantin:
¿Existe alguna limitación en cuanto al número de objetos gráficos que se pueden colocar en un gráfico? No me refiero a gráficos de píxeles, sino a elementos gráficos: líneas de tendencia, rectángulos, etc.
probó más de 2000 - funcionó
 
Vitaly Muzichenko:
probó más de 2000 - funcionó

y cómo sería menos costoso en términos de recursos si tiene que hacer cambios en cada tic:

1. utilizar 2000 objetos gráficos

2. Utilizar la clase Canvas y crear en cada tick un dibujo que contenga los mismos 2000 dibujos de objetos gráficos

 
Konstantin:

y cómo sería menos costoso en términos de recursos si tiene que hacer cambios en cada tic:

1. utilizar 2000 objetos gráficos

2. utilizar la clase Canvas y crear un dibujo con los mismos 2000 dibujos de objetos gráficos en cada tic

El lienzo será varias veces más productivo, lo he probado.
 
Vitaly Muzichenko:
El lienzo será varias veces más productivo, lo he probado.

Necesito dibujar una matriz de líneas horizontales en un gráfico, ¿puede enviarme un código de ejemplo?

Oops )) Resulta que la ayuda del sitio es más extenso, he encontrado lo que estoy buscando - CLineChart clase ))

Razón de la queja: