MetaEditor build 1463 - página 14

 
Renat Fatkhullin:

En ningún sitio todavía.

ArrayPrint - similar.
 
El problema es .
void OrderSend( int ) {}  // no problem
void Print( MqlTick& ) {} // 'Print' - override system function

Por ejemplo, la clase externa "::" no permitirá la sobrecarga, pero cualquier clase interna sí.

Por eso tenemos que muletear la restricción

class PRINTCLASS
{
public:  
  template <typename T>
  static void MyPrint( const T &Value )
  {
    T Array[1];
    
    Array[0] = Value;
    
    ::ArrayPrint(Array);
  }
  
  template <typename T>
  static void MyPrint( const T Value )
  {
    ::Print(Value);
  }
};

#define Print(A) PRINTCLASS::MyPrint(A)

void OnStart()
{
  MqlTick Tick;
  
  SymbolInfoTick(_Symbol, Tick);

  Print(Tick);
  
  int i = 5;
  
  Print(i);
}
ZS ArrayPrint no se destaca en el sitio.
 
La versión 1467 ya está disponible. ¿Qué cambios hay?
 
Todavía no se ha resuelto
 

Encontré un problema con mi indicador en el probador. Desde la compilación 1463 el probador se cuelga al probar el indicador, casi inmediatamente después del inicio. Es el probador el que se cuelga, no el indicador. Porque, al compilar con el compilador antiguo o con el nuevo, el problema persiste, pero en el probador antiguo todo se prueba con normalidad.

No se ha podido encontrar el lugar en el código que lleva a un cuelgue. He tratado de hacer Comentario en diferentes líneas de código, pero siempre se cuelga en diferentes lugares. En general, algún tipo de comprobador de errores internos.

 
Alexey Navoykov:

Encontré un problema con mi indicador en el probador. Desde la compilación 1463 el probador se cuelga al probar el indicador, casi inmediatamente después del inicio. Es el probador el que se cuelga, no el indicador. Porque, al compilar con el compilador antiguo o con el nuevo, el problema persiste, pero en el probador antiguo todo se prueba con normalidad.

No se ha podido encontrar el lugar en el código que lleva a un cuelgue. He tratado de hacer Comentario en diferentes líneas de código, pero siempre se cuelga en diferentes lugares. Entonces, algún tipo de error interno en el probador.

Entonces, ¿todavía se cuelga o en el probador sólo se establece la velocidad máxima de la prueba?

Añadido: No me he encontrado con esto antes, así que es muy conveniente revisar su código.

 
Alexey Navoykov:

No se ha podido encontrar el lugar en el código que causa el cuelgue.

Configúralo para grabar permanentemente toda la pantalla en el vídeo. Cuando encuentres un fallo, detén la grabación y recorta todo lo que no sea necesario en el vídeo.
 
Vladimir Karputov:

Entonces, ¿se congela o simplemente lo tienes configurado a la máxima velocidad de prueba en el probador?

Añadido: No me he encontrado con esto antes, así que es muy conveniente revisar su código.

Se congela a cualquier velocidad. La ventana StrategyTestVisualization no responde. Lamentablemente, no puedo mostrarte todo el código, es un producto comercial.

Tampoco depende del modo de prueba ni del plazo.

 
Alexey Navoykov:

Se congela a cualquier velocidad. La ventana StrategyTestVisualization no responde a las peticiones. Lamentablemente, no es posible mostrar todo el código, es un producto comercial.

La única forma de mostrar el código es utilizar el ServiceDesk. Aunque, existe la sospecha de un bucle While infinito en el indicador...
 
fxsaber:
2016.11.10 11:07:42.764 Test (EURUSD,M1)                         [time]   [bid]   [ask]  [last] [volume]    [time_msc] [flags]
2016.11.10 11:07:42.764 Test (EURUSD,M1)        [0] 2016.11.10 11:10:11 1.09207 1.09217 1.09207   500000 1478776211595       2

Lo único que falta es un ArrayToString. Entonces se podría modificar la salida. Por ejemplo, time_msc y flags.

Por favor, cambie MqlTick por
struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   datetime_msc time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags          // Флаги тиков
  };
Es decir, introducir un nuevo tipo datetime_msc.