Errores, fallos, preguntas - página 2324

 

1. ¿por qué la sección de "aplicaciones"? en pocas palabras, no lo entiendo.

2. ¿dónde está la sección de servicedesk? quiero que envíen a alguien a este hilo:

https://www.mql5.com/ru/forum/290284

gracias

 
El gráfico comienza a desplazarse de nuevo, como cuando se pulsa el botón "Home" - no se detecta ningún patrón, no hay problema durante medio año y ahora vuelve... construir 1940.
 
Un error de puntero
class A {};

void OnStart()
{
  A* a = NULL;
  
  if (true && a) // '&&' - illegal operation use
    ;
    
  if (a) // OK
    ;
}
 
Vladimir Pastushak:

¿Es este un comportamiento normal de la función? Si es así, ¿cómo se puede reducir el tiempo? El historial ha sido precargado

Resultado :

Símbolo ARSA 16 544 647

AVAN 16 506 592

Símbolo AVAZ 16 553 408

AVAZP 16 511 019

Símbolo ASSB 16 521 310


Este comportamiento aparece en el CFD


El comportamiento aparece en todos los

Aquí está el script, tarda 16 segundos en solicitar el precio, en este punto el programa se cuelga en el acto...

void OnStart()
  {
   int     all_symbols = SymbolsTotal(false);
   string  sym_name    = "";
   MqlRates   mas[];
   Print("Symbols all ",all_symbols);
   ulong time_=GetMicrosecondCount();
   
   for(int i=0;i<all_symbols;i++)
      if((sym_name=SymbolName(i,false))!="")
        {
         SymbolSelect(sym_name,true);
         ArrayResize(mas,i+1,100000);

         time_=GetMicrosecondCount();

         CopyRates(sym_name,PERIOD_D1,0,1,mas);

         Print("Copy   N ",(i+1)," Name ",sym_name," time = ",(GetMicrosecondCount()-time_));

        }

   for(int i=0;i<all_symbols;i++)
      if((sym_name=SymbolName(i,false))!="")
        {
         SymbolSelect(sym_name,true);
         ArrayResize(mas,i+1,100000);

         time_=GetMicrosecondCount();

         double rez = iOpen(sym_name,PERIOD_D1,0);

         Print("iOpen   N ",(i+1)," Name ",sym_name," time = ",(GetMicrosecondCount()-time_));

        }
  }

Este es un registro parcial

DJ 0 12:18:33.507 TestCopy (EURUSD,H1) Copy N 63 Nombre SGDJPY time = 46076

OP 0 12:18:33.552 TestCopy (EURUSD,H1) Copy N 64 Nombre USDEUR_BASKET time = 44995

IG 0 12:18:33.597 TestCopy (EURUSD,H1) Copy N 65 Name EURRUB_TOD time = 44863

LI 0 12:18:33.642 TestCopy (EURUSD,H1) Copy N 66 Name EURRUB_TOM time = 45040

GS 0 12:18:33.698 TestCopy (EURUSD,H1) Copy N 67 Nombre USDRUB_TOD time = 56006

CF 0 12:18:33.743 TestCopy (EURUSD,H1) Copy N 68 Nombre USDRUB_TOM time = 44925

CI 0 12:18:33.787 TestCopy (EURUSD,H1) Copy N 69 Nombre CNYRUB_TOD time = 44820

ES 0 12:18:33.833 TestCopy (EURUSD,H1) Copy N 70 Name CNYRUB_TOM time = 45086

CF 0 12:18:50.336 TestCopy (EURUSD,H1) Copia N 71 Nombre ABRD tiempo = 16503669

KL 0 12:19:06.836 TestCopy (EURUSD,H1) Copia N 72 Nombre AESL tiempo = 16499892

FF 0 12:19:06.881 TestCopy (EURUSD,H1) Copy N 73 Name AFKS time = 44842

CH 0 12:19:06.926 TestCopy (EURUSD,H1) Copy N 74 Name AFLT time = 44963

DP 0 12:19:23.429 TestCopy (EURUSD,H1) Copia N 75 Nombre AKRN tiempo = 16502943

CG 0 12:19:39.929 TestCopy (EURUSD,H1) Copia N 76 Nombre ALBK tiempo = 16499755

RL 0 12:19:56.433 TestCopy (EURUSD,H1) Copia N 77 Nombre ALNU tiempo = 16503651

EG 0 12:19:56.478 TestCopy (EURUSD,H1) Copia N 78 Nombre ALRS tiempo = 44989

OK 0 12:20:12.978 TestCopy (EURUSD,H1) Copia N 79 Nombre AMEZ tiempo = 16500788

QS 0 12:20:13.034 TestCopy (EURUSD,H1) Copia N 80 Nombre APTK tiempo = 55954

GF 0 12:20:29.541 TestCopy (EURUSD,H1) Copia N 81 Nombre ARMD tiempo = 16506946

HM 0 12:20:46.051 TestCopy (EURUSD,H1) Copia N 82 Nombre ARSA tiempo = 16509620

DD 0 12:21:02.553 TestCopy (EURUSD,H1) Copia N 83 Nombre ASSB tiempo = 16501809

GK 0 12:21:19.083 TestCopy (EURUSD,H1) Copia N 84 Nombre AVAN tiempo = 16529765

HP 0 12:21:35.586 TestCopy (EURUSD,H1) Copia N 85 Nombre AVAZ tiempo = 16502812

HK 0 12:21:52.085 TestCopy (EURUSD,H1) Copia N 86 Nombre AVAZP tiempo = 16499796

NO 0 12:21:52.130 TestCopy (EURUSD,H1) Copia N 87 Nombre BANE tiempo = 44973


Registro completo en la parte inferior.

Archivos adjuntos:
20181120.log  196 kb
 
fxsaber:
Un error de puntero

¿Cuál es la diferencia?

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

fxsaber, 2018.09.17 14:17

¿Es un error?
class A {};

A* a = NULL;

bool b1 = a && true; // OK
bool b2 = true && a; // '&&' - illegal operation use

 
A100:

¿Cuál es la diferencia con eso?

Tengo muy mala memoria. Algunas "bicicletas" las reinvento varias veces.

 
Creo que hay una razón para este error, porque (si hubiera una conversión de puntero implícito libre a bool) no está claro cómo interpretar
class A {
public:
        bool operator&&( bool a ) { return a; }
};
void OnStart()
{
        A *a, *b;
        if (a && b);
}

si es o no

        if ((bool)a &&(bool)b);       //(1)

o como

        if ((*a).operator&&((bool)b));//(2)
 
A100:
Creo que este error está ahí por una razón, porque (si hubiera una conversión implícita libre de punteros a bool) no está claro cómo interpretar

Sí, hay ambigüedad en su caso. En el buen sentido, debería haber al menos una advertencia del compilador para este tipo de cosas.

En mi caso, que es mucho más sencillo, todo está claro. Creo que C++ también está de acuerdo con eso.

 

fxsaber:
Это баг?

class A {};

A* a = NULL;

bool b1 = a && true; // OK
bool b2 = true && a; // '&&' - illegal operation use

¡Como solución temporal, utilice el operador '! (no es lógico)

class A {};

A* a = NULL;

bool b1 = !!a && true;
bool b2 = true && !!a;


Vamos a pensar en la solución (¿podemos cambiar el comportamiento ahora, cuando hay mucho código?)
Es posible que para un puntero, una operación de conversión bool sea una operación sobre el puntero y no sobre el objeto al que apunta.

En este caso, para realizar la operación sobre el objeto, tendremos que escribir el código así

class A {};

A* a = NULL;

bool b1 = *a && true;
bool b2 = true && *a;

También queremos añadir los operadores de conversión, pero esta tarea es (muy) poco prioritaria
 
Ilyas:

¡Como solución temporal, utilice el operador '! (no es lógico)

¿Está optimizada la doble negación por el compilador?