Новая версия платформы MetaTrader 5 build 2560: Улучшения во встроенной системе обучения - страница 22
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я извиняюсь что не по теме но не смог сдержаться. Я думал в этой ветке сидят технические подкованные люди. Мне уже лет 10 назад как минимум начали звонить так же каждый день, а то и несколько раз с подобными предложениями и далеко не всегда финансовыми, такой тренд с телефонным рекламным терроризмом уже давно идет и так же давно придумали спасение, есть приложения для блокировки подобных звонков с коллективными черными списками если кому то звонят он заносит в черный список и телефон попадает сразу ко всем установившим приложение и блокируется автоматически и вы забудите об этой проблеме навсегда, у меня приложение "не бери трубку". Все равно ваш телефон сольют рано или поздно, или уже слили до того как он был ваш, эта проблема есть у всех моих знакомых и ни один из них не трейдер.
надо еще проверить не сливает ли эта чудесная программа личные данные куда-нибудь
Es gibt ja zwei Optionen: Есть два варианта:
Только и то, и другое, наверное, не рассчитано на параллельное многопоточие, и я не совсем понимаю, почему в случае 2 все должно быть сначала преобразовано в "хромосоны". На мой взгляд, одной таблицы с лучшими результатами и второй с другими или со всеми результатами было бы достаточно.
Также хотелось бы, чтобы выбор "лучших" наборов параметров не основывался только на одном критерии, а добавлялся в пул лучших для дальнейшей оптимизации помимо собственной формулы (обычно в OnTester()), например, самой большой прибыли и самой высокой "ожидаемой прибыли" (=Profit/Trades) - почему бы и нет?
На самом деле вариантов может быть еще много. Вот еще один до кучи - Particle Swarm Optimization. Я его как раз сейчас пытаюсь распараллелить.
But: "OnTesterPass() is TesterPass event handler that is generated automatically when receiving a frame during an Expert Advisor optimization in the strategy tester.”
But this is already too late, the invalid parameter combination has already been calculated and included in the genetic optimization count - by the way, probably the same happens with already calculated combinations, which were not calculated, but included in the count. Otherwise I would probably not get 1408 runs (from the progress line), of which 116 were aborted by OnInit(), and 127 runs in the result table. That makes 1165 runs counted but not performed.
My question, is there a function, or an event-handle, that can be called before a frame is sent to calculation (into the cloud), to validate it and move the frame pointer if necessary?
Но..: "OnTesterPass() - это обработчик события TesterPass, который генерируется автоматически при получении фрейма при оптимизации эксперта в тестере стратегий".
Но уже поздно, неправильная комбинация параметров уже вычислена и включена в счет генетической оптимизации - кстати, наверное, то же самое происходит с уже вычисленными комбинациями, которые не были вычислены, а включены в счет. Иначе я бы, наверное, не получил 1408 запусков (из строки прогресса), из которых 116 были прерваны функцией OnInit(), и 127 запусков в таблице результатов. То есть 1165 прогонов было подсчитано, но не выполнено.
Мой вопрос, есть ли функция или дескриптор событий, который можно вызвать до отправки кадра на вычисление (в облако), чтобы проверить его и при необходимости переместить указатель кадра?
Вы сами можете определить качество параметров. Это делается в функции OnTester Если параметры неподходящие, то отправьте плохое значение критерия. И тогда этот набор будет исключен в генетической оптимизации
Каждая процедура оптимизации должна иметь критерии завершения. Я думаю, что тестер использует
(а) количество проходов; и
b) отсутствие улучшения значения оценки - например, вычисленное в OnTerster().
Пример: Я торгую системой МА, в которой я покупаю, когда быстрая МА пересекает медленную МА вверх и наоборот. Теперь для оптимизации я установил диапазон медленного MA на m10-H2 и диапазон быстрого MA на m5-H1. Так что при автоматической комбинации тестером скорость будет медленнее медленной, что не имеет смысла для торговой системы и OnInit() при такой комбинации не возвращает INIT_SUCCEEDED, а, например, INIT_PARAMETERS_INCORRECT.
OnInit() теперь единственная функция, которая, если не возвращает INIT_SUCCEEDED, предотвращает выполнение оптимизации. Тем не менее, оптимизация оценивает их как действительные прогоны. Это можно увидеть по счетчику в строке процесса и по строке в таблице результатов. В зависимости от числа это означает, что критерий завершения контр-оптимизации достигается слишком рано и, вероятно, также препятствует формированию и тестированию дальнейших комбинаций. Вот как я объясняю эти числа оптимизации:
- Количество возможных комбинаций: 48906,
- Количество запланированных тестером прогонов: 1408,
- двойные вычисления: 1165,
-отвергнуто функцией OnInit() с INIT_PARAMETERS_INCORRECT: 116,
- в то время как таблица результатов имеет только 127 действительных результатов
(из 48906 возможных).
С таким результатом, как я могу быть уверен, что генетическая оптимизация действительно определила оптимум?
С введением фреймов я надеялся, что пользователь получит доступ перед отправкой одной или группы настроек параметров для вычисления, чтобы удалить ту или иную комбинацию параметров в этот момент, чтобы ни оптимизатор не выполнял оптимизацию, ни оптимизатор не предполагал нормальный запуск и не увеличивал счетчик, что, очевидно, и происходит, когда тестер запускает OnInit с нежелательной комбинацией параметров - вот в чем моя проблема.
Простой индикатор. Внутри цикла пытаюсь получить значение из буфера 'time'. В итоге получаю ошибку 'Expression could not be evaluated'. То есть 'time[i]' в отладке сейчас нельзя получить. При этом, если ввести переменную 'temp' и ей присвоить значение 'time[i]' - то в отладке можно увидеть значение 'temp'
Код индикатора:
b2564. Оптимизатор продолжает работать, когда уже все посчитано.
Нажатие на кнопку Стоп вызвало минутное зависание и затем ничего не изменилось: время продолжает тикать, кнопка Стоп - гореть.
Повторные нажатия на Стоп выдают такую реакцию.
Ситуация с Агентами.
opt-файл создался.
Простой индикатор. Внутри цикла пытаюсь получить значение из буфера 'time'. В итоге получаю ошибку 'Expression could not be evaluated'. То есть 'time[i]' в отладке сейчас нельзя получить. При этом, если ввести переменную 'temp' и ей присвоить значение 'time[i]' - то в отладке можно увидеть значение 'temp'
Код индикатора:
https://www.mql5.com/ru/forum/347385/page16#comment_17621478
Warum wird die Optimierung in der Cloud (NICHT LOKAL) beendet mit:
Почему оптимизация в облаке (НЕ МЕСТНО) заканчивается:
"PD 0 09:48:13.661 Tester Cloud servers switched off"?
Gestern konnte ich diesen EA mit den drei Symbolen "USDJPY,USDCAD,AUDUSD" komplett in der Cloud optimieren (davor mit nur zwei "EURUSD, GBPUSD" ohne Probleme).
TestZeitraum ist immer 2007.01.01 - 2020.06.27.
Вчера мне удалось полностью оптимизировать этого советника с тремя символами "USDJPY,USDCAD,AUDUSD" в облаке (до этого только с двумя "EURUSD,GBPUSD" без проблем).
Испытательный срок всегда 2007.01.01 - 2020.06.27.
JJ 0 16:09:34.535 Tester Best result 31202172.30999568 produced at generation 7. Next generation 24
OO 0 16:09:34.535 Tester Best result 31202172.30999568 produced at generation 7. Next generation 25
IS 0 16:09:34.545 Tester Best result 31202172.30999568 produced at generation 7. Next generation 26
JG 0 16:09:34.545 Tester genetic calculation is over
RN 0 16:09:34.545 Tester result cache used 4402 times
OJ 0 16:09:34.545 Tester genetic optimization finished on pass 5152 (of 185136)
JP 0 16:09:35.100 Statistics optimization done in 2 hours 42 minutes 32 seconds
EQ 0 16:09:35.100 Statistics shortest pass 0:01:10.406, longest pass 0:10:27.756, average pass 0:03:43.935
KH 0 16:09:35.100 Statistics local 155 tasks (20%), remote 0 tasks (0%), cloud 606 tasks (79%)
1) Heute habe ich zur gestern optimierten Makro-Strategie nur eine Mikro-Strategie aktiviert, die bereits angelegt war - also keine neue Programmierung.
2) In OnInit() gibt es nur eine Schleife:
1) Сегодня, в дополнение к оптимизированной вчера макро-стратегии, я активировал только уже созданную микро-стратегию - никакого нового программирования.
2) В OnInit() есть только один цикл:
In dem Konstruktor CDrift(..) gibt es keine Schleife, es werden lediglich die Parameter gesetzt, zugewiesen und vorbereitet.
Dennoch wird heute die Optimierung in der Cloud abgebrochen:
В конструкторе CDrift(...) нет цикла, только устанавливаются, назначаются и подготавливаются параметры.
Тем не менее, сегодня оптимизация в облаке отменяется:
GJ 2 09:47:53.390 MQL5 Cloud Europe 2 genetic pass (0, 218) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:05.244 (PR 201)
PQ 2 09:48:12.812 MQL5 Cloud Europe 2 genetic pass (0, 232) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:00.878 (PR 193)
GH 2 09:48:12.967 MQL5 Cloud Europe 2 genetic pass (0, 250) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:00.436 (PR 195)
NG 2 09:48:13.009 MQL5 Cloud Europe 2 genetic pass (0, 216) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:01.786 (PR 193)
PN 2 09:48:13.661 MQL5 Cloud Europe 2 genetic pass (0, 238) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:00.943 (PR 191)
DI 2 09:48:13.661 Tester rejected tasks limit reached, cloud servers using stopped
PD 0 09:48:13.661 Tester Cloud servers switched off
NG 2 09:48:18.169 MQL5 Cloud Europe 2 genetic pass (0, 230) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:06.439 (PR 191)
HN 2 09:48:18.215 MQL5 Cloud Europe 2 genetic pass (0, 248) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:05.886 (PR 191)
RE 2 09:49:21.409 MQL5 Cloud Europe 2 genetic pass (0, 253) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:01.682 (PR 203)
NL 2 09:50:50.704 MQL5 Cloud Europe 2 genetic pass (0, 133) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:00.390 (PR 207)
IK 2 09:50:50.787 MQL5 Cloud Europe 2 genetic pass (0, 231) tested with error "endless loop detected in OnInit function, expert rejected by MQL5 Cloud Network" in 0:10:00.363 (PR 198)
FR 0 09:55:21.346 Tester result cache used 0 times
MD 0 09:55:21.347 Tester genetic optimization finished on pass 200 (of 146914480944)
OQ 0 09:55:21.347 Statistics optimization done in 17 minutes 40 seconds
OD 0 09:55:21.347 Statistics shortest pass 0:00:44.422, longest pass 0:12:03.945, average pass 0:05:12.974
FD 0 09:55:21.347 Statistics local 16 tasks (8%), remote 0 tasks (0%), cloud 184 tasks (102%)
JL 0 09:55:21.347 MQL5 Cloud Europe 2 13 hours and 30 minutes of cloud time spent on successful calculation of 163 tasks, 257 cloud agents used
OD 0 09:55:21.349 Tester 179 new records saved to cache file 'tester\cache\DriftEA.GBPUSD.M1.20070101.20200627.11.E75BAD6EF7A384C5A1BC985A4A16FE48.opt'
RI 0 09:55:21.350 Core 01 connection closed
...
Почему оптимизация внезапно прерывается из-за "бесконечного цикла", хотя в облаке было вычислено 163 задачи, а локально эта ошибка никогда не возникала?
Простой индикатор. Внутри цикла пытаюсь получить значение из буфера 'time'. В итоге получаю ошибку 'Expression could not be evaluated'. То есть 'time[i]' в отладке сейчас нельзя получить. При этом, если ввести переменную 'temp' и ей присвоить значение 'time[i]' - то в отладке можно увидеть значение 'temp'
Код индикатора:
Спасибо за сообщение.
Исправлено.
Билд 2360, Открытие ФОРТС, неттинг
Перестала работать функция
Эксперт был откомпилирован в Билд 2360
5 лет отработала нормально!