Обсуждение статьи "Собственное представление торговой истории и создание графиков для отчетов"

 

Опубликована статья Собственное представление торговой истории и создание графиков для отчетов:

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

В основе любого трейдинга лежит торговый алгоритм, формирующий кривую Profit/Loss. Такой алгоритм можно сравнить с неким синтетическим активом, стоимость которого формируется относительно базового актива (торгуемого инструмента). К примеру, для опционов есть формула (BSM-модель), по которой в любой момент рассчитывается стоимость этого синтетического актива, исходя из цены базового. Но для торгового алгоритма такой формулы не существует. Соответственно, запуск алгоритма можно сравнить с длинной позицией по синтетическому инструменту, кривая PL которого формируется по запрограммированной логике. Формируемая этим «активом» прибыль может быть нестабильна в разные периоды времени. Даже если она и подлежит оценке единой эконометрической моделью, то эту модель невозможно унифицировать. Возникает вопрос: как же отслеживать этот актив и стадии нашей торговли? Подходящим решением выглядит отслеживать ретроспективу торговли по этому алгоритму и выявлять отклонения от ожидаемых результатов.

Я не стану давать советов по анализу алгоритмов, а лишь представлю набор методов, с помощью которых можно достаточно полно отразить картину истории торгов. На основании полученных данных можно строить сложные эконометрические модели, рассчитывать вероятностные характеристики и делать прочие умозаключения.

Эта статья будет разбита на 2 раздела. В первом (техническом) разделе я расскажу о методах формирования отчетов о торговле из той массы сведений, которая хранится в ваших терминалах. Этот раздел касается исходных данных для анализа. Во втором разделе сформируем основные показатели, по которым будем оценивать ретроспективу торговли по выбранным данным. Выборку данных можно будет варьировать: по всем активам или по конкретному выбранному, за всю имеющуюся историю или за определенный промежуток времени. Результаты анализа будут представлены в отдельном файле и кратко визуализированы в терминале.

Примеры данных для анализа я взял из моей реальной истории торговли. Примеры реализации кода сделаны на тестовом периоде, который специально под эти цели был "наторгован" на демо-счете.


Автор: Andrey Azatskiy

 

  В архивах приложенных к статье нет инструкции по расположению файлов и истории торгов, по которой в текущей статье приводились примеры!

 
Alexander:

  В архивах приложенных к статье нет инструкции по расположению файлов и истории торгов, по которой в текущей статье приводились примеры!

Да, Вы правы, архив был сокращен. История в приложении, а в качестве инструкции:

Перенесите папку из архива без изменений в скрипты. В этой папке проект где лежать все описываемые файлы. Во время запуска проекта, будет предложено выбрать:
1) Путь к приложенной истории торгов (она должна лежать у Вас на компьютере)

2) Папку для выгрузки результатов по приложенной истории

3) Папку для выгрузки результатов по Вашей собственной истории.

Эти папки должны быть различны, так как скрипт формирует выгрузки с одними и теми же наименованиями и они просто заменят друг друга в случае если папка будет одна и та же. Если же по каким либо причинам у Вас не появились входные параметры при старте скрипта, то в самом скрипте измените параметры (файл Get_TradingHistory.mq5).

Файлы:
dealHistory.zip  12 kb
 
Alexander:

  В архивах приложенных к статье нет инструкции по расположению файлов и истории торгов, по которой в текущей статье приводились примеры!

Архив с файлами к статье заменили. Файл данный для проверки скрипта находится в папке MQL5\Files\article_4803

 

Попробовал запустить скрипт.

Вот результат

2018.09.01 18:17:58.442 Get_TradingHistory (Si-9.18,M1) Failed FindFirstFile ("C:\MQL5 тест_1 для сохранения отчета") with error: 2
2018.09.01 18:18:06.008 Get_TradingHistory (Si-9.18,M1) Abnormal termination
2018.09.01 18:18:06.172 Get_TradingHistory (Si-9.18,M1) Error CopyFile C:\MQL5 тест сохранения истории\dealHistory.csv to C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv
2018.09.01 18:18:06.172 Get_TradingHistory (Si-9.18,M1) An error occurred while test_3 !
2018.09.01 18:18:06.172 Get_TradingHistory (Si-9.18,M1) An error occurred while test_4 !
2018.09.01 18:18:06.177 Get_TradingHistory (Si-9.18,M1) An error occurred while test_11 !
2018.09.01 18:18:23.346 Get_TradingHistory (Si-9.18,M1) zero divide in 'DealHistoryGetter.mqh' (432,60)

MT5 в портативном режиме работает.

И я не совсем понял, скрипт умеет работать с историей, или ему нужно подготовить по специальным правилам файл с историей?

 
Aleksey Vyazmikin:

Попробовал запустить скрипт.

Вот результат

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

 
Andrey Azatskiy:

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

Права все есть.

Как подготовить файл истории для работы скрипта?

 
Aleksey Vyazmikin:

Права все есть.

Как подготовить файл истории для работы скрипта?

Он готов класс теста умеет его читать и загружать (отдельный метод в тестовом классе для этого написан). Нужно просто передать путь к тестовому файлу.

 
Aleksey Vyazmikin:

Права все есть.

Как подготовить файл истории для работы скрипта?

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

 
Andrey Azatskiy:

Он готов класс теста умеет его читать и загружать (отдельный метод в тестовом классе для этого написан). Нужно просто передать путь к тестовому файлу.

Возможно я не так объясняю, с архивом скачался файл "dealHistory.csv", в нём уже есть данные, я так понимаю на них будет строится отчет. А, как сделать, что бы отчет строился на моих данных?

 
Andrey Azatskiy:

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

Как это сделать? Не совсем понял терминологию.