Erros, bugs, perguntas - página 846

 
Diga-me, existe alguma função que possa enviar uma posição para trabalho adicional (modificação) usando , ulong deal; // Ticket deal, se for feito pelo bilhete do negócio, lembrado anteriormente? Provavelmente, uma tal selecção exigiria algum algoritmo complexo - como a mão esquerda para escovar a orelha direita?
 
Dimka-novitsek:
Diga-me, existe alguma função que possa enviar uma posição para trabalho adicional (modificação) usando , ulong deal; // Ticket deal, se for feito pelo bilhete do negócio, lembrado anteriormente? Provavelmente, esta escolha exigirá algum algoritmo complexo, como a mão esquerda a escovar a orelha direita?
Cada comércio tem um identificador de posição. Utilizando este identificador, tentaremos pesquisar a posição em si.
 

Boa noite a todos! Vejo que as pessoas estão interessadas neste ramo. Sobre o campeonato...

Ainda não verifiquei os meus dados enviados da informação fechada para o campeonato, embora o perito - verificado!

Quando serão verificados?

 
Leo:

Boa noite a todos! Vejo que as pessoas neste ramo estão interessadas. Sobre o campeonato...

Ainda não verifiquei os meus dados enviados da informação fechada para o campeonato, embora o perito - verificado!

Quando serão verificados?

Se o robô for verificado sem erros, não há necessidade de se preocupar. Tanto quanto sei, o perito é verificado automaticamente, mas os dados pessoais são verificados manualmente.
 
Leo:

Boa noite a todos! Vejo que as pessoas neste ramo estão interessadas. Sobre o campeonato...

Ainda não verifiquei os meus dados enviados da informação fechada para o campeonato, embora o perito - verificado!

Quando serão verificados?

Foi aconselhado noutro local: se houver alguma dúvida, um concorrente registado pode facilmente escrever sobre o seu problema na secção "Discussão" da sua página do campeonato. A mensagem chegará ao destinatário muito mais rapidamente do que através do fórum.
 

Tenho uma pergunta a fazer.

Há um pedaço de código do artigo que define o início de uma nova barra.

   static datetime Old_Time;
   datetime New_Time[1];
   bool IsNewBar=false;

// копируем время текущего бара в элемент New_Time[0]
   int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
   if(copied>0) // ok, успешно скопировано
     {
      if(Old_Time!=New_Time[0]) // если старое время не равно
        {
         IsNewBar=true;   // новый бар
         if(MQL5InfoInteger(MQL5_DEBUGGING)) 
            Print("Новый бар",New_Time[0],"старый бар",Old_Time);
            Old_Time=New_Time[0];   // сохраняем время бара
        }
     }
   else
     {
      Alert("Ошибка копирования времени, номер ошибки =",GetLastError());
      ResetLastError();
      return;
     }

//--- советник должен проверять условия совершения новой торговой операции только при новом баре
   if(IsNewBar==false)
     {
      return;
     }

Tudo funciona bem. Mas quero incluir o cálculo de diferentes estatísticas pesadas no último "se". Quero ter cálculos mínimos no momento de um novo bar.

Eis a minha pergunta. Como este código se comportará se as estatísticas forem calculadas durante um tempo relativamente longo (digamos, 2 segundos) e se o intervalo entre as carraças da antiga e da nova barra for mínimo.

Tanto quanto sei, enquanto afunção OnTick() está a calcular carraças será ignorada, mas a próxima carraça será nova para a EA, embora não seja a primeira na barra.

A verificação manual ainda não funcionou

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
St.Vitaliy: Como este código se comportará, se as estatísticas forem lidas durante um período de tempo relativamente longo (digamos 2 segundos)
Se a função OnTick() for executada durante 2 segundos, então todas as citações que vierem durante este período serão ignoradas pelo Conselheiro Especialista. Este é o ponto que queria esclarecer? Uma "nova" citação para o Expert Advisor será uma citação que chega imediatamente após a função OnTick() ser executada, mesmo que esta citação não seja a "primeira citação na barra".
 
Yedelkin:
Se a função OnTick() for executada durante 2 segundos, então todas as citações que vierem durante este intervalo de tempo serão ignoradas pela EA. É este o ponto que queria esclarecer?

Aqui, estes 2 segundos são ignorados (e os carrapatos durante este tempo), mas no terceiro carrapato, por exemplo, virá outro carrapato e o código irá percebê-lo como novo na barra?

Isto é indirectamente confirmado pelo facto de que quando eu dirijo a EA, o próximo tick é sempre o primeiro.

Se as estatísticas forem calculadas para 90 segundos, a condição para um novo tick no M1 será executada pelo menos uma vez?

 
Yedelkin:
Cada comércio tem um identificador de posição. Utilize este identificador para procurar a posição em si.
Obrigado!!!
 
St.Vitaliy: Aqui, estes 2 segundos são ignorados (e os carrapatos durante este tempo), mas no terceiro, por exemplo, virá outro carrapato e o código irá aceitá-lo como um novo carrapato na barra? Indirectamente é provado pelo facto de que, quando executo a EA, o próximo tick é sempre o primeiro. Faço uma pergunta diferente, se as estatísticas forem calculadas para 90 segundos, será que a condição para um novo tick no M1 alguma vez será cumprida?

Bem, já o terminei acima. Deixe-me repetir: a "nova" citação do Expert Advisor é uma citação que chega logo após a conclusão da próxima função OnTick(), mesmo que esta citação não seja a "primeira citação de um bar". A sua condição de um novo bar a chegar

if(Old_Time!=New_Time[0])

só será verificado após o Expert Advisor terminar o processamento da cotação que veio na barra "anterior". ...Se a função OnTick() for executada durante 90 segundos e for iniciada às 00.00.00, a "condição para um novo tick no M1 será executada em algum momento", nomeadamente depois das 00.01.30.

Razão: