Перейти к содержанию

Скрипт автоматизации тестирования советников ConveyerMT на Excel VBA


Рекомендуемые сообщения

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано (изменено)

Предлагаю пользоваться автоматизатором задач тестирования большого количества сетов в МТ5, их сравнения и подбора оптимальных сочетаний в корзины, написанным для себя для облегчения жизни)  

Для работы нужен только excel, начиная с 2007 версии. Скрипт взаимодействует только с МТ5 и ходит в интернет за историей валют.

Начально описание прилагается ниже. Снято обзорное видео. Напишите, что хотите видеть на видео.

Кто разработчик в VBA, может улучшить структуру кода, т.к. написано любительски, и предложить свой доп. функционал для включения в меню "конвеера". Кто решится переносить код в свои разработки, оставляйте ссылки на автора.

 

Автоматизировать тоже самое в связке с МТ4 потенциально возможно, если разобраться с вопросом и раздобыть поставщика истории.

 

В архиве находится файл xlsm с примером расчёта корзины Setka M0kass_5_lite, который был родителем боевого счёта копирования автора. 

Сеты запускались на двух машинах и тестировались под 3 типами счетов Roboforex. Есть проблемы с МТ5, когда терминал "успешно" отдает результаты тестирования, но по факту есть пропуски в загрузках истории терминалом, о которых можно только косвенно узнать при изучении отчета МТ. Возможно, вариант с внешним гарантированным поставщиком тиков с равномерной плотностью будет лучше, чем МТ5.

 

В списке буду вести предложения для доработок:

1) добавить графики валютных пар и размеры позиций по каждому сету на них.

2) упростить работу с параметрами из сетов на листе SETs: строковые числа, транспонирование таблицы на отдельный лист и обратно.

 

2023-07-27_10-34-57.png

 

28.07.2023 перезалил архив - обнаружил в релизе не самую последнюю версию модулей VBA.

01.07.2023 новый релиз 1.10.4 - теперь и с кастомными символами, исправлен баг вставки миниграфиков в ячейки. Архив тут.

04.08.2023 добавлено видео поддержки одного из пользователей

09.08.2023 новый релиз 1.10.7 - решение проблемы МТ с очисткой предыдущих сетов, доп. диагностика проблемы копирования результатов МТ, триминг графиков, изм. код отслеживания процесса.  Руководство вложено, но приложение по ссылке (не проходит по лимитам загрузки).

15.08.2023 новый релиз 1.10.9. Исправлена проблема загрузки сетов из строк листа SETs (предыдущие релизы работали некорректно при SetSourceForTerminal = 2; MT не понимает [названия разделов]в ini, теперь без них). Исправлены мини графики на листе Result1 (на старых excel графики не помещались в размер ячеек, а при кол-ве точек более 14 тыс теперь ошибки не возникает, но мини графики обрезаются; большие графики остаются корректными, т.к. дискретно сглажены ). В терминал пока выводятся все, в т.ч. пустые параметры сетов, они увеличивают шапку отчета МТ. Удалены пробелы из некоторых названий параметров сетов.

 

30.09.2023 новый релиз 1.10.10 выложен вложением. Описание не поменялось.

Исправлено: (1) корректные названия сетов на result2, (2) не выгружались с листа sets сеты в файлы, (3) исключаются при загрузке из set- файлов дубли и опт параметры МТ4 и МТ5, исправлена логика при отсутствии колонки TerminalPathCol (режим одного терминала), (4) цена пункта пары пересчитывается сразу после загрузки курсов из интернет, а не пакетно после.

 

 

Краткое описание программы ConveyerMT5.pdf

ConveyerMT5_v1.10.10.Demo.xlsm

Изменено пользователем kDelu
релиз 1.10.10
  • Лайк 11
  • Спасибо 1
  • Огонь! 5
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 64
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Предлагаю пользоваться автоматизатором задач тестирования большого количества сетов в МТ5, их сравнения и подбора оптимальных сочетаний в корзины, написанным для себя для облегчения жизни)   Для

Перейти

Выложил новый релиз 1.10.7.  В поле Conveyer Log будут складываться ошибки копирования. Можно скопировать в 1.10.7 содержимое листов GenParams, SETs из 1.10.4 поверх и попробовать выполнить задач

Перейти

Был баг, должны корректно работать версии 1.10.8 и 1.10.9. Спасибо @alextron

Перейти
Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано

Добрый день, коллега. Не могу запустить тестирование. Не запускается терминал. Посмотрите, что не так делаю. Скрины ниже.

1.png

11.png

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано (изменено)
9 минут назад, alextron сказал:

Не запускается терминал. Посмотрите, что не так делаю.

Выглядит, будто не запускается терминал. Причины - возможно он другой папке.

Поставьте 0 в параметре [Tester]ShutdownTerminal в 84 строке на первом листе. Оставьте Вкл только 1 строку на листе SETs и запустите в меню 4 команду. Должен открыться МТ5 и не закрываться в конце задачи. Далее по ситуации - либо он будет занят задачей, либо в своем логе напишет диагностику. От нее дальше нужно разбираться. Может не логинится к брокеру, может мод не видит в Experts, .. После починки вернуть 1 [Tester]ShutdownTerminal

 

Еще я только что перезалил архив с самой последней версией, но на эту проблему она не влияет.

Изменено пользователем kDelu
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано (изменено)

Метотрейдер запускается, не проходит инициализация, не проходят настройки тестера... Как посмотреть, где тормозится?

Вручную тестер запускается, все ок.

Может это влияет, я тестирую на котировках от Дукаса, которые находятся в папке 

 

23.png

22.png

Изменено пользователем alextron
ошибка
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
2 часа назад, kDelu сказал:

Оставьте Вкл только 1 строку на листе SETs и запустите в меню 4 команду. Должен открыться МТ5 и не закрываться в конце задачи.

После выполнения рекомендаций выше, найдите лог в папке терминала ..\logs\20230728.log и посмотрите там ошибки или выложите.

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано

еще, вдогонку, если будет время, посмотрите:

 1. У меня два монитора, при запуске программы на 2м , не основном мониторе иконка меню выходит за пределы монитора на котором раскрывается программа. Можно сделать, чтобы иконка меню открывалась на том-же мониторе?

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

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано (изменено)

лог терминала, за последнее время:

 

LI    0    21:47:06.661    Terminal    exit with code 0
PN    0    21:47:06.665    Network    '51730608': disconnected from Alpari-MT5-Demo
CG    0    21:47:06.743    Terminal    stopped with 0
LG    0    21:47:06.750    Terminal    shutdown with 0
HS    0    21:47:36.387    Startup    successfully initialized from start config "C:\Users\alext\Desktop\setka\Jocker\Результаты\1690580854_51730608_1.ini"
ML    0    21:47:36.504    Terminal    Alpari MT5 x64 build 3802 started for Alpari
JO    0    21:47:36.504    Terminal    Windows 10 build 19045, 4 x Intel Core i7-6500U  @ 2.50GHz, AVX, 2 / 7 Gb memory, 82 / 237 Gb disk, UAC, GMT+5
KL    0    21:47:36.504    Terminal    C:\Users\alext\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685
GD    0    21:47:36.504    Terminal    launched with C:\Users\alext\Desktop\setka\Jocker\Результаты\1690580854_51730608_1.ini
OG    2    21:47:38.248    Tester    Experts\(EA) - Setka v1.46-RSI-CCI-AS.ex5 not found
NP    0    21:47:38.742    Network    '51730608': authorized on Alpari-MT5-Demo through MT5-Demo.Europe.3:1119 (ping: 81.11 ms, build 3661)
FR    0    21:47:38.742    Network    '51730608': previous successful authorization performed from 94.140.133.142 on 2023.07.28 19:28:47
JM    0    21:47:39.469    Network    '51730608': terminal synchronized with Alpari: 0 positions, 0 orders, 747 symbols, 0 spreads
MP    0    21:47:39.469    Network    '51730608': trading has been enabled - hedging mode
 

 

в журнале тестера, последняя запись:

 

2023.07.28 21:47:38.248    Tester    Experts\(EA) - Setka v1.46-RSI-CCI-AS.ex5 not found

 

так понимаю. не может найти советника...

советник в папке   C:\Users\alext\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Experts\Advisors

 

 

где настроить, чтобы он шел в   Advisors  а не  в   Experts ?

Изменено пользователем alextron
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
3 минуты назад, alextron сказал:

Experts\(EA) - Setka v1.46-RSI-CCI-AS.ex5 not found

Вам нужно положить в папку правильный файл советника и его имя вписать в параметр [Tester]Expert на 1 листе. Видно же в логе)

 

12 минут назад, alextron сказал:

У меня два монитора, при запуске программы на 2м , не основном мониторе иконка меню выходит за пределы монитора

Надо тестировать. Можно подключить горячую клавишу к кнопке, как пока не скажу

 

13 минут назад, alextron сказал:

при случайных ошибочных действиях, программа зависает

Есть кнопка Остановить - она заканчивает цикл по задачам. Если вообще все тормозит, то слабое железо для Excel + MT

 

28 минут назад, alextron сказал:

я тестирую на котировках от Дукаса, которые находятся в папке

Такой режим не тестировался. Только пока МТ5 + котировки брокера. Если заработает с файлами, буду рад.  Коды пар там 6 символьные?

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано (изменено)
5 минут назад, kDelu сказал:

Коды пар там 6 символьные?

да, 6-ти символьные.

 

Бинго! Заработало, но на дефолтных котировках.   

Хотелось бы на Дукосовских... дефолтные, часто дырявые/плохого качества, и чем глубже история, тем хуже качество...

Изменено пользователем alextron
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано (изменено)
19 минут назад, alextron сказал:

Хотелось бы на Дукосовских..

По идее, не видя связку, сам терминал получает команды через ini. Если бы коды тикеров были 6 символьные, то должно было автоматом запуститься. Но я вижу они 10 символьные  на скрине "EURGBP_cust", а с такими не будет считать equity. Но если пока устроит только циклический запуск МТ с сохранением результатов в папках, то укажите EURGBP_cust в поле [Tester]Symbol на 1 или 2 листе.

На выходных могу доработать, если будете тестировать.

Изменено пользователем kDelu
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
31 минуту назад, kDelu сказал:

"EURGBP_cust"

Это название я сам придумал, там можно хоть как обозвать. Когда из тикстори копируешь в МТ5, можно хоть как обозвать...

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
2 минуты назад, alextron сказал:

EURGBP

Из интернета подкачиваются история котировок без пропусков для дальнейших расчётов графиков, а там используются общеизвестные 6 симв коды пар. С такими все должно работать. Если не получится переименовать, то нужно дорабатывать код.

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано (изменено)
11 часов назад, kDelu сказал:

Если не получится переименовать

переименовать получится, НО дефолтные названия пар присвоить не получается , надо снова закачать тикстори, к сожалению я убил файлы, очень уж они большие (порядка 17 Гб пара, если с 14 года), и снова из конвертировать в МТ5, можно как угодно  с 6 символьными. НО проблема, как в ini файле, указать, чтобы тестер брал их из другой папки? Дефолтная папка на скрине и папка с загруженными символами/парами.

Screenshot_20.png

Изменено пользователем alextron
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
1 час назад, kDelu сказал:

На выходных могу доработать, если будете тестировать.

Обязательно буду тестировать. В Вашем конвейере вижу большое будущее, кроме тестирования корзин,(пока не уверен, что будут корректные результаты, по сравнению с реальными торгами, по крайней мере можно будет отслеживать когда просадки по парам будут накладываться одна на другую, это уже хорошо...). А вот автоматизация тестирования и оптимизация сетов - очень круто, как мне кажется.=b 

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
26 минут назад, alextron сказал:

НО проблема, как в ini файле, указать, чтобы тестер брал их из другой папки? Дефолтная папка на скрине и папка с загруженными символами/парами.

В МТ должна соблюдаться уникальность названий пар. Не может быть два EURUSD, один дефолтный, второй от другого поставщика. Проверял.
Если МТ разрешит убить дефолтный код EURUSD и подгрузить историю в тоже название, то ничего менять не надо. Иначе - нужна доработка.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано (изменено)
10 часов назад, kDelu сказал:

В МТ должна соблюдаться уникальность названий пар.

Да, вы правы. К сожалению не удалось создать такое-же название пары, как дефолтное, хотя и в другой папке...

 

 

Загрузка курсов и цен, ошибка, в чем может быть причина?

 

Screenshot_21.png

Изменено пользователем alextron
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
2 часа назад, alextron сказал:

Загрузка курсов и цен, ошибка, в чем может быть причина?

Тут не видно причины, лучше нажимать Debug и скрин места в коде, где ошибка.

Вероятно нет ключа в поле AlphavantageAPIKey. В документации написано, куда сходить и где его взять. Лучше читать и делать по хэлпу, меньше постов будет.

 

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано

Цифры понемногу увеличиваются,
 но процесса не видно...

Терминал не запускается


Пробовал несколько раз, до конца ни разу  не дошел.
зависает в разных местах

 

Вручную все тесты проходят.

Screenshot_24.png

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
1 час назад, alextron сказал:

но процесса не видно...

Терминал не запускается

Сколько ядер и памяти на машине?  Может в памяти висит терминал и его видно в менеджере задач?

 

7 минут назад, alextron сказал:

как изменять масштаб по оси времени, по оси Y ?

 

Диаграммы настроены автоматически на диапазон ОТ и ДО по всем включенным на листе Result 1 графикам. Я вижу длинный светлоголубой график рядом с 0. Можно посмотреть в таблице рядов с 30 колонки на том же листе Result 2, какие номера сетов не с 0 значениями идут с 2016 года, а потом их отключить на листе Result 1.

 

Есть еще ручной вариант настройки осей - это обычно как работаете с диаграммами excel. Щелкаете на ось на диаграмме, правый клик, Формат оси - далее верхняя и нижняя граница (скрин). Но таким способом при пересчете придется заново настраивать.

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
В 28.07.2023 в 22:59, kDelu сказал:

Если не получится переименовать, то нужно дорабатывать код.

Получится, ли доработать код, для пар/символов закачанных из других источников, в частности Dukascopy?

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
2 минуты назад, alextron сказал:

Получится, ли доработать код

Только вставил в первую тему новый релиз, где можно использовать кастомные символы.

Если начинать с чистого листа и с первого пункта меню, то действуйте по инструкции. Если хотите переносить содержимое листов в новый файл 1.10.4, то аккуратно копи-паст всех листов (SETs, Result1, Pairs, History, Equity) - переносить только строки без заголовков. Пока нет четких инструкций и описанных шишек как корректно переносить - на свой риск.

  • Огонь! 1
Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано

Пытаюсь сделать расчеты эквити, маржин... 

выходит ошибка, что не указано плечо.

Screenshot_26.png

Screenshot_27.png

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано

В какое место и как загружать котировки инструмента с не дефолтным названием?

как можно указать, что для новой пары брать те же значения, что и для дефолтной  из  сервиса   API alphavantage.co

Screenshot_28.png

Ссылка на сообщение
Поделиться на другие сайты

Скрипт автоматизации тестирования советников ConveyerMT… Опубликовано
В 29.07.2023 в 21:53, kDelu сказал:

Сколько ядер и памяти на машине? 

Ответьте.

38 минут назад, alextron сказал:

В какое место и как загружать котировки инструмента с не дефолтным названием?

В хэлпе дописал и пометил цветом. Указать на Pairs свое название в специальной колонке. Обновлять котировки не нужно. Запустить расчет Equity после этого и далее по задачам. Перезапускать терминал не нужно.

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...