Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы - страница 59
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
в строке результатов оптимизации параметры правильные, совпадают с параметрами в логе тестера, а советник запускается на тест совсем с другими параметрами.
Из самого советника распринтовывал входные параметры. Совпадали.
Просто данные оригинального символа идеально совпадают с кастомным. Но кастомный проходит без ошибок, а оригинальный - нет.
Видимо, не понял сути. Скрипт записывает только csv. Как по ним запускается тест?
Видимо, не понял сути. Скрипт записывает только csv. Как по ним запускается тест?
Скрипт из этих csv создает кастомный символ и оригинальный символ (импортируется на стороне сервера).
Т.е. два символа имеют идентичную историю котировок, как по барам, так и по тикам.
Скрипт из этих csv создает кастомный символ и оригинальный символ (импортируется на стороне сервера).
Т.е. два символа имеют идентичную историю котировок, как по барам, так и по тикам.
Об этом нужно было упомянуть.
Механизмов сервера МТ5 по работе с историей не знаю.
Во время генетики номер прохода из FrameNext не соответствует номеру прохода из opt-файла.
Например, FrameNext возвращает 10041014291, а opt - 2465.
В чем причина различий? Как сопоставить одно с другим?
В GUI-таблице вместо номера прохода какие-то два числа. Но стоит переоткрыть opt-файла после Оптимизации, как номера проходов становятся пустыми значениями.
Просьба пояснить по ГА.
ЗЫ Научился воспроизводить несоответствие ГА и одиночного. Сохранил стейтмены ГА-проходов через фреймы. Но не могу из 10К проходов идентифицировать тот, что интересует. Потому что Pass в FrameNext и Pass в opt - разные значения.
Во время генетики номер прохода из FrameNext не соответствует номеру прохода из opt-файла.
Например, FrameNext возвращает 10041014291, а opt - 2465.
В чем причина различий? Как сопоставить одно с другим?
В GUI-таблице вместо номера прохода какие-то два числа. Но стоит переоткрыть opt-файла после Оптимизации, как номера проходов становятся пустыми значениями.
Просьба пояснить по ГА.
ЗЫ Научился воспроизводить несоответствие ГА и одиночного. Сохранил стейтмены ГА-проходов через фреймы. Но не могу из 10К проходов идентифицировать тот, что интересует. Потому что Pass в FrameNext и Pass в opt - разные значения.
2 числа - номер поколения, номер особи.
Если пусто, то результат загружен из opt-файла (то есть, результат из предыдущей генетической оптимизации)
Есть два типа генетики
1. пространство параметров ограничивается 64-битным числом. В этом случае вычисление состава параметров по номеру генотипа сводится к набору простых арифметических операций.
2. пространство параметров ограничивается снизу максимальным 64-битным числом, сверху 1024-битным числом. Более сложное преобразование генотипа в набор параметров. Похоже - это ваш случай несовпадения номеров, так как фреймы содержат только 64 младших бит номера прохода.
Как только в оптимизацию добавился новый параметр или старт-степ-стоп существующего изменился, вся нумерация меняется. Поэтому не надо ориентироваться на номер прохода, а только на состав параметров
2 числа - номер поколения, номер особи.
Если пусто, то результат загружен из opt-файла (то есть, результат из предыдущей генетической оптимизации)
Есть два типа генетики
1. пространство параметров ограничивается 64-битным числом. В этом случае вычисление состава параметров по номеру генотипа сводится к набору простых арифметических операций.
2. пространство параметров ограничивается снизу максимальным 64-битным числом, сверху 1024-битным числом. Более сложное преобразование генотипа в набор параметров. Похоже - это ваш случай несовпадения номеров, так как фреймы содержат только максимум 64-битный номер прохода.
Как только в оптимизацию добавился новый параметр или старт-степ-стоп существующего изменился, вся нумерация меняется. Поэтому не надо ориентироваться на номер прохода, а только на состав параметров
Спасибо. Как тогда сопоставить FrameNext_Pass и opt-Pass?
ЗЫ Научился воспроизводить несоответствие ГА и одиночного. Сохранил стейтмены ГА-проходов через фреймы. Но не могу из 10К проходов идентифицировать тот, что интересует. Потому что Pass в FrameNext и Pass в opt - разные значения.
Нашел причину расхождений!
Сопоставил стейт, полученный через фрейм во время ГА-оптимизации. И стейт одиночного прохода.
Во фрейм-стейте исполнение идет по тикам, которых нет в истории: сразу обратил внимание, что очень много сделок/ордеров, которые совершаются по времени ровно в секунду.
Например, одиночный проход в истории имеет запись в 2019.06.04 02:00:00.206, а фрейм-проход - 2019.06.04 02:00:00.000 (история тиков не имеет тика в это время).
ГА-оптимизация идет на отличной от одиночного прохода истории тиков! И эта история не всегда различная. Например, когда делаю ГА на интервале поменьше, то там все в порядке.
ЗЫ Подозрение на использование таймера отпадают. Нет в советнике таймера.
Нашел причину расхождений!
Сопоставил стейт, полученный через фрейм во время ГА-оптимизации. И стейт одиночного прохода.
Во фрейм-стейте исполнение идет по тикам, которых нет в истории: сразу обратил внимание, что очень много сделок/ордеров, которые совершаются по времени ровно в секунду.
Например, одиночный проход в истории имеет запись в 2019.06.04 02:00:00.206, а фрейм-проход - 2019.06.04 02:00:00.000 (история тиков не имеет тика в это время).
ГА-оптимизация идет на отличной от одиночного прохода истории тиков! И эта история не всегда различная. Например, когда делаю ГА на интервале поменьше, то там все в порядке.
ЗЫ Подозрение на использование таймера отпадают. Нет в советнике таймера.
Тестирование/оптимизация на реальных тиках?
Агенты свои или из облака?
Если тестирование на кастомном символе, то облачные агенты отпадают. Значит, агенты - свои, и можно вытащить их логи, а в логах посмотреть, как синхронизировалась история