Errores, fallos, preguntas - página 2650

 
¿Puedes decirme dónde está el fallo, en MQL4 o en MQL5?
struct A
{
  static const int Array[];
};

static const int A::Array[] = {0};

struct B : public A
{  
  int i[sizeof(B::Array)]; // MQL5 - ok, MQL4 - ok.
  int j[sizeof(A::Array)]; // MQL5 - ok, MQL4 - error.
};
Cadena de búsqueda: Oshibka 004.
 
fxsaber:

¿Podría investigar también este problema?


El moderador estaba actualizando a mano a petición mía. Pero no puedo pedirlo siempre. La máquina no pasa.

Corregido.

 
Anton:

Corregido.

Ya veo, gracias.

 
Andrey Khatimlianskii:

En los ticks de todas las herramientas utilizadas.


aquí está mi código para comprobar si hay nuevos ticks:

void OnTimer()
  {
//+------------------------------------------------------------------+
// Перебор всех символов, которые указаны в внешних переменных
// Recursion of all symbols that are specified in external variables
//+------------------------------------------------------------------+
   string SymbolToTick="";
   for(int si=0; si<12; si++)
     {
      if(si==0)
         SymbolToTick=PAIR1;
      if(si==1)
         SymbolToTick=PAIR2;
      if(si==2)
         SymbolToTick=PAIR3;
      if(si==3)
         SymbolToTick=PAIR4;
      if(si==4)
         SymbolToTick=PAIR5;
      if(si==5)
         SymbolToTick=PAIR6;
      if(si==6)
         SymbolToTick=PAIR7;
      if(si==7)
         SymbolToTick=PAIR8;
      if(si==8)
         SymbolToTick=PAIR9;
      if(si==9)
         SymbolToTick=PAIR10;
      if(si==10)
         SymbolToTick=PAIR11;
      if(si==11)
         SymbolToTick=PAIR12;
     
      if(SymbolToTick=="" && si==0)
        {
         SymbolToTick=Symbol();
        }
      if(SymbolToTick=="")
         continue;
      //|#############################################################################################+
      // проверяем текущий Бид Аск
      MqlTick last_tickSymbol;
      SymbolInfoTick(SymbolToTick,last_tickSymbol);
      double currentBid=last_tickSymbol.bid;
      double currentAsk=last_tickSymbol.ask;

      //|#############################################################################################+
      // Если тик изменился, запускаем тик этого символа
      if(currentBid!=LastBid[si] || currentAsk!=LastAsk[si])
        {
         // Запускаем исполнение тика
         OnTickSymbol(si,SymbolToTick);
         LastBid[si]=currentBid;
         LastAsk[si]=currentAsk;
         TicksAllNumbers[si]++;
        }
      //|#############################################################################################+
     }
  }


Se ha creado un array para las pruebas con el número de ticks contados.


Prueba de dos pares EURUSD GBPUSD

Realizando una prueba en el GBPUSD:

2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


Realizando una prueba en el EURUSD:

2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


Las garrapatas parecen ser las mismas. ... ... ... así que debo haberme perdido algo .....

Gracias, seguiré investigando.



DECISIÓN: _Digit estaba en el código, debí añadirlo al entorno..... sin mirar.

no hace falta comentar nada :-)

 
Anton:

Mueva el archivo mql5pack-ico.zip a la carpeta.

Movido este archivo a la carpeta MQL5/Scripts. No sirvió de nada. Luego lo moví a la carpeta MQL5/Archivos - tampoco ayudó.

Probablemente no entienda de qué se trata.

 
Stanislav Korotky:

Lo he movido a la carpeta MQL5/Scripts. No ayudó.

Arreglado.

 

Konstantin Gruzdev

Usted es un autor interesante, el más interesante aquí. hizo una pregunta a Vladislav, también estoy interesado en la multidivisa, ya que hay matices en la nueva barra y en la no aplicabilidad de todas las barras necesarias

 
el tema de la multidivisa sigue colgado, MQ no quiere dar señales por alguna razón, prefiero que los programadores se llenen de problemas de sincronización y espionaje. esto no debería continuar por mucho tiempo.
 
Vladislav Andruschenko:
A través del temporizador sí,
Es más probable que aumente la frecuencia del temporizador ......
Le falta algún número de garrapatas. Por eso hay una diferencia en los resultados. La diferencia es muy pequeña. Pero basta con saltarse 1 tic y todo se pone patas arriba.

No es un hecho que la frecuencia mejore los resultados, pero sí que disminuye la velocidad de las pruebas. Los eventos del temporizador no son perfectos, casi siempre habrá un error. Incluso en un temporizador vacío se puede ver el error. Si hay cálculos dentro de la función del temporizador, es probable que el margen de error sea mayor. Cargar el ordenador con tareas de terceros también puede afectar al temporizador. Existe la posibilidad de que no todas las señales de apertura/cierre/modificación lleguen al mismo tiempo y en los mismos ticks.

Cabe mencionar que todas estas observaciones las hice hace un par de años en una pesada herramienta multidivisa que utiliza casi 30 instrumentos simultáneamente. Los resultados sólo coincidían cuando el temporizador estaba apagado. Supongo que ahora no ha cambiado mucho.

 
Fast235:

Konstantin Gruzdev

Usted es un autor interesante, el más interesante aquí. hizo una pregunta a Vladislav, también estoy interesado en la multidivisa, ya que hay matices en la nueva barra y en la no aplicabilidad de todas las barras necesarias

Bien. Respuesta anterior.