MetaEditor build 1463 - pagina 14

 
Renat Fatkhullin:

Ancora da nessuna parte.

ArrayPrint - simile.
 
Il problema è.
void OrderSend( int ) {}  // no problem
void Print( MqlTick& ) {} // 'Print' - override system function

Cioè la classe esterna "::" non permetterà l'overloading, ma qualsiasi classe interna sì.

Ecco perché dobbiamo fare la stampella della restrizione

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 non è evidenziato sul sito.
 
La build 1467 è uscita ora. Quali sono i cambiamenti?
 
Ancora non è stato risolto
 

Ho trovato un problema con il mio indicatore nel tester. Dalla build 1463 il tester si blocca quando prova l'indicatore, quasi immediatamente dopo l'avvio. È il tester che si blocca, non l'indicatore. Perché, quando si compila sia con il vecchio che con il nuovo compilatore, il problema rimane, ma nel vecchio tester tutto viene testato normalmente.

Non è stato possibile trovare il punto del codice che porta a un blocco. Ho provato a fare Comment in diverse linee di codice, ma si blocca sempre in posti diversi. In generale, un qualche tipo di tester di errori interni.

 
Alexey Navoykov:

Ho trovato un problema con il mio indicatore nel tester. Dalla build 1463 il tester si blocca quando prova l'indicatore, quasi immediatamente dopo l'avvio. È il tester che si blocca, non l'indicatore. Perché, quando si compila sia con il vecchio che con il nuovo compilatore, il problema rimane, ma nel vecchio tester tutto viene testato normalmente.

Non è stato possibile trovare il punto del codice che porta a un blocco. Ho provato a fare Comment in diverse linee di codice, ma si blocca sempre in posti diversi. Quindi, una specie di bug interno del tester.

Quindi si blocca ancora o nel tester si imposta solo la velocità massima di prova?

Aggiunto: non ho incontrato questo prima, quindi è molto auspicabile rivedere il tuo codice.

 
Alexey Navoykov:

Non è stato possibile trovare il punto del codice che causa il blocco.

Impostatelo per registrare permanentemente l'intero schermo nel video. Quando si incontra un bug, interrompere la registrazione e tagliare tutto ciò che non è necessario nel video.
 
Vladimir Karputov:

Quindi si blocca, o hai semplicemente impostato la massima velocità di prova nel tester?

Aggiunto: non ho incontrato questo prima, quindi è molto auspicabile rivedere il tuo codice.

Si blocca a qualsiasi velocità. La finestra StrategyTestVisualization non risponde. Purtroppo non posso mostrarvi tutto il codice, è un prodotto commerciale.

Non dipende nemmeno dal modo e dal tempo del test.

 
Alexey Navoykov:

Si blocca a qualsiasi velocità. La finestra StrategyTestVisualization non risponde alle richieste. Purtroppo non è possibile mostrare tutto il codice, è un prodotto commerciale.

L'unico modo per mostrare il codice è usare ServiceDesk. Anche se c'è il sospetto di un ciclo infinito While nell'indicatore...
 
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

L'unica cosa che manca è un ArrayToString. Poi l'uscita potrebbe essere modificata. Per esempio, time_msc e flags.

Si prega di cambiare MqlTick in
struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   datetime_msc time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags          // Флаги тиков
  };
Cioè introdurre un nuovo tipo datetime_msc.