Ошибки, баги, вопросы - страница 2153

 
В Журнале Оптимизатора запись на русском языке
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
 
Andrii Djola:

как узнать во сколько закрываются торги по символу форекс?

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

Особенности языка mql5, тонкости и приёмы работы

fxsaber, 2017.02.25 16:39

ENUM_DAY_OF_WEEK GetDayOfWeek( const datetime time )
{
  MqlDateTime sTime = {0};

  ::TimeToStruct(time, sTime);

  return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}

// true - находимся в торговой сессии
bool SessionTrade( const string Symb )
{
  datetime TimeNow = ::TimeTradeServer();

  const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);

  TimeNow %= 24 * 60 * 60;

  bool Res = false;
  datetime From, To;

  for (int i = 0; (!Res) && ::SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To); i++)
    Res = ((From <= TimeNow) && (TimeNow < To));

  return(Res);
}

// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( const string Symb )
{
  MqlTick Tick;

  return(::SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) /* &&
         ((ENUM_SYMBOL_TRADE_MODE)::SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL) */
) : false);
}

Применение

if (OrderCheck(Request, CheckResult) && SymbolTrade(Request.symbol))
  OrderSend(Request, Result);
 
fxsaber:

Очень неприятный баг с кастомными символами. Тиковая история кастомных символов может полностью пропасть.

Несколько десятков часов шла Оптимизация по реальным тикам кастомного символа. К компу никто не подходил и ничего не делал.

Через 15 часов после Оптимизации подошел посмотреть результаты. Воспользоваться пунктом меню "Запустить одиночное тестирование" на любом проходе не получается - Тестер начинает и сразу заканчивает.

Лог такой

2018.03.03 15:48:04.696 Tester  file cache used 3010 times
2018.03.03 15:48:04.698 Tester  optimization finished, total passes 352000
2018.03.03 15:48:04.708 Statistics      optimization done in 41 hours 32 minutes 37 seconds
2018.03.03 15:48:04.708 Statistics      local 348990 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2018.03.03 15:48:04.708 Core 1  connection closed
2018.03.03 15:48:04.709 Core 2  connection closed
2018.03.03 15:48:04.710 Core 3  connection closed
2018.03.03 15:48:04.710 Core 4  connection closed
2018.03.03 15:48:04.711 Core 5  connection closed
2018.03.03 15:48:04.711 Core 6  connection closed
2018.03.03 15:48:04.712 Core 7  connection closed
2018.03.03 15:48:04.714 Core 8  connection closed
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
2018.03.03 15:48:04.722 Tester  Вы можете ускорить оптимизацию в сотни раз с помощью MQL5 Cloud Network
2018.03.04 08:26:30.933 Tester  single pass 297022 started
2018.03.04 08:26:31.000 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 08:27:36.409 Tester  single pass 297022 started
2018.03.04 08:27:36.491 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00
2018.03.04 14:05:10.940 Tester  single pass 297022 started
2018.03.04 14:05:11.007 Tester  TESTER_EURUSD: history data begins from 2018.02.06 00:00

Обнаружил, что тики всех кастомных символов удалены.

 
После Оптимизации этот текстовый файл
2018.03.03 15:48:04.716 Tester  348990 records written to file cache C:\Program Files\Alpari Limited MT5\tester\cache\Test.TESTER_EURUSD.M1.4.xml
занимает 1 Гб. 7z жмет его в 100 раз. Для чего выбран столь неэффективный способ хранения кеша?
 

Если воспользоваться экспортом XML

то 350 000 проходов записываются в XML-файл размером 320 Мб. При этом зачем-то автоматически запускается открытие этого XML-файла. У меня это пытается сделать Notepad, который намертво зависает при чтении таких монстров. Просьба при выборе XML-меню заранее предупреждать каков будет приблизительный размер файла и каковы могут быть последствия при дальнейшем его открытии.

 

Ошибка при компиляции

выделить фрагмент кода пока нет возможности

 
fxsaber:

Если воспользоваться экспортом XML

то 350 000 проходов записываются в XML-файл размером 320 Мб. При этом зачем-то автоматически запускается открытие этого XML-файла. У меня это пытается сделать Notepad, который намертво зависает при чтении таких монстров. Просьба при выборе XML-меню заранее предупреждать каков будет приблизительный размер файла и каковы могут быть последствия при дальнейшем его открытии.

согласен, но не нужно предупреждать, нужно запретить открытие файла, а пользователь сам уже решит каким его способом открыть

 

Ошибка при компиляции

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; } //Error: '<' - cannot to apply function template

а так:

template<typename T>
class A { T t; };
void OnStart() { A<void *> a; }
class B {};

нормально. А какая разница?

 

Ошибка при компиляции

template<typename T>
struct A { T    *t; };
struct B { void *b; };
void OnStart()
{
        A<void> a; //Error: 'void' - expression of 'void' type is illegal
        B       b; //номально
} 
 
fxsaber:

Несколько десятков часов шла Оптимизация по реальным тикам кастомного символа. К компу никто не подходил и ничего не делал.

Через 15 часов после Оптимизации подошел посмотреть результаты. Воспользоваться пунктом меню "Запустить одиночное тестирование" на любом проходе не получается - Тестер начинает и сразу заканчивает.

Лог такой

Обнаружил, что тики всех кастомных символов удалены.

Воспроизводится. Нужно запустить Тестер/Оптимизатор. После окончания подождать несколько часов. У меня через 10 часов точно удаляются все тики кастомных символов.

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