Анализ результатов тестов и оптимизации в тестере стратегий MetaTrader 5 - страница 11
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите, что вот это за ошибка
видел и такую и такую ситуацию в тестере
Мое объяснение относилось к загрузке тиков через MQL5-код, а не через пользовательский интерфейс (т.е. Ctrl-U). Впрочем, я могу ошибаться, так как не тестировал это на более новых сборках MetaTrader.
Я видел это раньше, когда у импортированных тиков не были правильно установлены "флаги", и последовательные тики имели одинаковые ценовые котировки без изменений между ними. Например, когда пользователь загружал тиковые данные из внешнего источника, у которого не была определена колонка "флаги". Однако это единственный раз, когда я видел это сообщение. Могут быть и другие причины.
При добавлении тиков к пользовательскому символу он не генерирует данные бара автоматически. Вы должны сгенерировать и добавить их тоже.
В противном случае вы не сможете использовать Custom Symbol для генерации "Renko", "Constant Range Bars", "Constant Volume Bars" или любого другого типа пользовательских графиков.
Если я, возможно, неправильно понял ваш вопрос из-за автоматического перевода, пожалуйста, дайте мне знать.
Мое объяснение относилось к загрузке тиков через MQL5-код, а не через пользовательский интерфейс (т.е. Ctrl-U). Однако я могу ошибаться, поскольку не тестировал это на более новых сборках MetaTrader.
Добавление тиков к пользовательскому символу всегда должно правильно обновлять или создавать соответствующие бары. Обычно не нужно генерировать курсы в дополнение к тикам. Но вы правы, что может потребоваться исправление специальных баров, таких как renko (поскольку они не являются стандартными барами).
Если вы видите, что в некоторых случаях это не так, сообщите об ошибке. Пользовательские символы в MT5, к сожалению, подвержены ошибкам.
Пожалуйста, обратите внимание, что MT5 - это асинхронная многопоточная штука, поэтому я думаю, что автогенерация баров на основе новых добавленных тиков может занимать долю времени.
NB: читайте оригинальный пост на английском языке.
Пожалуйста, обратите внимание, что MT5 - это асинхронная многопоточная штука, поэтому я думаю, что автогенерация баров на основе новых добавленных тиков может занимать долю времени.
В те разы, когда я генерировал пользовательские символы из тиков, я никогда не замечал, чтобы бары генерировались автоматически. Возможно, я был не слишком внимателен, поэтому в следующий раз я сделаю это, чтобы убедиться. Спасибо за исправление!
Оригинальный текст на английском языке!
Во время создания пользовательских символов из тиков я никогда не замечал, чтобы бары генерировались автоматически. Возможно, я был не слишком внимателен, поэтому в следующий раз я сделаю это, чтобы убедиться. Спасибо за исправление!
Оригинальный текст на английском языке!
Уже не помню.
На сервере с 12 потоками и 128 Гб оперативки, при оптимизации в режиме "Каждый тик на основе реальных тиков", с 2019 года по сейчас, прогоны стали сыпаться из-за недостатка оперативки. Тестер правда загружает на каждом ядре всю историю реальных тиков в память одним куском? При том, что она гарантированно одинаковая для всех потоков, и используется только локальные агенты, сеть и облако не используется. Т.е. необходимо и достаточно один раз в память загрузить эти котировки и далее к ним обращаться из всех потоков в режиме чтения. Но нет, похоже это так не работает.
Отключил 7 потоков из 12, все пошло нормально
Тестер правда загружает на каждом ядре всю историю реальных тиков в память одним куском?
Недавно описывал работу с памятью в режиме оптимизации. Возможно, там несколько вариантов.
При том, что она гарантированно одинаковая для всех потоков, и используется только локальные агенты, сеть и облако не используется. Т.е. необходимо и достаточно один раз в память загрузить эти котировки и далее к ним обращаться из всех потоков в режиме чтения. Но нет, похоже это так не работает.
В частности, для этого сделан EAToMath. Там при любом размере истории (только для одного символа) и количестве ядер памяти будет всегда хватать на все.