Бета-версия платформы MetaTrader 5 build 1700: Проекты в MetaEditor и синтетические инструменты - страница 17

 
fxsaber:

Код для воспроизведение выложен. Любой желающий может запустить и увидеть. Если заинтересованы - попробуйте. Несколько человек воспроизвели проблему у себя.

И ни у кого не получилось после запуска сказать, что средний лаг < 5 мс. Про всплески даже не говорю.

Проверим, спасибо

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Бета-версия платформы MetaTrader 5 build 1700: Проекты в MetaEditor и синтетические инструменты

fxsaber, 2017.12.13 22:17

1706 - бага с кастомными. CopyTicks не забирает тики за сегодня. С тиками до сегодняшней даты - идеально. Сегодняшняя - ни в какую. Через CTRL+U - аналогично.

Сейчас полночь перешагнуло на MetaQuotes-Demo. И проблема подтвердилась. Теперь за 13-число тики кастомного символы видны, а за наступившее 14-е - нет.

Зачем такое ограничение ввели? Воспроизведение

template <typename T>
T MyPrint( const T Value, const string Str )
{
  static const bool IsDebug = MQLInfoInteger(MQL_DEBUG);

//  if (IsDebug)
  {
//    DebugBreak(); // если хочется посмотреть средствами дебага

    Print(Str + " = " + (string)Value);
  }
  
  return(Value);
}

#define _P(A) MyPrint(A, __FUNCSIG__ ", Line = " + (string)__LINE__ + ": " + #A)

void OnStart()
{
  const string Name = "A1234";
  
  CustomSymbolDelete(Name);
  
  if (CustomSymbolCreate(Name))
  {
    MqlTick Ticks[2] = {{0}, {0}};
    
    Ticks[0].time = TimeCurrent() - (TimeCurrent() % (24 * 3600) + 1);
    Ticks[0].ask = 2;
    Ticks[0].bid = 1;
    Ticks[0].flags = 0xFF;
    Ticks[0].time_msc = Ticks[0].time * 1000;
    
    Ticks[1].time = TimeCurrent();
    Ticks[1].ask = 4;
    Ticks[1].bid = 3;
    Ticks[1].flags = 0xFF;    
    Ticks[1].time_msc = Ticks[1].time * 1000;
    
    _P(CustomTicksReplace(Name, 0, LONG_MAX, Ticks));
    
    MqlTick Ticks2[];
    
    _P(CopyTicksRange(Name, Ticks2, COPY_TICKS_INFO));
  }    
}


Результат

void OnStart(), Line = 40: CustomTicksReplace(Name,0,LONG_MAX,Ticks) = 2
void OnStart(), Line = 44: CopyTicksRange(Name,Ticks2,COPY_TICKS_INFO) = 1

Записали два тика, но получить можем только тот, который не за сегодня.

 

По поыоду  IC Marcets и их истории в МТ5. Такая байда возникает при синхронизации истории МТ5 с МТ4.  Если использовать только минутки, то вся история включая месячный таймфрейм будет всего 8 месяцев. Зачем нужна такая синхронизация я не знаю. А брокер вроди бы нормальный.

 
Renat Fatkhullin:

Под торрентами закономерно лагает любое сетевое действие.

Надо или канал держать хорошо свободным или QoS приоритетный настраивать для терминала


Вот тут можно поподробней, ?

 
Grigoriy Chaunin:

По поыоду  IC Marcets и их истории в МТ5. Такая байда возникает при синхронизации истории МТ5 с МТ4.  Если использовать только минутки, то вся история включая месячный таймфрейм будет всего 8 месяцев. Зачем нужна такая синхронизация я не знаю. А брокер вроди бы нормальный.

Синхронизировать историю чартов надо не с МТ4.

Это совершенно разного класса системы и история МТ4 не подходит.

 

1706 обновился на 1706.

Скрипт стал выполняться без ошибок, но та же проблема осталась в других ситуациях. Решил ее так

flags = TICK_FLAG_ASK | TICK_FLAG_BID | TICK_FLAG_BUY | TICK_FLAG_LAST | TICK_FLAG_SELL | TICK_FLAG_VOLUME; // 0xFF - дает ошибку
 
fxsaber:
1706 обновился на 1706.

Наверняка дообновил метатестер или метаедитор.

При изменении любого компонента может произойти докачка и обновление.

 
Проблема актуальна

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2017.12.03 12:49

В 1687 стало происходить

Терминал никак не может закачать EURUSD-данные. Лечится только перезагрузкой терминала.

Предполагаю, что терминал входит в бесконечный цикл синхронизации. EURUSD стоит символом в отладчике.

Экспериментировал с CopyTicksRange. Похоже, в новом билде он виноват в проблемах с синхронизацией.

Прошу сделать hot-fix.

 
Renat Fatkhullin:

Наверняка дообновил метатестер или метаедитор.

При изменении любого компонента может произойти докачка и обновление.

Билд тестера где посмотреть? В свойствах metatester64.exe стоит 1706.

 
Renat Fatkhullin:

Наверняка дообновил метатестер или метаедитор.

При изменении любого компонента может произойти докачка и обновление.

а сервера поддерживающие версии 16хх будут поддерживать терминал 1706 версии? я про сервера у брокера Открытие?

Причина обращения: