Erreurs, bugs, questions - page 1751

[Supprimé]  
Vladislav Andruschenko:
non. cette fonction affiche la fenêtre en haut. mais elle ne vérifie pas s'il y a une fenêtre en haut

ChartGetInteger()


https://www.mql5.com/ru/forum/42833#comment_1493908

l'aide n'a pas encore changé, un an et demi n'est pas un délai :))

Активный, в данный момент график.
Активный, в данный момент график.
  • www.mql5.com
Есть индикатор на каждом графике.
 

Ce n'est pas du tout le cas. Un graphique peut ne pas être en haut mais être visible. Ou il peut être au sommet mais invisible.

Dessiner sur un graphique n'a de sens que si l'on sait s'il est visible ou non.

[Supprimé]  
fxsaber:

Ce n'est pas du tout le cas. Un graphique peut ne pas être en haut mais être visible. Ou bien il peut être en haut mais non visible.

Il n'est logique de dessiner sur un graphique que si l'on sait s'il est visible ou non.

Essayez ceci
 
fxsaber:

Ce n'est pas du tout le cas. Un graphique peut ne pas être en haut mais être visible. Ou bien il peut être en haut mais non visible.

Dessiner sur un graphique n'a de sens que si l'on sait s'il est visible ou non.

WinApi est votre aide.
Vous pouvez y obtenir les coordonnées et la largeur des graphiques, ainsi que leur ordre z - toutes les fenêtres de graphiques appartiennent au même WMIClient.
 
pako:
Essayez ça.
Ça ne va pas.
 
Sergey Dzyublik:
WinApi est votre aide.
Vous pouvez y obtenir les coordonnées et la largeur des graphiques, ainsi que leur ordre z - toutes les fenêtres de graphiques appartiennent au même WMIClient.
Merci, je suis au courant de WinAPI. Je vais suggérer au Service Desk d'étendre ENUM_CHART_PROPERTY_INTEGER.
 

J'utilise un script pour appeler les données de la période. En commençant par les chiffres horaires, les chiffres sont incompréhensibles. Ou est-ce que ça devrait être comme ça ?

void OnStart()
  {
Print("Period()=",Period());
  
  }
2016.11.01 16:56:07.466 период (EURUSD,H1)      Period()=16385
2016.11.01 16:55:58.840 период (EURUSD,M30)     Period()=30
2016.11.01 16:55:46.950 период (EURUSD,M1)      Period()=1
 
forexman77:

J'utilise un script pour appeler les données de la période. En commençant par les chiffres horaires, les chiffres sont incompréhensibles. Ou est-ce que ça devrait être comme ça ?

void OnStart()
  {
Print("Period()=",Period());
  
  }
2016.11.01 16:56:07.466 период (EURUSD,H1)      Period()=16385
2016.11.01 16:55:58.840 период (EURUSD,M30)     Period()=30
2016.11.01 16:55:46.950 период (EURUSD,M1)      Period()=1
C'est censé être comme ça.
 

Est-ce la bonne approche de mesurer les temps au tour complets dans le flux actuel des indicateurs ?

#property indicator_chart_window

#property indicator_buffers 0
#property indicator_plots 0

sinput int Amount = 100; // Количество циклов

void OnInit( void )
{
  EventSetMillisecondTimer(1);
}

ulong ArrayMean( const ulong &Array[] )
{
  const int Size = ArraySize(Array);
  
  ulong Sum = 0;
  
  for (int i = 0; i < Size; i++)
    Sum += Array[i];
    
  return((Size > 0) ? Sum / Size : 0);
}

ulong ArrayMin( const ulong &Array[] )
{
  return(Array[ArrayMinimum(Array)]);
}

ulong ArrayMax( const ulong &Array[] )
{
  return(Array[ArrayMaximum(Array)]);
}

#define TOSTRING(A) #A + " = " + (string)(Array##A(Cycles)) + " mcs. "

void CycleComment( void )
{
  static ulong Cycles[];
  static const int Size = ArrayResize(Cycles, Amount);
  
  static ulong PrevTime = GetMicrosecondCount();
  static int i = 0;
    
  Cycles[i] = GetMicrosecondCount() - PrevTime;

  i++;
  i %= Size;
  
  Comment(TOSTRING(Mean) + TOSTRING(Min) + TOSTRING(Max));
    
  PrevTime = GetMicrosecondCount();
}

void OnTimer( void )
{
  CycleComment();
}

int OnCalculate( const int rates_total, const int prev_calculated, const int begin, const double& price[] )
{
  return(rates_total);
}

J'obtiens beaucoup de choses sur un graphique vide (sans indicateurs) - une moyenne de 15ms, un minimum de 5ms. Pourquoi en est-il ainsi ?

 
A100:

Le résultat final devrait être quelque chose comme ceci

void OnStart()
{
        A<int> a;
        int b  = a[ 0 ];
        a[ 0 ] = a[ 1 ];
        a[ 1 ] = b;
}
C'est un problème intéressant. J'y ai pensé pendant un moment et je n'ai pas encore trouvé de solution.