Новая версия платформы MetaTrader 5 build 2280 - страница 28

 
Edgar Akhmadeev:

Билд 2300, то же.

Кто-нибудь использует фреймы? Подтвердите или опровергните. Слишком сложно искать ошибку в коде с фреймами, и если проблема в тестере - неохота начинать.

Статистику по пересылке фреймов покажите пожалуйста. Вот наша статистика

Билд 2280

2020.01.24 15:50:37.383 Tester  optimization finished, total passes 90029
2020.01.24 15:50:37.394 Statistics      optimization done in 0 minutes 07 seconds
2020.01.24 15:50:37.394 Statistics      shortest pass 0:00:00.000, longest pass 0:00:00.042, average pass 0:00:00.000
2020.01.24 15:50:37.394 Statistics      90029 frames (20.26 Mb total, 236 bytes per frame) received

Билд 2301

2020.01.24 15:52:45.759 Tester  optimization finished, total passes 90029
2020.01.24 15:52:45.770 Statistics      optimization done in 0 minutes 07 seconds
2020.01.24 15:52:45.770 Statistics      shortest pass 0:00:00.000, longest pass 0:00:00.030, average pass 0:00:00.000
2020.01.24 15:52:45.770 Statistics      90029 frames (20.26 Mb total, 236 bytes per frame) received


Тесты с гораздо бОльшим количеством фреймов

Билд 2280

2020.01.24 16:29:34.629 Tester  optimization finished, total passes 10000
2020.01.24 16:29:34.640 Statistics      optimization done in 0 minutes 23 seconds
2020.01.24 16:29:34.640 Statistics      shortest pass 0:00:00.000, longest pass 0:00:00.042, average pass 0:00:00.000
2020.01.24 16:29:34.640 Statistics      10000000 frames (5.327 Gb total, 572 bytes per frame) received

Билд 2301

2020.01.24 16:31:41.099 Tester  optimization finished, total passes 10000
2020.01.24 16:31:41.109 Statistics      optimization done in 0 minutes 23 seconds
2020.01.24 16:31:41.109 Statistics      shortest pass 0:00:00.000, longest pass 0:00:00.033, average pass 0:00:00.000
2020.01.24 16:31:41.109 Statistics      10000000 frames (5.327 Gb total, 572 bytes per frame) received
5 гигов фреймов. Замедления нет.
 
Доступна бета 2302.
 
Slava:

Статистику по пересылке фреймов покажите пожалуйста. Вот наша статистика

Билд 2280

Билд 2301


Тесты с гораздо бОльшим количеством фреймов

Билд 2280

Билд 2301

5 гигов фреймов. Замедления нет.

Компилировал под своим билдом. Прерывал оптимизацию, потому что вся займёт 48ч. Но длительность примерно одинаковая по всей оптимизации.

Билд 2302. История OHLC за 4 года:

Без фреймов:

2020.01.24 21:10:11.747	genetic optimization finished on pass 46 (of 1163877736947408)
2020.01.24 21:10:11.747	optimization done in 0 minutes 26 seconds
2020.01.24 21:10:11.747	shortest pass 0:00:00.012, longest pass 0:00:09.970, average pass 0:00:03.516

С фреймами:

2020.01.24 21:06:46.545	genetic optimization finished on pass 16 (of 1163877736947408)
2020.01.24 21:06:46.545	optimization done in 3 minutes 53 seconds
2020.01.24 21:06:46.545	shortest pass 0:00:00.016, longest pass 0:03:45.658, average pass 0:01:24.269
2020.01.24 21:06:46.545	21 frames (5.00 Kb total, 244 bytes per frame) received

Пробовал для скорости оптимизацию за 1 мес, но так разницы нет. За 1 год - уже есть.


В 2286 разницы нет.

UPD: всё работало правильно последний год примерно. Это около 100 беток, не считая пропущенных мной. Перестало работать при переходе с 2286 на 2298.

 

На исторических данных у тиков включен флаг, соответствующий 8 биту.
На реальных тиках такого не наблюдается.

Что означает 8 бит в флаге тика?


2020.01.25 16:28:33.369 2020.01.24 10:00:02   Simbol: SBRF-3.20; tick #: 116; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:34.121 2020.01.24 10:00:02   Simbol: SBRF-3.20; tick #: 117; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:34.872 2020.01.24 10:00:02   Simbol: SBRF-3.20; tick #: 118; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:35.624 2020.01.24 10:00:02   Simbol: SBRF-3.20; tick #: 119; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_BUY|TICK_FLAG_256|; flag: 312
2020.01.25 16:28:36.375 2020.01.24 10:00:02   Simbol: SBRF-3.20; tick #: 120; tick flags: TICK_FLAG_BID|TICK_FLAG_ASK|; flag: 6
2020.01.25 16:28:37.126 2020.01.24 10:00:02   Simbol: SBRF-3.20; tick #: 121; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:37.877 2020.01.24 10:00:02   Simbol: SBRF-3.20; tick #: 122; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:38.628 2020.01.24 10:00:02   Simbol: SBRF-3.20; tick #: 123; tick flags: TICK_FLAG_ASK|; flag: 4
2020.01.25 16:28:39.380 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 124; tick flags: TICK_FLAG_BID|TICK_FLAG_ASK|; flag: 6
2020.01.25 16:28:40.131 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 125; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_BUY|TICK_FLAG_256|; flag: 312
2020.01.25 16:28:40.882 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 126; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_BUY|TICK_FLAG_256|; flag: 312
2020.01.25 16:28:41.633 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 127; tick flags: TICK_FLAG_BID|TICK_FLAG_ASK|; flag: 6
2020.01.25 16:28:42.384 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 128; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:43.135 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 129; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:43.886 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 130; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:44.637 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 131; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:45.387 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 132; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344
2020.01.25 16:28:46.139 2020.01.24 10:00:03   Simbol: SBRF-3.20; tick #: 133; tick flags: TICK_FLAG_LAST|TICK_FLAG_VOLUME|TICK_FLAG_SELL|TICK_FLAG_256|; flag: 344

 
MetaQuotes:
Доступна бета 2302.

Сегодня установил обновление. Пожалуйста пишите что изменилось, в движке и документации. 

 
Edgar Akhmadeev:

Компилировал под своим билдом. Прерывал оптимизацию, потому что вся займёт 48ч. Но длительность примерно одинаковая по всей оптимизации.

Билд 2302. История OHLC за 4 года:

Без фреймов:


С фреймами:

Пробовал для скорости оптимизацию за 1 мес, но так разницы нет. За 1 год - уже есть.


В 2286 разницы нет.

UPD: всё работало правильно последний год примерно. Это около 100 беток, не считая пропущенных мной. Перестало работать при переходе с 2286 на 2298.

Какая разница в коде между "с фреймами" и "без фреймов"?

В какой момент вы отправляете фреймы - в OnTick, OnDeinit, OnTester?

Какое у Вас железо? Покажите строчку лога клиентского терминала.

Вы используете только локальных агентов? Если не только, то по возможности покажите логи удаленных агентов? Логи локальных агентов тоже покажите.

Надо разобраться
 
Slava:
Какая разница в коде между "с фреймами" и "без фреймов"?

В какой момент вы отправляете фреймы - в OnTick, OnDeinit, OnTester?

Какое у Вас железо? Покажите строчку лога клиентского терминала.

Вы используете только локальных агентов? Если не только, то по возможности покажите логи удаленных агентов? Логи локальных агентов тоже покажите.

Надо разобраться
1. Вырезки из кода, касающиеся фреймов, смогу сделать завтра вечером, как вернусь к компьютеру.

2. В OnTester

3. Windows 7 Service Pack 1 (build 7601) x64, IE 11, UAC, Intel Core i7-2670QM  @ 2.20GHz, Memory: 3293 / 8139 Mb, Disk: 39 / 119 Gb, GMT+3

4. Только локальные агенты. А что именно из их логов? Они же бесконечные.
 
Slava:
Какая разница в коде между "с фреймами" и "без фреймов"?
double 
OnTester() {
        double sortino, TSSF, R, Weekly;
        double rc = OnTesterEvent(sortino, TSSF, R, Weekly);            // Функция вычисления критерия оптимизации

        if (Framed) {
                double stat_data[];
                GetStatData(stat_data, rc, sortino, TSSF, R, Weekly);
                FrameAdd("", 0, rc, stat_data);
        }
        
        return rc;
}



void
OnTesterInit() {
        if (Framed) {
                Comment("Waiting...");
                SetParamsFromFile();
        }
}



void 
OnTesterDeinit() {
        if (Framed) {
                FrameFirst();
                while (FrameNext(m_pass, m_name, m_id, m_value, m_data) && !IsStopped()) {
                        // Find best
                        ...
                }
                FrameInputs(m_bestPass, m_param_data, m_par_count);
                int h = FileOpen(...
                ...
                FileWriteString(...
                ...
                for (uint i = 0; i < m_par_count; ++i) {
                        ...
                        ParameterGetRange(name, enable, _value, _start, step, _stop);
                        ...
                        FileWriteString(...
                        ...
                }
                
                FileFlush(h);
                FileClose(h);


                Comment("Optimization completed");
                ChartClose();
        }
}

Вот структура тестерных функций, касающихся фреймов. OnTesterPass() отсутствует.

 

Скажите, это нормальная ситуация, при условии, что функция Timer больше нигде не вызывается?


Время выполнения OnTimer — более чем в 3 раза больше, чем, собственно, функции.

2286, профилирование советника по ценам открытия М1 на истории 6 месяцев.

 
Andrey Khatimlianskii:

Скажите, это нормальная ситуация, при условии, что функция Timer больше нигде не вызывается?

Скорее всего, ошибаюсь. Вроде, зеленая полоса - процентное отношение времени от времени функции-родителя.

Надо сравнивать синие. Там видно, что OnTimer почти в четыре раза дольше Timer.

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