Новая версия платформы MetaTrader 5 build 1860: Функции для работы с барами в MQL5 и улучшения в тестере стратегий - страница 13
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я понимаю, что "Пачками", почему нельзя обеспечить обратную связь и перераспределять эти пачки? Или вот если генетика пришла к запрещенным настройкам советника очень быстро, то может можно продлить оптимизацию на число таких деинициализаций?
Но вы всегда можете получить время последнего апдейта стакана через MqlTick::time_mcs
Вот тут объясните подробнее, пожалуйста. Это важно и этого нет в документации!
Та информация, на которую Вы указываете (MqlTick::time_mcs) - это время прихода тика. Получается, что если запрашивать тики с флагом COPY_TICKS_INFO - время этих тиков будет соответствовать времени обновления стакана?
Однако, если в функции OnBookEvent() вызывать функцию SymbolInfoTick() - мы в таком случае НЕ ВСЕГДА БУДЕМ получать время прихода текущего снапшота стакана. Соответственно и синхронизацию с тиками провести не сможем.
Поясните пожалуйста, почему нельзя вставить время, на которое Вы ссылаетесь (MqlTick::time_mcs) непосредственно в аргумент функции OnBookEvent(), чтобы она выглядела таким образом:
void OnBookEvent (const string& symbol, const long& time_msc);
Потому, что просто знать время последнего обновления стакана - не особо важно, нужно также знать текущие значения полей стакана!!! Т.е. нужно знать время снапшота, который мы обрабатываем в текущий момент, на текущем вызове OnBookEvent().
Вот тут объясните подробнее, пожалуйста. Это важно и этого нет в документации!
В любом тике этой структуры есть время. Взяв последний тик символа, вы узнаете время последнего обновления стакана.
Потому, что просто знать время последнего обновления стакана - не особо важно, нужно также знать текущие значения полей стакана!!! Т.е. нужно знать время снапшота, который мы обрабатываем в текущий момент, на текущем вызове OnBookEvent().
Потому что нельзя просто так брать и менять прототипы системных функций.
Потому что откат решения о выделении пачки заданий дорог и может приводить к дублям расчетов и повышенной оплате, когда вдруг мастер терминал отбирает задачи, переданные в клауд.
С клаудом платным - пусть останется как есть, но вот с локальными агентами... У меня один проход занимает 2,5 минуты, и когда одно ядро выполняет 40 проходов, а остальные, в том числе в своей сети, его ждут я вижу нерациональность. Можно же выяснить, сколько занимает один проход и если он там больше 5 секунд, то делать перераспределение.
В любом тике этой структуры есть время. Взяв последний тик символа, вы узнаете время последнего обновления стакана.
Потому что нельзя просто так брать и менять прототипы системных функций.
Хорошо, последний вопрос. Т.е. сейчас нет возможности точно узнать время снапшота, который передан на обработку функции OnBookEvent()?
Потому что нельзя просто так брать и менять прототипы системных функций.
А если добавить другой? Т.е. пусть будет старый вызов, и пусть будет новый, по аналогии с OnCalculate()...
С клаудом платным - пусть останется как есть, но вот с локальными агентами... У меня один проход занимает 2,5 минуты, и когда одно ядро выполняет 40 проходов, а остальные, в том числе в своей сети, его ждут я вижу нерациональность. Можно же выяснить, сколько занимает один проход и если он там больше 5 секунд, то делать перераспределение.
А зачем вы во во время генетических тестов добавляете агентов?
Стартуйте сразу с нормальным набором агентов.
А если добавить другой? Т.е. пусть будет старый вызов, и пусть будет новый, по аналогии с OnCalculate()...
Вам же показали простой метод получения необходимой вам информации.
А зачем вы во во время генетических тестов добавляете агентов?
Стартуйте сразу с нормальным набором агентов.
Выше я написал, что добавил так-как появились свободные ресурсы, значит до этого они были заняты другими задачами.
Однако, дело не только в добавлении агентов, даже если их не добавлять то картина может быть та жа из-за попадания генетики в настройки, которые запрещены внутри кода.
Вам же показали простой метод получения необходимой вам информации.
Вы меня, вероятно, не поняли. Мне нужно время с привязкой к ДАННЫМ стакана. Вот я вызываю функцию OnBookEvent() и хочу знать, в какое время были сформированы данные, которые я сейчас получу из этой функции. Не просто когда последний раз обновился стакан (мне это не важно), а когда получен снапшот, с которым я работаю! И как раз этого я сейчас узнать не могу!
Или же Вы утверждаете, что если я вызову функцию SymbolInfoTick() из функции OnBookEvent() - то я 100% получу время снапшота, который сейчас будет обрабатываться в данном вызове этой OnBookEvent()?
Я правда хочу разобраться в этом вопросе! Лучше Вас это никто не объяснит.