MetaEditor build 1463 - страница 14

 
Renat Fatkhullin:

Пока нигде.

ArrayPrint - аналогично.
 
Проблема
void OrderSend( int ) {}  // no problem
void Print( MqlTick& ) {} // 'Print' - override system function

Т.е. внешний класс "::" перегружать не дает, а любой внутренний - без проблем.

Поэтому приходится костыльно обходить ограничение

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);
}
ЗЫ ArrayPrint на сайте не подсвечивается.
 
Вышел уже 1467 билд. Какие там изменения?
 

Обнаружил проблему со своим индикатором в тестере.  Начиная с билда 1463 происходит самопроизвольное зависание тестера при тестировании индикатора, почти сразу после старта.  Именно зависание тестера, а не индикатора.  Потому что при компиляции хоть старым, хоть новым компилятором проблема остаётся, а вот в старом тестере всё тестирует нормально.

Место в коде, приводящее к зависанию, обнаружить не удалось.  Пытался делать Comment в разных строках кода, но зависает всегда в разном месте.  В общем какая-то внутренняя ошибка тестера.

 
Alexey Navoykov:

Обнаружил проблему со своим индикатором в тестере.  Начиная с билда 1463 происходит самопроизвольное зависание тестера при тестировании индикатора, почти сразу после старта.  Именно зависание тестера, а не индикатора.  Потому что при компиляции хоть старым, хоть новым компилятором проблема остаётся, а вот в старом тестере всё тестирует нормально.

Место в коде, приводящее к зависанию, обнаружить не удалось.  Пытался делать Comment в разных строках кода, но зависает всегда в разном месте.  В общем какая-то внутренняя ошибка тестера.

Так всё-же зависает или в тестере у Вас просто выставлена максимальная скорость тестирования?

 

Добавлено: с таким не встречался, поэтому очень желательно просмотреть Ваш код. 

 
Alexey Navoykov:

Место в коде, приводящее к зависанию, обнаружить не удалось.

Поставьте на постоянную запись в видео всего экрана. Когда получится нарваться на баг, остановите запись и обрежьте в видео все, что не нужно.
 
Vladimir Karputov:

Так всё-же зависает или в тестере у Вас просто выставлена максимальная скорость тестирования?

 

Добавлено: с таким не встречался, поэтому очень желательно просмотреть Ваш код. 

На любой скорости зависает.  Окошко StrategyTestVisualization не отвечает на запросы.  Код весь показать невозможно к сожалению, это коммерческий продукт.

От режима тестирования и таймфрейма тоже не зависит. 

 
Alexey Navoykov:

На любой скорости зависает.  Окошко StrategyTestVisualization не отвечает на запросы.  Код весь показать невозможно к сожалению, это коммерческий продукт.

Тогда только в СервисДеск - им показывать код можно. Хотя подозрение на зацикливание в индикаторе - например бесконечный цикл While...
 
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

Только не хватает напрашивающегося ArrayToString. Тогда можно было бы модифицировать вывод. Например, time_msc и flags. 

Прошу изменить MqlTick на
struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   datetime_msc time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags          // Флаги тиков
  };
Т.е. ввести новый тип datetime_msc.
Причина обращения: