Обсуждение статьи "Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel"

 

Опубликована статья Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel:

Общаясь на многих форумах, я довольно часто приводил в пример результаты тестов на скриншотах с графиков в Microsoft Excel. И многие просили меня объяснить, как же строить эти замечательные графики. Возможности построения диаграмм в Excel очень обширны, и по этой теме написано множество книг. В книге так сложно бывает что-то найти, что приходиться читать ее всю. Но, наконец-то, у меня появилось немного времени, чтобы написать статью об этом.

Сегодня я покажу простой способ, как можно в пару кликов получать одновременно графики всех балансов символов и совокупный результат мультивалютного эксперта на одной диаграмме в Excel. Для воспроизведения примера возьмем мультивалютного эксперта из предыдущей статьи и добавим в него функцию, которая будет по окончании теста записывать в CSV-файл историю сделок и кривые балансов всех символов по отдельности. Кроме того, добавим в отчет еще один столбец, в котором будут содержаться просадки депозита от всех локальных максимумов.

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

Статья "Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel"

Автор: Anatoli Kazharski

 
Как всегда очень грамотный подход к решению задачи. Молодец, Анатолий, хорошая статья!
 
zfs:
Как всегда очень грамотный подход к решению задачи. Молодец, Анатолий, хорошая статья!
Грамотный попробую сделаю далее. Это пока самый простой вариант. :)
 
Надо бы дописать что надо тестировать без визуального режима, т.к в OnTester() есть ... && !IsVisualMode()... Или же убрать это ограничение, чтоб файл создавался и при визуализации.
 
paladin800:
Надо бы дописать что надо тестировать без визуального режима, т.к в OnTester() есть ... && !IsVisualMode()... Или же убрать это ограничение, чтоб файл создавался и при визуализации.
Каждый вправе после изучения кода изменять его, как ему нужно. 
 

Весьма интересный результат!

Можно ли использовать это для оптимизации - собрать подробный отчет по сделкам за каждый проход и присваивать ему порядковый номер? И, возможно ли все это сделать для MT4?

 
-Aleks-:

Весьма интересный результат!

Можно ли использовать это для оптимизации - собрать подробный отчет по сделкам за каждый проход и присваивать ему порядковый номер? И, возможно ли все это сделать для MT4?

Посмотрите вот эту статью: Визуализируй стратегию в тестере MetaTrader 5 >>>

Для MT4, средствами MQL (насколько я знаю), нет такой возможности.

 
-Aleks-:

Весьма интересный результат!

Можно ли использовать это для оптимизации - собрать подробный отчет по сделкам за каждый проход и присваивать ему порядковый номер? И, возможно ли все это сделать для MT4?

Что касается обработки результатов оптимизации, то судя по коду из статьи, вам нужно лишь убрать проверку !IsOptimization() из OnTester и учесть в генерации имени файла какой-нибудь меняющийся параметр (или просто номер прогона), например см. Работа с результатами оптимизации.

Я делал себе аналогичную штуку на JavaScript, и смотрю в браузере, подгружая отчеты тестирования (html-файлы). Соответственно, из оптимизатора мой подход не работает. Зато без экселя.

 
tol64:

Посмотрите вот эту статью: Визуализируй стратегию в тестере MetaTrader 5 >>>

Для MT4, средствами MQL (насколько я знаю), нет такой возможности.

Статью я эту уже изучал - спасибо. У меня несколько более сложные критерии отбора результатов теста, с учетом особенности стратегии, ну и на MT4 я пока что...

Видимо выход один - делать две программы(советника) для MT4 и MT5, одна для работы, а другая для оптимизации...


marketeer:

Что касается обработки результатов оптимизации, то судя по коду из статьи, вам нужно лишь убрать проверку !IsOptimization() из OnTester и учесть в генерации имени файла какой-нибудь меняющийся параметр (или просто номер прогона), например см. Работа с результатами оптимизации.

Я делал себе аналогичную штуку на JavaScript, и смотрю в браузере, подгружая отчеты тестирования (html-файлы). Соответственно, из оптимизатора мой подход не работает. Зато без экселя.

Буду знать о возможности - спасибо.

А поподробней о вашей штуке на JavaScript можно? Что она (штука) умеет делать?

 
-Aleks-:

Буду знать о возможности - спасибо.

А поподробней о вашей штуке на JavaScript можно? Что она (штука) умеет делать?

Рендерит в браузере странички вот с таким содержимым:

Сравнение балансов тестовых прогонов по символам

 А также:

Общий баланс 

 
-Aleks-:

Статью я эту уже изучал - спасибо. У меня несколько более сложные критерии отбора результатов теста, с учетом особенности стратегии, ну и на MT4 я пока что...

...

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