Caractéristiques du langage mql5, subtilités et techniques - page 43

 
fxsaber:
Dans ce cas, même sans les parenthèses supplémentaires, cela fonctionnera.
Les crochets sont pour moi. Je vois mieux de cette façon.
 
Quand il est fatigant de sélectionner la bonne fonction sous la propriété d'intérêt
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 sur le trading, les systèmes de trading automatisés et les tests de stratégie

Bibliothèques : 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);
}
 
Veuillez me dire à quoi sert la fonction HistoryDealSelect, lorsque dans la fonction HistoryDealGetInteger, HistoryDealGetDouble,
Les fonctions HistoryDealGetString, quand le ticket_number doit être spécifié à nouveau ?
 
. ... Rick D. ... .:
Pouvez-vous me dire à quoi sert la fonction HistoryDealSelect, quand dans les fonctions HistoryDealGetInteger, HistoryDealGetDouble,
Les fonctions HistoryDealGetString, lorsqu'il est nécessaire de spécifier à nouveau le numéro de ticket ?

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Particularités du langage mql5, subtilités et astuces

fxsaber, 2017.06.07 22:20

Il existe deux tables d'historique en cours dont les données sont disponibles via les fonctions d'historique - la table des commandes et la table des transactions.

Leur contenu ne peut être influencé que par les fonctions HistorySelect. Et cela se passe comme suit

  • HistorySelect et HistorySelectByPosition - affectent les deux tables simultanément.
  • L'option HistoryDealSelect affecte UNIQUEMENT la table Deals (elle n'a aucun effet sur la table Orders-history actuelle).
  • HistoryOrderSelect affecte la table Orders UNIQUEMENT (n'affecte pas la table Deals-history actuelle).

Le tableau des transactions devient un seul élément.
 
Y a-t-il une limite au nombre d'objets graphiques pouvant être placés sur un graphique ? ) Il ne s'agit pas d'un graphique en pixels, mais d'éléments graphiques - lignes de tendance, rectangles, etc.
 
Konstantin:
Existe-t-il une limitation du nombre d'objets graphiques pouvant être placés sur un graphique ? Je ne parle pas de pixels, mais d'éléments graphiques - lignes de tendance, rectangles, etc.
j'ai essayé plus de 2000 - ça a marché
 
Vitaly Muzichenko:
j'ai essayé plus de 2000 - ça a marché

et comment cela serait-il moins coûteux en termes de ressources si vous devez effectuer des changements à chaque tic:

1. utiliser les objets graphiques 2000

2. utiliser la classe Canvas et créer sur chaque coche un dessin qui contient les mêmes 2000 dessins d'objets graphiques

 
Konstantin:

et comment cela serait-il moins coûteux en termes de ressources si vous devez effectuer des changements à chaque tic:

1. utiliser les objets graphiques 2000

2. utilisez la classe Canvas et créez un dessin avec les mêmes 2000 dessins d'objets graphiques sur chaque coche

Canvas sera plusieurs fois plus productif, je l'ai essayé.
 
Vitaly Muzichenko:
La toile sera plusieurs fois plus productive, je l'ai essayé.

J'ai besoin de dessiner un tableau de lignes horizontales sur un graphique, pouvez-vous m'envoyer un exemple de code ?

Oups )) Il s'avère que l'aide du site est plus étendue, j'ai trouvé ce que je cherchais - la classe CLineChart ;))

Raison: