Erros, bugs, perguntas - página 1751

 
pako:
CHART_BRING_TO_TOP
Se não estiver em "TOP".
não. esta característica exibe a janela no topo. mas não verifica a existência de uma janela no topo
 
Vladislav Andruschenko:
não. esta característica exibe a janela no topo. mas não verifica a existência de uma janela no topo

ChartGetInteger()


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

ali

a ajuda ainda não mudou, um ano e meio não é um prazo :))

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

Este não é, de todo, o caso. Um gráfico pode não estar no topo, mas ser visível. Ou pode estar no topo, mas invisível.

Desenhar sobre um gráfico só faz sentido ou não se souber se é visível ou não.

 
fxsaber:

Não é de todo esse o caso. Um gráfico pode não estar no topo, mas ser visível. Ou pode estar no topo, mas não visível.

Só faz sentido desenhar num gráfico se se souber se este é visível ou não.

Experimente isto
 
fxsaber:

Este não é, de todo, o caso. Um gráfico pode não estar no topo, mas ser visível. Ou pode estar no topo, mas não visível.

Desenhar sobre um gráfico só faz sentido ou não se souber se é visível ou não.

WinApi é a sua ajuda.
Aí pode obter coordenadas e largura dos gráficos, mais a sua ordem z - todas as janelas dos gráficos pertencem ao mesmo WMICliente.
 
pako:
Experimente isto.
Não encaixa.
 
Sergey Dzyublik:
WinApi é a sua ajuda.
Pode obter as coordenadas e a largura do gráfico ali, mais a sua ordem z - todas as janelas do gráfico pertencem ao mesmo WMICliente.
Obrigado, estou ciente do WinAPI. Vou sugerir ao Service Desk a expansão de ENUM_CHART_PROPERTY_INTEGER.
 

Utilizo um guião para chamar os dados do período. Começando com números horários, os números são incompreensíveis. Ou é suposto ser assim?

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:

Utilizo um guião para chamar os dados do período. Começando com números horários, os números são incompreensíveis. Ou deveria ser assim?

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
É suposto ser assim.
 

É a abordagem correcta para medir os tempos de volta completa no fluxo do indicador actual?

#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);
}

Algo que eu recebo muito num gráfico vazio (sem indicadores) - uma média de 15ms, um mínimo de 5ms. Porque é que é este o caso?