Errores, fallos, preguntas - página 1778

 
Evgeny Chernyshev:
¡Buenas tardes!

Este es un comportamiento estándar. La cuenta atrás comienza a partir de la barra actual que está en construcción. Así, con la aparición de una nueva barra, en ausencia de autodesplazamiento, su número se incrementa en uno.
Ok, entonces por favor agrega en algún lugar de la documentación que no es la "primera barra visible", sino la primera barra a partir de la actual (no terminada).
 

Error durante la ejecución como resultado de la compilación

#define MACRO( x )      #x
void OnStart()
{
        Print( MACRO( "1\0" )); //равносильно Print( "\"1\\0\"" );
}

Resultado: 1

Se espera: "1\0".

2 errores: faltan las comillas " y el carácter \N mal interpretado

y luego

void OnStart()
{
        Print( MACRO( 1\0 )); //Error: '\' - illegal escape sequence
}
error de compilación mientras que el resultado esperado era "10".
 
Vladislav Andruschenko:

Sí, pero eso no se puede explicar a los clientes, ¿verdad?

Imagina que el experto está trabajando, funciona, te vas a dormir, te despiertas y el experto no funciona, ¿por qué?

Ayuda a reiniciar con un breve retraso, algo así:

int err=-1;
      int count=5;
      {while((err!=0)&&(count>0))
      {
         ResetLastError();
         EventSetMillisecondTimer(MSTimerSet);                    //Установка таймера XXX миллисекунд
         err=GetLastError();
         Print("EventSetMillisecondTimer n=",count," err >>",err);
         {if(err!=0){Sleep(50);}}
      }}//while((err!=0)&&(count>0))
 
Yury Kirillov:

Ayuda a reiniciar con una especie de retraso:

int err=-1;
      int count=5;
      {while((err!=0)&&(count>0))
      {
         ResetLastError();
         EventSetMillisecondTimer(MSTimerSet);                    //Установка таймера XXX миллисекунд
         err=GetLastError();
         Print("EventSetMillisecondTimer n=",count," err >>",err);
         {if(err!=0){Sleep(50);}}
      }}//while((err!=0)&&(count>0))
Descubrí por experiencia que el temporizador se cuelga cuando el internet falla. El terminal se congela y el temporizador se cuelga. Es decir, puede colgarse sin motivo. Cuando Internet es lento.

Así que lo hice de manera diferente, a saber. Ejecutar el temporizador en un tic.
 

Error de ejecución

typedef void (*fn)();
class A { public:
        fn a;
};
class B : public A { public:
        void a() { Print( __FUNCSIG__ ); }
};
void OnStart()
{
        B b;
        b.a();
}

Resultado: llamada al puntero de una función no válida; se esperaba la ejecución de B::a()

y aquí -> error de compilación

typedef void (*fn)( int );
class A { public:
        fn a;
};
class B : public A { public:
        void a() { Print( __FUNCSIG__ );  }
};
void OnStart()
{
        B b;
        b.a(); //Error: 'a' - wrong parameters count
}
 
MT4 se salta los eventos de los usuarios en los paquetes. ¿Es una característica o un error?
 
Andrey Dik:
MT4 está saltando los eventos de los usuarios en los paquetes. ¿Esto es un error o un fallo?


Acabo de comprobar en el tablero - todo está bien, todos los eventos están funcionando bien

 
Vladislav Andruschenko:

Acabo de comprobar en el tablero de instrumentos - todo está bien, todos los eventos están funcionando con normalidad

He ejecutado espías en algunos símbolos y el EA recibe eventos de estos espías cuando llegan los ticks. En MT5 todos los eventos tienen tiempo de llegar, pero en MT4 puedo ver congelamientos a veces por un segundo o más.
No hay nada pesado en marcha, un gráfico está abierto.
 
No puedo obtener un valor adecuado del margen requerido para abrir una posición. Obtengo el mismo valor para todos los símbolos, diferentes corredores tienen diferentes valores, uno muestra 0,0 para todos los símbolos, otro muestra 100000,0.

¿Qué está pasando con MT4? Win 10 64, MT4 build 1031

hacerlo:

void OnStart()
{
  Print(MarketInfo (Symbol (), MODE_MARGININIT));
  Print(MarketInfo (Symbol (), MODE_MARGINMAINTENANCE));
  Print(MarketInfo (Symbol (), MODE_MARGINHEDGED));
  Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED));
  Print(SymbolInfoDouble (Symbol (),SYMBOL_MARGIN_INITIAL));
}
O bien MT4 está totalmente fastidiado, o bien estoy completamente desaprendido y ya no entiendo MT4.

Aquí están los valores obtenidos de 2 brokers:


2017.01.31 22:15:59.312 Script MarginReq AUDCHF,M15: removed
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:15:59310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.309 MarginReq AUDCHF,M15: inicializado
2017.01.31 22:15:59.300 MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:15:57.899 Script MarginReq AUDCHF,M15: cargado con éxito
2017.01.01.31 22:13:38.077 Script MarginReq AUDCHF,M15: removed
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: inicializado
2017.01.01.31 22:13:38.066 MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:13:36.806 Script MarginReq AUDCHF,M15: cargado con éxito
Esto es una mierda.
 
Andrey Dik:
No puedo obtener un valor adecuado de margen requerido para abrir una posición. Obtengo el mismo valor para todos los símbolos, diferentes corredores tienen diferentes valores, uno muestra 0,0 para todos los símbolos, otro muestra 100000,0.

¿Qué está pasando con MT4? Win 10 64, MT4 build 1031

hacerlo:

void OnStart()
{
  Print(MarketInfo (Symbol (), MODE_MARGININIT));
  Print(MarketInfo (Symbol (), MODE_MARGINMAINTENANCE));
  Print(MarketInfo (Symbol (), MODE_MARGINHEDGED));
  Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED));
  Print(SymbolInfoDouble (Symbol (),SYMBOL_MARGIN_INITIAL));
}
O bien MT4 está totalmente fastidiado, o bien estoy completamente desaprendido y ya no entiendo MT4.

Aquí están los valores obtenidos de 2 brokers:


2017.01.31 22:15:59.312 Script MarginReq AUDCHF,M15: removed
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:15:59310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.309 MarginReq AUDCHF,M15: inicializado
2017.01.31 22:15:59.300 MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:15:57.899 Script MarginReq AUDCHF,M15: cargado con éxito
2017.01.01.31 22:13:38.077 Script MarginReq AUDCHF,M15: removed
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 0.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075 MarginReq AUDCHF,M15: inicializado
2017.01.01.31 22:13:38.066 MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:13:36.806 Script MarginReq AUDCHF,M15: cargado con éxito
Esto es una mierda.

pruebe con

AccountFreeMarginCheck