Обсуждение статьи "Анализ графиков Баланса/Средств по символам и ORDER_MAGIC советников"

 

Опубликована статья Анализ графиков Баланса/Средств по символам и ORDER_MAGIC советников:

С введением хеджинга в MetaTrader 5 появилась отличная возможность одновременной торговли несколькими советниками на одном торговом счёте. При этом возможна ситуация, когда одна стратегия прибыльна, вторая убыточна, а в итоге график прибыли болтается около нуля. В таком случае полезно построить графики Баланса и Средств для каждой торговой стратегии по отдельности.

Теперь на hedge счетах, при одновременной торговли нескольких советников, можно просмотреть статистику баланса и средств по каждому символу и каждому magic'у - то есть визуально определить, каков вклад конкретного советника (ORDER_MAGIC) в общий баланс и, самое главное, какие были просадки у каждого конкретного советника.

Видео работы построения баланса и плавающей прибыли на основе торговой истории (сначала для всех символов, затем — только для одного символа):



Автор: Vladimir Karputov

 

Автору Спасибо, GUI понравился.


Не понял только, почему так медленно идут расчеты? Сначала подумал, что используется специальное замедление, но "Sleep" и "OnTimer" в исходниках не обнаружил.


 


из-за этого не смог потестить и ответить на вопрос - работает на счёту с неттингом (ФОРТС, Открытие) и с множеством разных экспертов на нём?

я учёт по экспертам веду рассчитывая объём позиции по магику, столкнулся с тем, что DEAL_ENTRY_OUT DEAL_ENTRY_IN появляются не совсем так, как ожидалось бы при хеджинге 

 
vito333:


из-за этого не смог потестить и ответить на вопрос - работает на счёту с неттингом (ФОРТС, Открытие) и с множеством разных экспертов на нём?

я учёт по экспертам веду рассчитывая объём позиции по магику, столкнулся с тем, что DEAL_ENTRY_OUT DEAL_ENTRY_IN появляются не совсем так, как ожидалось бы при хеджинге 


У Вас вопрос по статье или так, вообще? Если "так, вообще", то сразу указывайте ВСЕ исходные данные в отдельно созданной теме в разделе "Общее обсуждение":

  • операционная система (обязательно уточнение настоящая Windows или из под wine), разрядность, сборка, сервис пак
  • билд терминала
  • плюс первый три строки из папки "Журнал" терминала после перезагрузки терминала.
 

Меня удивляет как такие статьи вообще пропускают.

1. Комиссия. Своп. Прибыль

Итоговый финансовый результат сделки формируется суммированием трёх параметров:

 Result=-Deal commission +Cumulative swap on close+ Deal profit

‌Комиссия всегда указывается в терминале со знаком "+", поэтому в формуле итогового финансового результата она отнимается.

Эти свойства сделок получают при помощи HistoryDealGetDouble() со следующими идентификаторами:


Результаты работы скрипта (удалены сделки с типом DEAL_ENTRY_IN, поскольку в них отсутствует финансовый результат):


У меня слов приличных нет. Такое незнание недопустимо при написании статей. В доказательство смотрите скрин.

Дальше читать просто неприятно.

 
Alexey Viktorov:

Меня удивляет как такие статьи вообще пропускают.

У меня слов приличных нет. Такое незнание недопустимо при написании статей. В доказательство смотрите скрин.

Дальше читать просто неприятно.


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

Код и текст будут исправлены.

 
Vladimir Karputov:


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

Код и текст будут исправлены.

А демку с комиссией найти мама не разрешает? Странный подход. Как можно браться за написание статьи не изучив тему... Да, в общем-то наплевать... Кому надо разберутся, а остальным оно не надо...
 
fxsaber:

Не понял только, почему так медленно идут расчеты? Сначала подумал, что используется специальное замедление, но "Sleep" и "OnTimer" в исходниках не обнаружил.

Предполагаю, что дело и в этом

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Особенности языка mql5, тонкости и приёмы работы

fxsaber, 2017.04.19 19:34

HistorySelect - очень дорогая функция. Но HistorySelectByPosition - еще дороже.

Например, если нужно найти первую сделку закрытой позиции, то можно действовать двумя способами

  1. Сделать HistorySelectByPosition и затем найти нужную сделку из полученного небольшого списка. Но список этот формируется следующим образом Сначала формируется ВСЯ история (равносильно вызову "бесконечного" HistorySelect). Затем идет ПОЛНЫЙ цикл for по этому списку и выбираются только те сделки, которые имеют соответствующий POSITION_IDENTIFIER.
  2. Сделать HistorySelect (можно "бесконечно", но лучше воспользоваться интервалом, если известен), затем в цикле for сделать break, когда дойдешь до соответствующего DEAL_ENTRY.

Второй пункт может быть значительно дешевле. Но точно не дороже.

Вызывать в тестере HistorySelect*-функции - почти уничтожение вычислительных ресурсов. Поэтому нужно всегда стараться сводить их число к минимуму. Особенно, HistorySelectByPosition.

 

"С введением хеджинга в MetaTrader 5 появилась отличная возможность одновременной торговли несколькими советниками на одном торговом счёте. При этом возможна ситуация, когда одна стратегия прибыльна, вторая убыточна, а в итоге график прибыли болтается около нуля. В таком случае полезно построить графики Баланса и Средств для каждой торговой стратегии по отдельности."

Тема реально очень важная, проблема поднята серьезная - MT5 не имеет функций расчета PnL в разрезе торговых стратегий, работающих на одном счету и символе (отличаемых по MAGICкам), НО ... автор просто гонит просто фуфло! Судя по всему Владимир просто программер, а не трейдер и соответственно совершенно не сечет тему.

Неверный знак комиссии в первичной статье - это мелочь. Тут вопрос в том что статья вообще не решает заявленную проблему с отсутствием расчета PnL в разрезе торговых стратегий, и вместо решения проблемы демонстрирует навыки автора в отборе сделок через ООП и программировании панелей.

Реальная  проблема состоит в том, что MT5 не учитывает MAGIC при расчете значений PnL нигде, и соответственно  DEAL_PROFIT по сделкам считается в общем случае неверно. Т.е. если у меня торгуют  три советника на символе: один тренд-катчер открывает позиции в долгосрок, а два осцилятора ловят периоды перекупленности/перепроданности на Н1/Н4, и торгуют на возврат к среднему, то PnL рассчитанная по сделкам без учета MAGICов представляет собой просто "температуру по больнице". А когда такие три советника на 20ти разных символах???

Соответственно по всем сделкам на закрытие позиций суммирование (_balance=m_balance+deal_commission+deal_swap+deal_profit;)в функции GetHistory НЕ КОРРЕКТНО.  До суммирования нужно пересчитывать DEAL_PROFIT. Причем пересчитывать с учетом валютных курсов на дату закрытия позиций, н-р в ситуации когда торговля ведется фьчерсами на MOEX с торгового счета с базовой валютой в usd.



Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 

Очень полезная штука. Владимир,заметил такой баг -

Счет открыт 4 дня назад. Выбираем в советнике дату старта по умолчанию т.е какой то там 2017год.

Дату окончания выбираем сегодняшний день 02.10.2018.

Советник зависает, на закрытия крестиком не реагирует. Терминал при этом отжирает 2гб оперативки.

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

 
EgorKim:

Очень полезная штука. Владимир,заметил такой баг -

Счет открыт 4 дня назад. Выбираем в советнике дату старта по умолчанию т.е какой то там 2017год.

Дату окончания выбираем сегодняшний день 02.10.2018.

Советник зависает, на закрытия крестиком не реагирует. Терминал при этом отжирает 2гб оперативки.

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

Уточните, пожалуйста, название файла, который Вы запускает. Тип торгового счёта. На каком символе. 

Причина обращения: