Errores, fallos, preguntas - página 846

 
Dígame, ¿existe una función que pueda enviar una posición para su posterior trabajo (modificación) utilizando , ulong deal; // Ticket deal, si se realiza por el ticket del deal, recordado anteriormente? Probablemente, esa elección requeriría algún algoritmo complejo, como que la mano izquierda roce la oreja derecha.
 
Dimka-novitsek:
Dígame, ¿existe una función que pueda enviar una posición para su posterior trabajo (modificación) utilizando , ulong deal; // Ticket deal, si se realiza por el ticket del deal, recordado anteriormente? Probablemente, esta elección requerirá algún algoritmo complejo, como que la mano izquierda roce la oreja derecha...
Cada operación tiene un identificador de posición. Utilizando este identificador, intentaremos buscar la posición en sí.
 

Buenas noches a todos. Veo que la gente está interesada en esta rama. Sobre el campeonato...

¡Todavía no he comprobado mis datos enviados desde la información cerrada para el campeonato, aunque el experto - comprobado!

¿Cuándo se revisarán?

 
Leo:

Buenas noches a todos. Veo que la gente está interesada en esta rama. Sobre el campeonato...

¡Todavía no he comprobado mis datos enviados desde la información cerrada para el campeonato, aunque el experto - comprobado!

¿Cuándo se revisarán?

Si el robot se comprueba sin errores, no hay que preocuparse. Según tengo entendido, el experto se comprueba automáticamente, pero los datos personales se comprueban manualmente.
 
Leo:

Buenas noches a todos. Veo que la gente está interesada en esta rama. Sobre el campeonato...

¡Todavía no he comprobado mis datos enviados desde la información cerrada para el campeonato, aunque el experto - comprobado!

¿Cuándo se revisarán?

Se ha aconsejado en otro lugar: si hay alguna pregunta, un competidor registrado puede escribir fácilmente sobre su problema en la sección "Discusión" de su página de campeonato. El mensaje llegará al destinatario mucho más rápido que a través del foro.
 

Tengo una pregunta.

Hay un trozo de código del artículo que define el inicio de una nueva 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;
     }

Todo funciona bien. Pero quiero incluir el cálculo de diferentes estadísticas pesadas en el último si. Quiero tener cálculos mínimos en el momento de una nueva barra.

Esta es mi pregunta. Cómo se comportará este código si las estadísticas se calculan para un tiempo relativamente largo (digamos, 2 segundos) y la brecha entre los ticks de la barra antigua y la nueva es mínima.

Por lo que entiendo, mientrasla función OnTick() está calculando los ticks se saltarán pero el siguiente tick será nuevo para el EA, aunque no sea el primero de la barra.

La comprobación manual aún no ha funcionado

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
St.Vitaliy: Cómo se comportará este código, si las estadísticas se leen durante un tiempo relativamente largo (digamos 2 segundos)
Si la función OnTick() se ejecuta durante 2 segundos, entonces todas las cotizaciones que vengan durante este periodo serán ignoradas por el Asesor Experto. ¿Este es el punto que querías aclarar? Una "nueva" cotización para el Asesor Experto será una cotización que llegue inmediatamente después de que se ejecute la función OnTick(), aunque esta cotización no sea el "primer tick de la barra".
 
Yedelkin:
Si la función OnTick() se ejecuta durante 2 segundos, entonces todas las cotizaciones que vengan dentro de este marco de tiempo serán ignoradas por el EA. ¿Es este el punto que querías aclarar?

Aquí, estos 2 segundos se ignoran (y los ticks durante este tiempo), pero en el tercer tick, por ejemplo, vendrá otro tick y el código lo percibirá como nuevo en la barra?

Esto se confirma indirectamente por el hecho de que cuando ejecuto el EA, el siguiente tick es siempre el primero.

Si la estadística se calcula para 90 segundos, la condición para un nuevo tick en M1 se ejecutará al menos una vez?

 
Yedelkin:
Cada operación tiene un identificador de posición. Utilice este identificador para buscar el propio puesto.
¡¡¡Gracias!!!
 
St.Vitaliy: Aquí, estos 2 segundos se ignoran (y los ticks durante este tiempo), pero en el tercero, por ejemplo, vendrá otro tick y el código lo aceptará como un nuevo tick en la barra? Indirectamente se demuestra por el hecho, que cuando ejecuto el EA, el siguiente tick es siempre el primero. Hago una pregunta diferente, si las estadísticas se calcularán durante 90 segundos, ¿se cumplirá alguna vez la condición de un nuevo tick en M1?

Bueno, ya lo he terminado arriba. Permítanme repetir: la "nueva" cotización para el Asesor Experto es una cotización que llega justo después de la finalización de la siguiente función OnTick(), incluso si esta cotización no es el "primer tick de una barra". Su condición de una nueva barra que llega

if(Old_Time!=New_Time[0])

se comprobará sólo después de que el Asesor Experto termine de procesar la cotización que llegó en la barra "anterior"... Si la función OnTick() se ejecuta durante 90 segundos y se inicia a las 00.00.00, la "condición para un nuevo tick en M1 se ejecutará en algún momento", concretamente después de las 00.01.30