MetaEditor build 1463 - página 14

 
Renat Fatkhullin:

Em nenhum lugar ainda.

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

Isto é, a classe externa "::" não permitirá sobrecarga, mas qualquer classe interna o fará.

É por isso que temos que mutilar a restrição

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 não é destacado no site.
 
O 1467 construído já está pronto. Que mudanças existem?
 
 

Encontrei um problema com meu indicador no testador. Desde a construção 1463, o testador fica pendurado ao testar o indicador, quase imediatamente após o início. É o testador que está pendurado, não o indicador. Porque, ao compilar com um compilador antigo ou novo, o problema permanece, mas no antigo testador tudo é testado normalmente.

O lugar no código, que leva a um enforcamento, não pôde ser encontrado. Tentei fazer Comentário em diferentes linhas de código, mas ele está sempre pendurado em lugares diferentes. Em geral, algum tipo de testador de erros internos.

 
Alexey Navoykov:

Encontrei um problema com meu indicador no testador. Desde a construção 1463, o testador fica pendurado ao testar o indicador, quase imediatamente após o início. É o testador que está pendurado, não o indicador. Porque, ao compilar com um compilador antigo ou novo, o problema permanece, mas no antigo testador tudo é testado normalmente.

O lugar no código, que leva a um enforcamento, não pôde ser encontrado. Tentei fazer Comentário em diferentes linhas de código, mas ele está sempre pendurado em lugares diferentes. Portanto, algum tipo de bug interno no testador.

Então, ainda está pendurado ou no testador você acabou de definir a velocidade máxima de teste?

Acrescentei: nunca tinha encontrado isto antes, por isso é muito desejável rever seu código.

 
Alexey Navoykov:

O lugar no código que causou o desligamento não pôde ser encontrado.

Configure-o para gravar permanentemente a tela inteira no vídeo. Quando você encontrar um bug, pare de gravar e apare o que não for necessário no vídeo.
 
Vladimir Karputov:

Então ele congela, ou você apenas o tem ajustado para a velocidade máxima de teste no testador?

Acrescentei: nunca tinha encontrado isto antes, por isso é muito desejável rever seu código.

Ele congela a qualquer velocidade. A janela StrategyTestVisualization não responde. Infelizmente, não posso mostrar-lhe todo o código, é um produto comercial.

Também não depende do modo e do cronograma de teste.

 
Alexey Navoykov:

Ele congela a qualquer velocidade. A janela StrategyTestVisualization não responde às solicitações. Infelizmente, não é possível mostrar o código inteiro, é um produto comercial.

A única maneira de mostrar o código é usar o ServiceDesk. Embora haja uma suspeita de um loop infinito no 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

A única coisa que falta é um ArrayToString. Então a saída poderia ser modificada. Por exemplo, tempo_msc e bandeiras.

Favor mudar MqlTick para
struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   datetime_msc time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags          // Флаги тиков
  };
Isto é, introduza um novo tipo datetime_msc.