Errores, fallos, preguntas - página 2224

 
fxsaber:

El tiempo de modificación actualizado no tiene efecto en el resultado. EA

Sí. Gracias. Encontré el problema.

Habrá una solución en un futuro próximo. Sin embargo, los archivos utilizados de la carpeta común siguen sin poder ser controlados. Sólo los archivos especificados en la propiedad #archivo_de_prueba

 

Al volver a encender el probador en modo de visualización después de una pasada, me doy cuenta de que tengo la configuración equivocada y el probador de estrategias se cuelga durante un par de minutos.

2018.07.11 17:03:05.992 Core 8  disconnected
2018.07.11 17:03:05.992 Core 8  connection closed
2018.07.11 17:03:09.241 Core 8  connecting to 127.0.0.1:3000
2018.07.11 17:03:18.308 Tester  stopped by user
2018.07.11 17:03:19.241 Core 8  tester agent authorization error
 
//Определение экстремума
for(int i=NBars;i<=NumBars;i++)
     {
      xMinL=ArrayMinimum(MinBuffer,0,i);
      xMinLD=ArrayMinimum(MinBuffer,0,i+NBars);
      if((MinBuffer[xMinL]<=MinBuffer[xMinLD])&&(xMinL>=NBars))
        {
         Minimum=MinBuffer[xMinL];
         break;}}

//Проверка если ордера с такой же ценой не существует         
   for (int r=0; r<=OrdersTotal(); r++)
   {if (OrderSelect(OrderGetTicket(r)))
    {if (StringToDouble(OrderGetString(ORDER_COMMENT))==NormalizeDouble(Minimum,_Digits))    
       {x2=1;
        break;}
     else x2=0;}}

//Проверка если Позиции с такой же ценой не существует     
   for (int l=0; l<=PositionsTotal(); l++)
   {if (PositionSelectByTicket(PositionGetTicket(l)))
    {if (StringToDouble(PositionGetString(POSITION_COMMENT))==NormalizeDouble(Minimum,_Digits))     
       {y2=1;
        break;}
     else y2=0;}}

//Если проверка отрицательная, открываем ордер        
   if ((x2==0)&&(y2==0))
   m_trade.SellStop(Volume,NormalizeDouble(Minimum,_Digits),_Symbol,NormalizeDouble(Minimum+(SL_ATR*ATR2),_Digits),NormalizeDouble(Minimum-(TP_ATR*ATR2),_Digits),ORDER_TIME_GTC,0,DoubleToString(Minimum,_Digits));
Hola queridos usuarios del foro. Este es un extracto de código que detecta los extremos y coloca órdenes pendientes sobre ellos. Parece que funciona, pero a veces empieza a poner pausas interminables en un extremo, como si no viera el criterio de parada. Ya me he devanado los sesos.
 
Dmitri Custurov:
Hola queridos usuarios del foro. Este es un fragmento de código que identifica los extremos y establece órdenes pendientes en ellos. Parece que funciona, pero a veces empieza a poner pausas interminables en un extremo, como si no viera el criterio de parada. Ya me he devanado los sesos.

Entonces, ¿es correcto comparar?

if (StringToDouble(PositionGetString(POSITION_COMMENT))==NormalizeDouble(Minimum,_Digits)){.....}
 

En el indicador

Imprimiendo en modo probador de estrategias visuales, ya que mi cerebro ya ha hervido - no pude encontrar el error en la lógica:

Print(iHigh(Symbol(),PERIOD_CURRENT,i+1), "  ",sqh_buffer[i+1]);

Fecha de inicio 01.01.2018 minutos

2018.07.11 17:19:07.770 2018.01.01 00:00:00   58148.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58149.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58146.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58140.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58139.0  0.0
2018.07.11 17:19:07.863 2018.01.03 10:00:00   58139.0  58391.79995461365
2018.07.11 17:19:07.863 2018.01.03 10:00:00   58135.0  58391.71051866656
2018.07.11 17:19:07.906 2018.01.03 10:00:20   58135.0  58463.08874123808

Por supuesto, no hay citas reales en esta fecha, la gente tiene un día de fiesta, entonces ¿cuáles son estos números mágicos, y en general, ¿cómo puedo obtener información para la primera fecha?

 

Pregunta:

¿Cómo sé que el temporizador está activado y cuál es su frecuencia?

¿No estoy leyendo bien la ayuda o no es posible?

 
Nikolai Semko:

Pregunta:

¿Cómo sé que el temporizador está activado y cuál es su frecuencia?

¿O no estoy leyendo bien la ayuda, o no es posible?

A juzgar por el silencio, no debe existir tal posibilidad. :((

Pero, ¿cómo es posible? ¡Es una función muy sencilla y útil!

Por ejemplo, creo una clase que utiliza el temporizador. Y dentro de la clase puedo activar y desactivar el temporizador, cambiar la periodicidad del mismo. Pero para trabajar sin conflictos con el resto del programa la clase debe saber si el temporizador está activado o desactivado y cuál es su periodicidad.

 
Nikolai Semko:

A juzgar por el silencio, probablemente no exista tal posibilidad. :((

Pero cómo es que, después de todo, es una función muy sencilla y útil.

Por ejemplo, creo una clase que utiliza un temporizador. Y dentro de la clase puedo activar y desactivar el temporizador, cambiar la periodicidad del mismo. Pero para trabajar con el resto del programa sin conflictos, la clase debe saber si el temporizador está activado o desactivado y cuál es su periodicidad.

Así que, de nada, o mejor dicho, de la clase.

 
Sergey Dzyublik:

Bandera en el patio, o más bien en el aula.

No servirá de nada. Especialmente si el temporizador ya está activado antes de ser habilitado en la clase, por ejemplo, a intervalos de algunas horas o días. Entonces dicha clase arruinará toda la lógica del programa.

 
Sergey Dzyublik:

Entonces, ¿es correcta la comparación?

He probado tanto el feng shui como esto - el resultado es el mismo. El caso es que todo funciona el 99% de las veces, y yo necesito el 100%. Por el momento, lo principal para mí es conseguir la lógica correcta, y podré hacer la belleza más tarde.

Se me olvidó añadir sólo que el error mencionado anteriormente aparece en el probador. Cuando lo abro en un gráfico, no lo veo o sólo tengo que esperar al extremo requerido donde se producirá de nuevo este error.