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

 
fxsaber #:

Все само.

Понятно, что не понятно :)

Ещё смотрю папка temp появилась в корне директории терминала - это так же с этим связано делом?

 
Работа с большими файлами стала глючить. Сначала заметил, что проблемы с чтением - недожидаясь окончания чтения программа продолжала работу - помог Sleep(3000), теперь вот смотрю в директорию с файлами и вижу, что мелкий файл появился раньше большого, хотя по коду он должен быть последним - работа скрипта идёт очень долго. Складывается ощущение,что программа не дожидается окончания записи и какие то там внутри сбои происходят... на старых билдах вроде работало верно. Большие файлы - это от гигабайта.
 
Aleksey Vyazmikin #:

Терминал закрылся, в логе такое

Повторение. И что делать?

EG      2       04:02:45.088    Terminal        crashlog generated
PK      0       04:02:45.094    Network '86474741': disconnected from MetaQuotes-Demo
PQ      2       04:02:45.169    Terminal        crashlog finalized

ПК

2024.09.16 06:54:09.976 Terminal        MetaTrader 5 x64 build 4540 started for MetaQuotes Software Corp.
2024.09.16 06:54:09.976 Terminal        Windows 10 build 19045, 16 x Intel Xeon  E5-2630 v3 @ 2.40GHz, AVX2, 11 / 15 Gb memory, 23 / 476 Gb disk, admin, GMT+3
 
Aleksey Vyazmikin #:
Работа с большими файлами стала глючить. Сначала заметил, что проблемы с чтением - недожидаясь окончания чтения программа продолжала работу - помог Sleep(3000), теперь вот смотрю в директорию с файлами и вижу, что мелкий файл появился раньше большого, хотя по коду он должен быть последним - работа скрипта идёт очень долго. Складывается ощущение,что программа не дожидается окончания записи и какие то там внутри сбои происходят... на старых билдах вроде работало верно. Большие файлы - это от гигабайта.

Дополню - вот на скрине видно, что процессорное время тикает, а вот объём памяти не меняется - один скрипт должен записать файл, а другой прочесть иной файл. В итоге один сутки уже висит, а другой два часа почти. Раньше (на прошлой неделе) всё ещё корректно работало. Чего там намудрили? Файлы csv.

Память, вроде как, есть ещё.


 
Aleksey Vyazmikin #:
Работа с большими файлами стала глючить. Сначала заметил, что проблемы с чтением - недожидаясь окончания чтения программа продолжала работу - помог Sleep(3000), теперь вот смотрю в директорию с файлами и вижу, что мелкий файл появился раньше большого, хотя по коду он должен быть последним - работа скрипта идёт очень долго. Складывается ощущение,что программа не дожидается окончания записи и какие то там внутри сбои происходят... на старых билдах вроде работало верно. Большие файлы - это от гигабайта.

Возможно, это поможет.

 

Подскажите в чём может быть причина такого поведения тестера.

Мне нужно,что бы советник начал тестирование при наличии истории больше 2000 дневных баров. Тестер на старте закачивает, точно не помню, но вроде 350 баров, поэтому до 2000 просто проматываю.

//+------------------------------------------------------------------+
void OnTick()
  {
   if(iBars(_Symbol, PERIOD_D1) < 2000)
      return;
   else
      Print("!!! Bars ", iBars(_Symbol, PERIOD_D1), " Time ", TimeCurrent());
   TesterStop();
  }
//+------------------------------------------------------------------+

Тестирование на дневках, OHLC на М1.


Запускаю с даты 31.12.2016, две тысячи баров набегают к 13.04.2023

Запускаю с даты 01.01.2017, две тысячи баров набегают к 07.03.2024

Старт тестирования отличается в один день, две тысячи баров набираются с разницей в 11 месяцев.  Почему так?


Проверил на сбере, картинка такая же. Разница в те же 11 месяцев.

(SBER,D1)

31.12.2016

!!! Bars 2000 Time 2023.01.03 10:00:00

01.01.2017

!!! Bars 2000 Time 2023.12.26 10:00:00


Почему старт тестирования меняю на один день, а две тысячи свечей набираются с разницей в 11 месяцев?

 

Я вообще сломался.

Немного изменил код, чтоб точно видеть дату начала тестирования.

//+------------------------------------------------------------------+
void OnTick()
  {
   static bool start = true;
   if(start)
     {
      Print("start ", iTime(_Symbol, PERIOD_D1, 0));
      start = false;
     }
     
   if(iBars(_Symbol, PERIOD_D1) < 2000)
      return;
   else
      Print("!!! Bars ", iBars(_Symbol, PERIOD_D1), " Time ", TimeCurrent());
   TesterStop();
  }
//+------------------------------------------------------------------+

В итоге получил вот:

(SBER,D1)
Дата старта выставленная в тестере 31.12.2016
start 2017.01.03 00:00:00
!!! Bars 2000 Time 2023.01.03 10:00:00

Дата старта выставленная в тестере 01.01.2017
start 2017.01.03 00:00:00
!!! Bars 2000 Time 2023.12.26 10:00:00

Получилось время старта тестирования одинаковое 2017.01.03, а время когда набралось две тысячи баров отличается на 11 месяцев.

Почему?

 
запуска мт5 на маке и выбивает постоянно что делать ?? Уже раз 5 переустанавливал и перезагружал
 
fxsaber #:

Возможно, это поможет.

У меня нет файла в проводнике недописанного, да и закрытие происходит в коде с хэндлом файла, но фиксирую описанное явление.

 
Aleksey Vyazmikin #:

Повторение. И что делать?

ПК

Предположительно, дело в работе с файлами, потому что разделил на два накопителя нагрузку и пока краша нет. При этом 1/3 осталась на SSD, а 2/3 на HDD. Правда, пока ещё даже сутки не прошли, но последние краши происходили в течении пары часов.