Python парсинг отчета МТ4

 

Хочу поделиться своей полезняшкой, которая может многим мыслящим сэкономить массу времени и сил.

Понадобилось мне из отчёта тестера стратегий вынуть информацию о торговле, чтобы сунуть её в Excel для аналитической обработки. Формировать каждый раз в каждом новом советнике код создания CSV-файла - не продуктивно. Вот тогда мне и пришла идея написать парсер html-кода любого файла StrategyTester.htm. Как оказалось, для этого очень хорошо подошёл Python. Результат: прогоняем в тестере советника, формируем отчёт, копируем файл отчёта в папку с Python-скриптом, запускаем скрипт. Скрипт создаёт два файла: один с именем mt4_report.csv, другой с именем mt4_report.xlsx.

Все эти 4 файла я приложил к посту в zip-архиве. (Нет смысла печатать сюда 350 строк пайтон-кода). Файл экзеля будет содержать несколько листов, на последнем листе будет диаграмма изменения баланса депозита.

Что в ней ценного? При изменении баланса после каждой сделки участок графика будет рисоваться другим цветом. При наведении указателя мыши на стык двух цветов графика будет виден номер позиции в списке ордеров. Это позволит отследить, например, те участки графика, на которых идут серии убыточных и серии прибыльных ордеров. Вот как это выглядит в экзеле:


Файлы:
Parser.zip  24 kb
 

Что нужно чтоб этим пользоваться (ваш возможный порядок действий)?

1. Инсталлируем сам пайтон. Как это сделать подскажет гугл.

2. открываем консоль и инсталлируем подключаемые к парсеру библиотеки:

pip install beautifulsoup4
pip install chardet
pip install pandas
pip install openpyxl

3. Файл скрипта кладём в какую-нибудь папку.

4. В консоли переходим в эту папку и запускаем скрипт командой:

python mt4_report_parser.py

5. Ждём. Консоль должна выдать ответ об успешном создании двух файлов.

6. Пользуемся.

 

Вкладка Полная статистика


 

Вкладка Сделки:


 

Вкладка Аналитика:


 

Часть содержимого csv-файла:


 

Вариант возможного применения.

Не все, кто сюда заходят - программисты. Форум-то посвящён трейдингу. Если у трейдер-аналитика есть идея преобразования информации, взятой из файла отчёта тестера стратегий, то он вполне может в том же Экзеле создать вкладку-шаблон, которая будет из сформированного файла брать нужную информацию и преобразовывать в тот вид, который аналитику нужен для изучения результатов работы разных советников, оценки их качества, сравнения эффективности их работы.

P.S.

Это можно провернуть, например, скачав демоверсию некоторых советников, прогнав их в тестере сформировать файлы отчёта, применить парсер, провести аналитику, чтоб не покупать кота в мешке

 

Разверну ещё один момент, которого мы коснулись выше.

Пусть у нас есть в экзель-файле серии из нескольких убыточных сделок на графике. В экзеле будет видно где (в какое время) начинается и где заканчивается каждая серия. Эти временнЫе зоны можно спокойно перенести на график терминала, выделить, например, с помощью прямоугольников и попытаться найти в них общее. То есть ответить на вопрос, почему система именно в такие моменты сливает? Если человек отлаживает своего советника или свою торговую систему, то именно эти прямоугольники могут указать ему куда смотреть и где искать.

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