Erros, bugs, perguntas - página 1777

 
O produto será aprovado nos testes automáticos se o produto (o examinador) for laçado no código?
 
Alexandr Bryzgalov:
O produto será aprovado nos testes automáticos se o produto (o examinador) for laçado no código?

Claro que não. Em primeiro lugar, os ciclos não são necessários agora, existe um temporizador. Em segundo lugar, pode ser sempre não reciclado para o testador.

 
Комбинатор:

Claro que não. Primeiro não há necessidade de ciclos agora, há um temporizador. Em segundo lugar, pode ser sempre não reciclado para o testador.

O temporizador não dispara mais do que uma vez a cada 1 segundo se estiver fora do arranque.

é raro.

Ou houve alguma mudança?

 
Alexandr Bryzgalov:

o temporizador não dispara mais do que uma vez a cada 1 segundo, se sair do início.

é raro.

ou houve alguma inovação?

há muito tempo que existe um micro temporizador que dispara uma vez a cada 1ms

Mas agora o temporizador em mt4 está em apuros, deixa de funcionar por alguma razão. Ninguém sabe a resposta"PORQUÊ".

 
Vladislav Andruschenko:

há muito tempo que existe um micro temporizador que dispara uma vez a cada 1ms

Mas agora o temporizador em mt4 está em apuros, deixa de funcionar por alguma razão. Ninguém sabe a resposta"PORQUÊ".

Não funciona em geral.
 
Alexandr Bryzgalov:
em geral, não funciona.

agora basicamente qualquer temporizador - em alguns terminais não funciona, mesmo a administração não sabe porquê.

Mas há alguma especulação - a Internet desliga e o próprio temporizador "desliga".

 
Vladislav Andruschenko:

Mas agora o gaguejador no mt4 está em apuros, deixa de funcionar por alguma razão. Ninguém sabe a resposta"PORQUÊ".

Penso que reiniciar o terminal ou recompilar pode ajudar, mas o bug é BREAKING.
 
Комбинатор:
Parece que reiniciar o terminal ou a recompilação podem ajudar.

Sim, mas não se pode explicar isso aos clientes, pois não?

Imagine que o perito trabalha, trabalha, vai dormir, vai dormir, acorda e o perito não está a trabalhar, porquê? Porque o temporizador desliga, e o que fazer, quem é o culpado?

 
Vladislav Andruschenko:

Sim, mas não se pode explicar isso aos clientes, pois não?
O problema é esse.
 
Alexey Kozitsyn:

Obrigado, por favor verifique o número da primeira barra visível no gráfico: ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR );

A questão é que se desactivar a rolagem do gráfico e monitorizar a última barra visível, então no momento de uma nova vela o seu número muda por alguma razão, embora o gráfico não se mova! A TF é M1 a fim de poder verificar mais rapidamente. Funcionando a partir do indicador:

#property indicator_chart_window
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
   {
    //--- Подписываемся на событие движения мыши
         ChartSetInteger( 0, CHART_EVENT_MOUSE_MOVE, true );
         //---
    return(INIT_SUCCEEDED);
   }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
   {

    return(rates_total);
   }
//+------------------------------------------------------------------+
//| Обработка события графика                                        |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
   {
    switch( id )        
        {
         case CHARTEVENT_MOUSE_MOVE:
                 Print( __FUNCTION__," "+TimeToString( TimeCurrent(), TIME_DATE|TIME_SECONDS )+": sparam = "+sparam+", ",(int)ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR ));
                 break;
        }
   }


Boa tarde!

Este é um comportamento padrão. A contagem decrescente começa a partir da barra actual que está em construção. Assim, quando uma nova barra aparece, se não houver rolagem automática, o seu número é aumentado em um.