[Cкрипт] MyFxBookStatementViewer - перенос истории MyfxBook на график MT4/5

От pavlus777, 22 июля, 2025 в Скрипты

Страница 2 из 3
#26
В 27.08.2025 в 12:13, ademen сказал:

3.03

Добрый день!


Отличный скрипт очень необходимый для анализа/оптимизации тактики/стратегии торгов.

 

Кстати, очень полезный для инвесторов: наглядно видно, как проходили торги у того или иного управляющего.  Можно определить стиль, метод, ММ. 

 

Для меня очень удобно анализировать свои сделки: т.к. на  нано счете в F4Y история сделок хранится только до 2-х месяцев.  Поэтому, если хочешь анализировать прошедший этап торговли, то либо необходимо за морочиться и ежемесячно сохранять историю из отчетов или же замониторить счет на myfxbook, и там проводить анализ. Графическое отображение сделок в myfxbook, оставляет желать лучшего.  С помощью Вашего скрипта, намного удобнее визуализировать сделки на график МТ4 и проводить анализ.

 

Прошу Вас дополнить скрипт возможностью вводить сделки из отчетов тестера МТ5. 

 

Тестирование, оптимизацию настроек советников провожу на тиковой истории в МТ5. (Бесплатные котировки с Tickstory  и некоторые брокеры, дают возможность загрузить тиковую историю с реальных торговых серверов/счетов). Встает вопрос об репрезентативности тестов с реальными торгами. Удобнее сравнивать их на графиках одного и того же терминала.

 
Отчет тестера в МТ5, может сохраняется в 2-х форматах HTML и XML, чтобы не усложнять расшифровку данных истории сделок, предлагаю не сложный способ: открыть отчет тестера в HTML формате в любом браузере, из него скопировать только историю сделок и затем сохранить в формате  CSV.
Полагаю в этом случае, потребуются небольшие изменения той части программы, где происходить расшифровка и загрузка информации из файлов истории сделок. 
Так же, сразу заложить возможность визуализации сделок из отчетов тестера МТ4( многие пользуются ).

 

Если получится, то это будет «бомбический» скрипт на все случаи жизни трейдера-инвестора.

 

Для примера файл CSV из отчета тестера МТ5 ниже:

ReportTesterMT5.csv3 скач.

#27
В 27.08.2025 в 10:13, ademen сказал:

3.03
-Изменена логика для InpShowAllOrdersInPeriod

Да, вроде всё ОК! :9>-

Спойлер

InpShowAllOrdersInPeriod=true  учтена и визуализирована сетка, закрывшаяся после истечения периода

image.thumb.png.b092ea8630c886d0640e4ecb971209dd.png

 

InpShowAllOrdersInPeriod=false  НЕ учтена и не отрисована сетка, закрывшаяся после периода.  Итог совпадает с MyFxBook

image.thumb.png.c703284e08851351af73acf9bff468f4.png

 

image.thumb.png.d22697d1aaf7c272973cf20c3ae4789e.png

 

Есть ещё пара предложений по визуализации - но их сначала надо будет обсудить с Вами.

Не уверен, что мое предложение реализуемо чисто технически и может и нечего обсуждать.

Изменено 29 августа, 2025 пользователем Старик

#28
Спойлер
В 28.08.2025 в 12:05, alextron сказал:

Добрый день!


Отличный скрипт очень необходимый для анализа/оптимизации тактики/стратегии торгов.

 

Кстати, очень полезный для инвесторов: наглядно видно, как проходили торги у того или иного управляющего.  Можно определить стиль, метод, ММ. 

 

Для меня очень удобно анализировать свои сделки: т.к. на  нано счете в F4Y история сделок хранится только до 2-х месяцев.  Поэтому, если хочешь анализировать прошедший этап торговли, то либо необходимо за морочиться и ежемесячно сохранять историю из отчетов или же замониторить счет на myfxbook, и там проводить анализ. Графическое отображение сделок в myfxbook, оставляет желать лучшего.  С помощью Вашего скрипта, намного удобнее визуализировать сделки на график МТ4 и проводить анализ.

 

Прошу Вас дополнить скрипт возможностью вводить сделки из отчетов тестера МТ5. 

 

Тестирование, оптимизацию настроек советников провожу на тиковой истории в МТ5. (Бесплатные котировки с Tickstory  и некоторые брокеры, дают возможность загрузить тиковую историю с реальных торговых серверов/счетов). Встает вопрос об репрезентативности тестов с реальными торгами. Удобнее сравнивать их на графиках одного и того же терминала.

 
Отчет тестера в МТ5, может сохраняется в 2-х форматах HTML и XML, чтобы не усложнять расшифровку данных истории сделок, предлагаю не сложный способ: открыть отчет тестера в HTML формате в любом браузере, из него скопировать только историю сделок и затем сохранить в формате  CSV.
Полагаю в этом случае, потребуются небольшие изменения той части программы, где происходить расшифровка и загрузка информации из файлов истории сделок. 
Так же, сразу заложить возможность визуализации сделок из отчетов тестера МТ4( многие пользуются ).

 

 

Если получится, то это будет «бомбический» скрипт на все случаи жизни трейдера-инвестора.

 

 

В 28.08.2025 в 12:05, alextron сказал:

Для примера файл CSV из отчета тестера МТ5 ниже:

 

Добрый день, мне кажется сейчас можно вручную перенести нужные столбцы и должно заработать, или как вариант - подключить мт5 счет к MyFxBook, дальше импортировать в Мт4.

 

В 29.08.2025 в 03:38, Старик сказал:

 

Есть ещё пара предложений по визуализации - но их сначала надо будет обсудить с Вами.

Предлагайте, обудим. 

#29
10 часов назад, ademen сказал:

или как вариант - подключить мт5 счет к MyFxBook

Я имею ввиду результаты тестов МТ5 визуализировать  в МТ4.

#31

@ademen, коллега, у меня нет возможности проверить работу скрипта, если символ в стэйтменте не точно совпадает с символом на счете.

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

Будет ли скрипт работать корректно при не точном совпадении наименований символов в стэйтменте и на счете терминале?

#32

Коллега @ademen, есть предложение выводить итоговую сумму справа внизу всегда (фиксировано) ярко красным цветом?

Это, конечно, мелочь и ни разу не критично.

Но красный цвет хорошо виден всегда на фоне вроде любого цвета.

Синий же цвет, даже яркий, намного хуже читается на темном фоне.

Изменено 11 сентября, 2025 пользователем Старик

#33

Коллеги, для тестирования работы разрабатываемого скрипта MyFxBookStatementViewer нужен или мониторинг, или счет в ДЦ с не стандартным названием валютных пар.

 

Например, EURUSD.c (8 символов) вместо обычного EURUSD (6 символов).

 

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

 

Если знаете ДЦ с не стандартным названием валютных пар, то хотя бы сообщите название ДЦ и, если можете, тип счета.

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

Скрипт MyFxBookStatementViewer не торгующий, только рисующий и он никак не повлияет на ваш счет и даже на торги на нем (проверял многократно).

Изменено 10 сентября, 2025 пользователем Старик

#34

Коллега @ademen, при выполнении тестов я выявил некорректную визуализацию общей/итоговой информации, если в ходе прогона по любой причине отрисовка ордеров на графике не выполнялась.

Всё, что скриптом выводится на график при не отрисовке ордеров в прогоне, либо не обновляется с предыдущего прогона, либо не верно.

 

Спойлер

image.thumb.png.082ccaa4b320788037320ac85aef0a5d.png

В приведенном скрине я тестировал не совпадение названий символов в стэйтменте и на графике визуализации.

В приведенном примере скрипт не смог "разглядеть" в стэйтменте ордера EURUSD под ником a.EURUSD и не отрисовал ордера на графике.

Это был один их креш-тестов, в которых важно корректно зафиксировать итоги неудачного прогона скрипта.

 

Во-первых, не ясно что значит Loaded 1 orders.   Скрипт отработал сотни ордеров из стэйтмента и отрисовал 0 (ни одного) ордера.

Это вроде мелочь, но это принципиальная мелочь - 0 ордеров или 1 ордер.

Если ордеров нет, то все суммы нулевые.  Если хоть 1 ордер отрисован, то данные есть и суммы >0.

И логика требует, что если скрипт не отрисовал ни одного ордера, то в итоге должно быть указано 0 ордеров.

 

Во-вторых, при Loaded 1 orders скрипт не обновляет данные слева вверху и справа внизу.

В этом случае эти 3 информационных строки скриптом не обновляются и не меняются после предыдущего прогона скрипта.

Название файла стэйтмента неверное и офигенная прибыль слева вверху и справа внизу вместо нулевых значений - неправда всё.

Заскринить этот аварийный тест невозможно/бесполезно - во всех 4х строках ложная информация.

 

Понятно, что это второстепенный вопрос что скрипт показывает, если ничего не отрисовал...

Но, наверно, это не сложно исправить, чтобы скрипт выдавал чуток верной инфы, даже если отрисовывать ордера не пришлось.

Изменено 12 сентября, 2025 пользователем Старик

#35
19 минут назад, Старик сказал:

Коллега @ademen, при выполнении тестов я выявил некорректную визуализацию общей/итоговой информации, если в ходе прогона по любой причине отрисовка ордеров на графике не выполнялась.

Всё, что скриптом выводится на график при не отрисовке ордеров в прогоне, либо не обновляется с предыдущего прогона, либо не верно.

@Старик, прикрепите, пожалуйста, файл стэйтмента, который тестировался, я постараюсь глянуть на выходных.

#36
В 12.09.2025 в 08:04, ademen сказал:

@Старик, прикрепите, пожалуйста, файл стэйтмента, который тестировался, я постараюсь глянуть на выходных.

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

Там торги EURUSD + GBPUSD.

Киньте скрипт на любой другой график, кроме 2х названных, или задайте любой магик например 5 или 10.

Скрипт не найдет в стэйтменте ни одного ордера, отвечающего графику/магику, ничего не отрисует и выдаст, вероятно, некорректное сообщение на график.

 

При самом первом некорректном прогоне на графике сообщение скрипта может отличаться от того, что у меня на скрине.

Спойлер

image.thumb.png.082ccaa4b320788037320ac85aef0a5d.png

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

Если же вы попробуете некорректно использовать скрипт на совсем новом графике, то суммы у вас могут быть нулевые...
А может (скорее всего) 3 информационных строки слева вверху и справа внизу не будут отрисованы скриптом вообще.

 

Чтобы получить результат, подобный тому что у меня на скрине, надо выполнить 2 прогона скрипта, например, на EURUSD.

Первый раз в настройках задать только название стэйтмента и скрипт отрисует ордера как должен нормально.

А второй раз задайте магик=10, скрипт не найдет ордеров с таким магиком и оставит сообщения как у меня на скрине.

 

 

Это, скорее всего, малая проблема - на работоспособность скрипта это не влияет.

Надеюсь, достаточно будет немного изменить местоположение "пишущего итоги" фрагмента кода.

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

Может даже, при 0 отрисованных ордеров, стоит выводить на график часть настроек для фиксации и понимания при каких настройках ордера не визуализируются и почему!...

Изменено 13 сентября, 2025 пользователем Старик

#37

Частичное тестирование не совпадения наименований символов в стэйтменте MyFxBook и/или на графике.

 

Большинство ДЦ используют стандартные 6ти символьные наименования валютных пар, металлов и крипты - например, EURUSD, XAUUSD, BTCUSD.

Но есть некоторая часть ДЦ, использующих нестандартные (более длинные или короткие) наименования символов - например, GOLD или с суффиксом EURUSD_i (WoldForex), EURUSDb (AMarkets), EURUSDrfd (AlfaForex).

я когда-то давно встречал наименования символов и с префиксом вида a_EURUSD, но большинство ДЦ использует (если использует) суффикс.

В любом случае, если есть ДЦ с не стандартными наименованиями символов, то есть и мониторинги и их стэйтменты с не стандартными наименованиями символов.

И это требует выполнения отдельной серии тестов для проверки готовности скрипта к работе с наименованиями символов разного написания.

 

Существует 3 основных комбинации не стандартных наименований символов, с которыми должен бы разбираться/справляться скрипт:

1) стэйтмент не стандарт, счет/график стандарт 6 символов

2) стэйтмент стандарт, счет/график не стандарт

3) стэйтмент не стандарт и счет/график не стандарт.

 

Вариантов написания/искажения наименований символов до не стандарта тоже 3:

1) префикс пример a_EURUSD

2) суффикс примеры EURUSDb и EURUSD_i

3) префикс и суффикс одновременно пример a_EURUSDb

Предварительно скрипт отчасти справляется с суффиксом, но не в состоянии обработать префикс и не визуализирует ордера.

 

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

Они точно есть, но не понятно насколько это проблема.

 

Так же вряд ли стоит оценивать как проблему нестандартное наименование символа графика исполнения скрипта.

По идее пользователь может открыть хоть и демку в ДЦ со стандартным наименованием символов и визуализировать там любые торги, не создавая самому себе проблем попытками визуализации торгов на графике с не стандартным названием символа.

То есть проблему счета/символа терминала с не стандартным названием символа можно легко обойти, используя для визуализации хоть и демку в ДЦ со стандартным названием символа.

 

Тем не менее профессиональный подход предполагает, что скрипт должен уметь визуализировать любой стэйтмент MyFxBook на любом графике мт4/мт5.

Основных валютных/крипто/металло символов чуть больше 30, они стандартизованы и скрипт как бы должен:

- понимать какой истинный символ графика визуализации торгов в терминале,

- какой истинный символ стэйтмента,

- не путаться в префиксах и суффиксах и

- уметь отрисовать историю торгов пары a_EURUSD в стэйтменте на счете/графике EURUSD_i, например.

 

Ну это если выписывать скрипт профессионально до конца.

Но скрипт вспомогательный бесплатный и, соответственно, может и стоит ограничиться лишь желательным минимумом функционала.

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

Ну а сделаем что сделаем...

 

-----

 

Коллега @ademen в следующем после выложил обновленный скрипт версии 3.14, в связи с чем публикация итогов ранее выполненных мною тестов версии 3.13 смысла не имеет.

информация о ранее выполненных мною тестах на версии 3.13 уже более не актуальна.

я выполню повторно пару тестов с версией скрипта 3.14 и опубликую итоги ниже поста с новой версией.

Изменено 14 сентября, 2025 пользователем Старик

#38
В 05.09.2025 в 11:45, Старик сказал:

@ademen, коллега, у меня нет возможности проверить работу скрипта, если символ в стэйтменте не точно совпадает с символом на счете.

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

Будет ли скрипт работать корректно при не точном совпадении наименований символов в стэйтменте и на счете терминале?

Коллега @Старик Проверил. Работает в обе стороны.

 

В 10.09.2025 в 11:49, Старик сказал:

 

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

Я сделал автозамену в екселе и добавил суффикс к названию 

 

3.14
-исправил надписи при нулевой загрузке
-изменил цвет надписи 

MyFxBookStatementViewer.ex42 скач.

#39
В 13.09.2025 в 23:07, ademen сказал:

3.14
-исправил надписи при нулевой загрузке

При установке скрипта на график пары, которой нет в стэйтменте, получено сообщение Loaded 0 orders.  Как и должно быть.

Но не выводится больше никакой информации о прогоне/настройках скрипта, который не привел к визуализации стэйтмента.

В 12.09.2025 в 15:55, Старик сказал:

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

Может даже, при 0 отрисованных ордеров, стоит выводить на график часть настроек для фиксации и понимания при каких настройках ордера не визуализируются и почему!...

я не уверен, что это надо, но при Loaded 0 orders может стоит делать "аварийную печать" и слева вверху выводить первый блок настроек прогона?

fileName=.csv
InpMagic=
InpStartDate=
InpEndDate=

Чтобы пользователь быстрее понял что он не так делает, что скрипт не визуализирует историю торгов - хотя для этого и вызывался?

 

В принципе, в лог выводятся настройки при старте скрипта.  Есть куда глянуть.

Вопрос в том стоит ли дублировать первый блок настроек скрипта на графике, если Loaded 0 orders.

P.S. согласен, что при Loaded 0 orders что либо выводить справа внизу действительно не нужно.

Изменено 19 сентября, 2025 пользователем Старик

#40
В 13.09.2025 в 14:25, Старик сказал:

Частичное тестирование не совпадения наименований символов в стэйтменте MyFxBook и/или на графике.

 

Большинство ДЦ используют стандартные 6ти символьные наименования валютных пар, металлов и крипты - например, EURUSD, XAUUSD, BTCUSD.

Но есть некоторая часть ДЦ, использующих нестандартные (более длинные или короткие) наименования символов - например, GOLD или с суффиксом EURUSD_i (WoldForex), EURUSDb (AMarkets), EURUSDrfd (AlfaForex).

я когда-то давно встречал наименования символов и с префиксом вида a_EURUSD, но большинство ДЦ использует (если использует) суффикс.

В любом случае, если есть ДЦ с не стандартными наименованиями символов, то есть и мониторинги и их стэйтменты с не стандартными наименованиями символов.

И это требует выполнения отдельной серии тестов для проверки готовности скрипта к работе с наименованиями символов разного написания.

Структура возможного именования символа/пары в стэйтменте и графика  префикс+EURUSD+суффикс.

Общий подход к тестам совместимости имен символов стэйтмента и графика начал выписывать выше.

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

 

Тест целостности модифицированного файла стэйтмента выполнялся на GBPUSD и проходил штатно.

(то есть файлы стэйтментов, которые использовались в тестах, "исправные" после моих ручных правок файлов стэйтмента).

 

---

 

2 основных теста выполнялись на графике с наименованием EURUSD (6 символов) без префикса и суффикса.

В тестах использовался один и тот же стэйтмент торгов EURUSD+GBPUSD (2 копии), в которых в текстовом редакторе изменено написание символа EURUSD.

 

Тест 1 - в стэйтменте пара EURUSD.c (8 символов с суффиксом).  Ордера (500+) отрисованы штатно.

 

Тест 2 - в стэйтменте пара a.EURUSD (8 символов с префиксом).  Loaded 0 orders.

 

---

 

2 (из 4х) дополнительных теста выполнялись на графике с наименованием EURUSDb (7 символов) без префикса и c суффиксом b.

 

Тест 3 - в стэйтменте пара EURUSD.c (8 символов с суффиксом).  Ордера (500+) отрисованы штатно.

Спойлер

image.thumb.png.f0d8e9cc7d6e2d470fee3b98e956ec1f.png

 

Тест 4 - в стэйтменте пара a.EURUSD (8 символов с префиксом).  Loaded 0 orders.

 

---

 

Тесты с разными суффиксами (без префиксов) в стэйтменте из MyFxBook и счета/графика мт4 проходят штатно, всё отрисовывается. 

Почему не очень понятно - ведь символы стэйтмент/график не совпадают 1:1.

Но наименование символов с суффиксами (без префиксов) есть во множестве ДЦ и, раз работает, то большая часть проблемы решается.

 

Тесты с префиксами в стэйтменте из MyFxBook всегда Loaded 0 orders.  То есть скрипт их обрабатывать не обучен.

Также я не смог найти ДЦ с префиксом в наименовании символов и не смог выполнить тесты скрипта на счете с префиксом символов - что, конечно, плохо.

ДЦ с префиксами в наименованиях символов я точно встречал - но, возможно, их очень мало и они не значимая проблема.

Спойлер

image.png.79ccbee7f44b902548c623682ba36dc7.png

В крайнем случае можно будет в описание скрипта дать пример как в любом текстовом редакторе опцией "ЗАМЕНИТЬ" заменить в стэйтменте CSV название символа a.EURUSD на просто EURUSD например - и пользователь сможет визуализировать любой стэйтмент на обычном графике в любом ДЦ.

 

В целом, если у @ademen нет замечаний/дополнений, вопрос обработки скриптом символов с префиксами и суффиксами, похоже, можно считать закрытым.

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

 

Прилагаю тестировавшиеся в 3.14 файлы стэйтментов и использовавшийся в тестах сет.

MyFxBookStatementViewer test 6.set0 скач. statement 20250820 No tickets a.EURUSD.csv0 скач. statement 20250820 No tickets EURUSD.c.csv0 скач.

Изменено 17 сентября, 2025 пользователем Старик

#41

Ситуация мне напоминает СССР 50-70х годов, когда брались идеи с запада, распиливались, развинчивались и создавались подобия. Потом идеи усложнились и распиливание, развинчивание перестало помогать. Вот управляющий за которым с удовольствием наблюдали несколько лет. История открыта. Распилите и создайте подобие алгоритма, которое обогатит всех. А обычные сетки с неваляшками и без просмоторщика видны.

https://www.myfxbook.com/members/MarcellusLux/lux/8591067

#42
В 16.09.2025 в 06:10, Al2ex3 сказал:

Ситуация мне напоминает СССР 50-70х годов, когда брались идеи с запада, распиливались, развинчивались и создавались подобия. Потом идеи усложнились и распиливание, развинчивание перестало помогать. Вот управляющий за которым с удовольствием наблюдали несколько лет. История открыта. Распилите и создайте подобие алгоритма, которое обогатит всех. А обычные сетки с неваляшками и без просмоторщика видны.

https://www.myfxbook.com/members/MarcellusLux/lux/8591067

Во-первых, какое отношение этот слитый ПАММ имеет к топику разработки скрипта для визуализации на графике торгов из MyFxBook?

Это топик разработки скрипта визуализации истории прошедших торгов, а не торгов или дискуссий о торгах.

 

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

Потери за день составили $27 миллионов - о чем известно на всех мониторящих площадках.

Ваш моник перестал обновляться на пике за примерно 3 недели до слива.  Что тоже явно совершенно не случайно и воняет скамом!

Народ считает, что торги были фэйковые, рисованные ДЦ внутри дня на истории и собранную денюжку ДЦ с управом просто поделили.

 

Ну и штрих по этому монику...

Спойлер

Screenshot_198.png

Если я не ошибаюсь, нижняя сделка EURUSD на скрине выполнялась 4916 лотами.

Четыре тысячи девятьсот шестнадцать лотов. 

Без учета ещё множества лотов, прибыль от которых покрыла комиссию.

И ещё в несколько раз больше тысяч лотов в других сделках того же дня.

То есть якобы в каком-то занюханном ДЦ один трейдер периодически годами торговал 15000-20000+ лотов в день!

Серьезно?!

 

Зачем вы этот заведомо рисованный скам вообще на форум принесли?

Изменено 27 сентября, 2025 пользователем Старик

#44

 Предложения по минимальной оптимизации вывода дополнительной информации на график.

 

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

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

Понятно, что чему меня учили давно я почти напрочь забыл - но вместе мы с этим, несомненно, разберемся.

 

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

и этой теме в скрипте мы не будем посвящать следующие 2 года жизни.

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

 

Это, кстати, конфликтующие требования - максимум информации, как правило, плохо читаем и далеко не всегда максимально полезен.

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

И часто приходится искать компромисс между:

1) объемом выводимой информации,

2) её читаемостью./восприятием и

3) полезностью.

 

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

Вполне допустимо:

- сначала отрисовывать на графике только ордера,

- по мере обработки и отрисовки ордеров запоминая дополнительную/детальную информацию об ордерах,

- по завершении отрисовки ордеров, если надо, накопленную дополнительную информацию об ордерах можно упорядочить (отсортировать, просуммировать...) и

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

 

Более того - и ордера не обязательно отрисовывать сразу по мере считывания и дешифрации информации отдельных ордеров в стэйтменте.

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

 

Это конечно не значит, что надо переписывать MyFxBookStatementViewer с нуля - рисует ордера по мере расшифровки и чудесно!

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

Есть >1 варианта организации считывания/расшифровки и визуализации основной и дополнительной информации об ордерах.

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

 

-----


Давайте в качестве примера рассмотрим выдачу одного из довольно продвинутых (но иногда тормозящих) скриптов визуализации истории торгов из инета.

Скорее всего, в этом скрипте реализована 2х этапная визуализация торгов:

- сначала считывается, расшифровывается, запоминается и подрабатывается вся информация об ордерах

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

Спойлер

image.thumb.png.40893808a4f6f6bf53ca7f777242cfc0.png

 

image.thumb.png.b1823bcf66edb117e9ac16609d9bc158.png

 

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

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

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

Это не старческое брюзжание - реально на графике в 4-6 раз больше текста, чем минимально реально нужно пользователю и нет действительно значимой итоговой информации.

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

Давайте рассмотрим выдачу скрипта из инета несколько внимательнее.

 

---

 

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

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

Да, это выглядит на графике вроде нормально - но реально условно полезная информация (число) спрятана в бесполезной и пользователю надо напрягаться, чтобы прочесть и осознать каждое число.
В формате выдачи каждого числа "знак пробел число $" лишним является всё, кроме числа - и лишняя почти половина символов!!

 

Про символ $ мы говорили выше в топике - он и нахер не нужен, так как из стэйтмента не известно в какой валюте депозит!

Кроме того центовый или полноценный счет и прибыль центы/копейки или доллары/евро/рубли тоже не известно.

Поэтому знака доллара $ на графике (при визуализации стэйтментов) не должно быть в принципе.  Вообще никогда.

 

Автор применил популярную и рекомендуемую раскраску разным цветом положительных и негативных чисел.

Цвет числа однозначно определяет и заменяет знак числа "плюс или минус" - даже знак минус можно не публиковать.

Поэтому запись чисел на скрине как есть бессмысленна - достаточно только чисел соответствующим цветом!

 

При этом уменьшение количества символов в каждом числе на графике в 1.5-2 раза строже центрует число относительно времени закрытия (по горизонтали) и снижает частоту частичного наложения текстов разных ордеров друг на друга.

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

 

---

 

Во-вторых, кроме лотности, информация по отдельным ордерам в сетках более 1 колена трейдеру вообще-то напрочь не нужна.

Бесполезна под 100% случаев.   Даже всматриваться/вчитываться даже в разноцветные числа смысла нет.

На скринах да, выглядит круто охренеть - разные цвета, отсортирована по убыванию, печатается в обе стороны!

Выглядит супер и хорошо видно, что человек думал и старался, выписывая код.

 

Но зачем нам эти числа вообще?!   

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

Ну вот прогнали скрипт на истории за год, отрисовалось 500 сеток, на график вывелась прибыль 1000 или 1500 ордеров и чё дальше?!

Брать калькуляторы и вручную вычислять прибыль в деньгах или пунктах по каждой из 500 сеток?!   Зачем?   Чтобы что?!

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

 

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

Да, в каких-то очень редких случаях такой уровень детализации может трейдеру понадобиться - но очень-очень редко.

На месте автора я бы ввел переключатель MaxInfoOnGraph=true/false и выводил бы инфу по отдельным ордерам только по прямому приказу пользователя. 

А без приказа пользователя всегда выводил бы сумму прибыли сеток от 2х колен - если заданы деньги или пипсы/пункты.

То есть вместо каждого столбика разноцветных чисел нужно одно число - сумма чисел столбика (в деньгах или пипсах).

 

---

 

Анализируя скрины с примерами выдачи вроде хорошего скрипта из инета, мы увидели, что скрипт выводит на график в 2-3 раза больше чисел, чем минимально необходимо и в 99%++ достаточно пользователю.  И не выводит промежуточные итоговые суммы.

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

То есть изучаемый скрипт выводит на экран в 3-6 раз больше текста, чем надо - и не выводит полезные суммы по сеткам.

Ну просто заипись: всё на скрине очень красиво - и большинство нафиг не надо.  А что надо (суммы по сеткам) на скрине нет.

 

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

Критичным является разный цвет чисел sell и buy ордеров - иначе статистика на экране перемешивается и не ясно на данные какого ордера ты смотришь.   Критично понимать какого ордера число на графике - особенно когда ордеров/чисел много.

А цвет положительных и отрицательных чисел однотипных ордеров может быть один - в зависимости от.sell или buy ордер.

Например, положительные и отрицательные числа sell ордеров все красным, а buy ордеров все синим.

То есть цвета текста в MyFxBookStatementViewer и сейчас верны и не надо править - а в скрипте из инета типа "красивше", но принципиально не верно.

 

Но скрипт из инета, несомненно, дает и полезные примеры и подсказки.

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

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

 

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

Если торги сетками (ордерами с одним/общим ТР), то прибыль сеток лучше суммировать и выводить одним числом в районе ТР.

А вот что касается визуализации лотов ордеров, то, вероятно, это лучше делать на уровне открытия ордеров и не суммировать.

 

Также скрины наглядно показывают, что в примерах хорошо видна (минимум наложений) инфа:

- вверх от уровня ТР закрытия BUY сеток

- вниз от уровня ТР закрытия Sell сеток.

То есть инфа о прибыли в деньгах или пунктах неплохо видна на графике, если выводится на отметке закрытия ордера с отступом вниз для Sell и отступом вверх для Buy ордеров.

Спойлер

image.thumb.png.df32f76837ffe6af1fc98808deb049eb.png

 

image.thumb.png.b1823bcf66edb117e9ac16609d9bc158.png

На сравниваемых скринах торги Сеткой сетами одного типа летом 2025 - не точно, но сопоставимые торги.

Текущая выдача текста в MyFxBookStatementViewer выглядит хаотичненько и чрезмерно - как минимум желательно InpYDistance из цен Sell ордеров вычитать, а к ценам Buy ордеров прибавлять (ну или наоборот, надо глянуть как лучше).

Также вероятно (гипотетически) лучше выводить итог на цене закрытия ордера - скрин скрипта из инета не выглядит менее читаемым.

Ну и точно напрашивается включаемое суммирование итогов сеток (деньги/пункты) вместо вывода инфы по всем коленам раздельно.

 

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

Самое главное в MyFxBookStatementViewer сделано и вроде неплохо сделано - оптимизированная выборка и отрисовка ордеров.

Но, как показывает скрипт из инета, осмысленно визуализировать и дополнительную инфу просто в лоб не сделаешь - подумать надо.

 

Нужны какие-то правила/критерии оптимизации вывода дополнительной информации чтобы не зафлуживать график - на скринах инфы в 3-6 раз больше, чем пользователь минимально необходимо.

И нужна не слишком заумная и не слишком сложная идея как определить информацию о каких ордерах надо суммировать, а какие надписывать как одиночные ордера. 

Ведь вертушка MyFxBookStatementViewer работает с каждым ордером строго отдельно и никаких сеток на графике не различает.

Изменено 26 октября, 2025 пользователем Старик

#45

По итогу рассмотрения, на обдумать и решить что дальше, напрашивается вроде всего 2 варианта действий.

 

Вариант 1 - ничего больше не делать с визуализаций, оставить как уже есть.  Имхо, всё же лучше доработать - но можно оставить и как есть.

Ну может, если  InpYDistance>0, делать отступ вниз для Sell и отступ вверх для Buy ордеров. 

Для SELL размещать текст по адресу (Open Date, Open Price - InpYDistance), а для BUY (Open Date, Open Price + InpYDistance).

Может чуть лучше будет видно относительно цены открытия ордера как сейчас есть...  А может лучше наоборот будет видно.

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

Но на этом с визуализацией всё - кому нужна инфа по ордерам, пусть смотрит инфу по каждому ордеру отдельно уж сколько её будет.

 

 

Вариант 2 - с учетом скринов скрипта из инета, сколь возможно оптимизировать показ информации по ордерам.

Без фанатизма - учесть плюсы и избежать плохого.

 

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

(Ну может, если  InpYDistance>0, делать отступ вниз для Sell и отступ вверх для Buy ордеров.)

 

Наверно не избежать добавления параметра уровня детализации визуализации MaxInfoOnGraph=true/false максимум/оптимум.

Дефолтно = false

 

 

2.1) Если MaxInfoOnGraph=true, то вывод информации по каждому ордеру как уже реализовано сейчас.

То есть вывод информации как сейчас при выполнении условия InpTextOnChart=true И (MaxInfoOnGraph=true ИЛИ addInfoType=3)

image.png.b50f6ccb5412a21f157577ba8cf38aec.png

Ну может, если  InpYDistance>0, делать отступ вниз для Sell и отступ вверх для Buy ордеров.

 

 

2.2) Если InpTextOnChart=true И MaxInfoOnGraph=false И addInfoType<3, то лишь тогда сколь выйдет оптимизируем визуализацию.

Под оптимизацией вывода текста (информации о прибыли ордера) на график не предполагается ничего чрезмерно заумного и сложного:

а) если  InpYDistance>0, делать вывод текста (информации об ордере) с отступом вниз для Sell и отступом вверх для Buy ордеров

б) вывод текста выполнять относительно времени/цены закрытия ордера (в отличие от всех иных режимов вывода текста от времени/цены открытия).

    Для SELL размещать текст по адресу (Close Date, Close Price - InpYDistance), а для BUY (Close Date, Close Price + InpYDistance).

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

Эта опция мало улучшит график торгов единичными ордерами, но может существенно улучшить читаемость графика торгов сетками.

 

Да, при расшифровке истории торгов из MyFxBook последовательно ордер за ордером мы не видим и не различаем сеток (групп ордеров) сразу.

Точнее, по ходу расшифровки истории ордер за ордером мы не различаем любых групп ордеров одного типа (SELL|BUY) с одинаковыми временем и ценой закрытия - не только мартин сеток, но и более одного ордеров по вероятному тренду, открытых трейдером хоть и вручную.

Тем более (в процессе расшифровки) мы не знаем и финансового результата группы ордеров - прибыль или убыток в деньгах или пипсах.

Но, как min одним из 2х способов, мы можем суммировать, запоминать и визуализировать финансовый результат любой группы ордеров - даже если в процессе расшифровки истории торгов мы в моменте видим информацию только одного очередного ордера.


Есть нюанс с фиксацией времени открытия и закрытия рыночных ордеров:

- в Истории счета в терминалах время открытия/закрытия market ордеров фиксируется с точностью в секунду

- в Истории MyFxBook время открытия/закрытия market ордеров фиксируется с точностью в минуту

Спойлер

image.thumb.png.b4a88e0a4b191c7977116f68f7a3f9b2.png

 

image.thumb.png.a7b27331e0e0a7b3eca3abdb2b36377c.png

 

Имхо, это не проблема для суммирования прибыли/убытка однотипных ордеров с одинаковыми временем и ценой закрытия.

Но надо понимать, что, из-за этой особенности, отрисовка ордеров из Истории MyFxBook всегда будет с не критичным (на десятки секунд) смещением по времени/горизонтали (оси Х).

 

На первый взгляд, можно предложить 2 варианта реализации суммирования - однопроходный и двухпроходный с запоминанием.

Но я не знаю реализуем ли технически предлагаемый однопроходный вариант с одновременной отрисовкой трассировки ордеров и дополнительной текстовой информации - по ходу расшифровки информации ордеров в стэйтменте.

 

 

2.2.1) однопроходный вариант - если технически возможно, суммировать результат (денег или пипсов) однотипной/однонаправленной группы ордеров (с одинаковыми временем и ценой закрытия) с сохранением суммы прямо на графике.

Текстовый объект каждого ордера в режиме вывода 2.2) имеет однозначно вычисляемые координаты:
- для SELL (Close Date, Close Price - InpYDistance),

- для BUY (Close Date, Close Price + InpYDistance).

У группы однотипных ордеров с одинаковыми временем и ценой закрытия адрес размещения текста должен/будет точно совпадать.

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

 

Сама по себе идея вроде бесхитростная - неясно лишь позволяет ли подобное MQL.

Прочитали очередную строку стэйтмента из MyFxBook, расшифровали информацию очередного SELL или BUY рыночного ордера, отрисовали метки и трассировку ордера на графике, известна прибыль/убыток очередного ордера в деньгах или пипсах,  - эту информацию тоже можно выводить на график (если трейдер приказал).

Но сначала надо проверить нет ли на графике по тому же адресу тестового объекта, размещенного когда-то ранее.

 

Если ранее созданного текстового объекта на графике нет, то создается текстовый объект с прибылью/убытком текущего анализируемого ордера.

 

Но если текстовый объект по данному адресу уже существует, то это означает, что анализируемый текущий ордер входит в какую-то группу ордеров и надо просуммировать прибыль/убыток текущего ордера в деньгах (Profit) или пипсах (Pips) со значением существующего на графике текстового объекта.

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

Если MQL позволяет, модифицировать текстовый объект - заменив в нем выводимое на график число на полученную сумму.

Если нет, то удалить с графика существующий текстовый объект и (по тому же адресу) разместить новый текстовый объект с полученной суммой.

 

 

2.2.2) двухэтапный вариант:  

- сначала считывается стэйтмент, расшифровывается и отрисовывается каждый ордер и запоминается часть инфы отрисованных ордеров

- после расшифровки всего стэйтмента и отрисовки всех ордеров, на график выводится ранее накопленная Pips|Profit информация ордеров.

 

На первом этапе (по ходу считывания и расшифровки строк стэйтмента) в массиве анонимно запоминается следующая информация ордеров:

- Action (SELL или BUY)

- Close Date

- Close Price

- Pips если addInfoType=1 или Profit если addInfoType=2.

Тикет или иная точно идентифицирующая ордер информация для визуализации прибыли не нужна и на первом проходе в массивах не сохраняется.

 

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

То есть сравнивать Action/Close Date/Close Price текущего анализируемого/отрисовываемого ордера со всеми уже сохраненными в массивах данными.

 

Если совпадения 3х идентификаторов в записях массивов не будет найдено, то счетчик+1 и запоминаем Action/Close Date/Close Price и Pips если addInfoType=1 или Profit если addInfoType=2 текущего анализируемого ордера.

Если же Action/Close Date/Close Price текущего ордера совпадет с какой-то записью в массивах, то текущий ордер один из однородной группы ордеров (сетки) и в массиве в найденном элементе к записанной прибыли надо прибавить только Pips если addInfoType=1 или Profit если addInfoType=2 текущего анализируемого ордера.

 

При таком подходе, после считывания и расшифровки всего стейтмента, в массивах сохранится информация о прибыли единичных ордеров и суммы прибыли однородных групп ордеров (сеток).

В зависимости от сетов торгов сетками, пропорций единичных ордеров и сеток от 2х ордеров, в сеточных торгах количество выводимых на график чисел может сократиться от 1.5 до 3-5 раз - что существенно разгрузит график и сделает более легким понимание финансовой динамики торгов.

Если же визуализируются торги единичными ордерами, то использование описанного подхода никак не повлияет на результат на графике.

 

-----

 

Так как я традиционно написал слишком много длинных предложений с множеством картинок, кратко повторю что имхо может стоит сделать.

 

А) во всех режимах вывода числовой информации ордеров значение InpYDistance вычитать из цены в SELL и прибавлять к цене BUY ордеров.

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

Имхо, +- InpYDistance стоит сделать, даже если не делать в скрипте никаких других доработок.

 

Б) добавить параметр уровня детализации визуализируемой прибыли ордеров MaxInfoOnGraph=true/false максимум/оптимум.

Дефолтно = false.

При MaxInfoOnGraph=true вывод информации ордеров тот же, что уже реализован в скрипте (с учетом А)).

При MaxInfoOnGraph=false суммируются пипсы или прибыль групп ордеров с одинаковыми Action/Close Date/Close Price и визуализируется на уровнях Close Date/Close Price.

 

В) InpTextOnChart=true И MaxInfoOnGraph=false И addInfoType<3 вроде единственная комбинация параметров, при которой существенно иначе накапливается и выводится на график числовая информация групп однородных ордеров с одинаковыми временем и ценой закрытия (общий ТР).

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

Это я к тому, что предлагаемая доработка четко локализуется в скрипте и практически не требуется изменения уже выписанного работающего кода.

 

Г) Возможно во всех режимах немного нагляднее было бы выводить прибыль/убыток ордера в пипсах и деньгах относительно времени и цены закрытия ордера.

Но, видимо, это не принципиально и (кроме 2.2)) можно оставить как уже сделано в скрипте (вывод относительно времени и цены открытия ордера).

 

 

Коллега @ademen, это последнее предложение по скрипту, насколько понимаю!...

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

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

Скрипт получился отличный - осталось граффити подправить! :631466115_10_SmilingFaceBlushing_72pf: 

Изменено 27 октября, 2025 пользователем Старик

#46
В 26.10.2025 в 17:09, Старик сказал:

А) во всех режимах вывода числовой информации ордеров значение InpYDistance вычитать из цены в SELL и прибавлять к цене BUY ордеров.

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

Имхо, +- InpYDistance стоит сделать, даже если не делать в скрипте никаких других доработок.

Довольно быстро реализуется, посмотрим, будет ли лучше.

 

В 26.10.2025 в 17:09, Старик сказал:

) добавить параметр уровня детализации визуализируемой прибыли ордеров MaxInfoOnGraph=true/false максимум/оптимум.

Дефолтно = false.

При MaxInfoOnGraph=true вывод информации ордеров тот же, что уже реализован в скрипте (с учетом А)).

При MaxInfoOnGraph=false суммируются пипсы или прибыль групп ордеров с одинаковыми Action/Close Date/Close Price и визуализируется на уровнях Close Date/Close Price.

 

В) InpTextOnChart=true И MaxInfoOnGraph=false И addInfoType<3 вроде единственная комбинация параметров, при которой существенно иначе накапливается и выводится на график числовая информация групп однородных ордеров с одинаковыми временем и ценой закрытия (общий ТР).

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

Это я к тому, что предлагаемая доработка четко локализуется в скрипте и практически не требуется изменения уже выписанного работающего кода.

 

Г) Возможно во всех режимах немного нагляднее было бы выводить прибыль/убыток ордера в пипсах и деньгах относительно времени и цены закрытия ордера.

Но, видимо, это не принципиально и (кроме 2.2)) можно оставить как уже сделано в скрипте (вывод относительно времени и цены открытия ордера)

Мне скорее всего проще всего будет реализовать 2.2.1) однопроходный вариант, при выключенном MaxInfoOnGraph. 

Группировать как на скрине - сложнее, но выглядит красиво, надо сделать :)

Коллега, жду от вас описание новых опций скрипта, но не торопитесь, сейчас много коммерческих заказов - загружен.

 

#47
В 28.10.2025 в 21:00, ademen сказал:
В 26.10.2025 в 17:09, Старик сказал:

А) во всех режимах вывода числовой информации ордеров значение InpYDistance вычитать из цены в SELL и прибавлять к цене BUY ордеров.

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

Имхо, +- InpYDistance стоит сделать, даже если не делать в скрипте никаких других доработок.

Довольно быстро реализуется, посмотрим, будет ли лучше.

"Лучше" насколько-то стать должно. 

Просто в визуализации нет однозначных критериев "лучшести": какое-то количество текста по любому "сядет" на свечи и будет де-факто нечитаемым - и лишь какая-то часть станет видна лучше и несколько легче будет понять какое число относится к какому ордеру.

Причем читаемость визуализируемой прибыли/убытка ордеров более-менее будет приемлемой лишь на ТФ м15 и ниже - на больших ТФ будет очень много наложений текста и свечей.
А торги во флэте это вообще катастрофа, при торгах сетками там максимум наложений текста на свечи и что-то понятно лишь на м5 и м1.

 

Разнесение визуализируемой прибыли/убытка sell и buy ордеров по разные стороны графика цены гипотетически должно уменьшить процент наложений текстов на свечи и друг друга.

И вроде точно должно облегчить восприятие/понимание чисел и привязку чисел к их ордерам.

 

Что касается InpYDistance вычитать из цены в SELL и прибавлять к цене BUY ордеров...

Предложение сдвигать числа прибыли/убытка ордеров именно в направлении ордеров мне кажется логичным от Close Price в режимах вывода 2.2.1 или 2.2.2.

Имхо, это наиболее логичный и наиболее удобный пользователю вариант визуализации прибыли/убытка ордеров в торгах единичными и группами ордеров - чего и предлагаю как дефолтный.

Есть же немало вариантов визуализации прибыли/убытка ордеров - от цен open или close, со сдвигом в одну сторону или в разные, прибавлением или вычитанием как от sell, так и buy!!...

Вариантов вывода инфы прибыли/убытка ордеров на график вообще-то дофига.

 

На мой взгляд, мне как пользователю наиболее удобным и понятным был бы режим вывода 2.2.1 (или 2.2.2) и  InpYDistance вычитать из Close Price цены в SELL и прибавлять к Close Price цене BUY ордеров.

В скрипте из инета, скрины которого я приводил, реализована похожая схема (относительно осей графика X|Y):

- по Х число прибыли/убытка ордера выводится на график в момент Close Date (не Open, а Close и Close может быть на недели позже/правее Open)

- по Y смещение вывода числа прибыли/убытка ордера от Close Price (не Open, а Close) - вверх (+) для BUY и вниз (-) для SELL.

То есть в скрипте из инета схема вывода чисел прибыли/убытков ордеров частично совпадает с нашей - только наша схема продуманней и рациональней.

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

Изменено 1 ноября, 2025 пользователем Старик

#48
В 28.10.2025 в 21:00, ademen сказал:

Мне скорее всего проще всего будет реализовать 2.2.1) однопроходный вариант, при выключенном MaxInfoOnGraph. 

Если mql4 позволит... 

я плохо помню что можно и что нельзя делать с графическими объектами и не уверен, что идею 2.2.1) можно реализовать чисто технически.

А вот 2.2.2) однозначно рабочий и несложный алгоритм и его вы точно реализуете, если язык не позволит реализовать 2.2.1).

Имхо, задача точно решаемая - а вот как вы её решите, вы поймете в процессе.

 

-----

 

В 28.10.2025 в 21:00, ademen сказал:

Группировать как на скрине - сложнее, но выглядит красиво, надо сделать :)

Подобное реализуется довольно просто, имхо :631466115_10_SmilingFaceBlushing_72pf:

Потому что в скрипте из инета нет никакого группирования и сортировок - как я, наконец, сегодня понял и аж прифигел немного. :)

 

Данные прибыли/убытка ордеров сами в процессе расшифровки стэйтмента как надо сохраняются - так как в стэйтменте MyFxBook ордера отсортированы по дате открытия и выводятся в обратном порядке (обратно хронологии).

Это, помнится, так называемый LIFO: last in - first out.

Проще говоря, когда скрипт считывает по одной записи файла стэйтмента MyFxBook, то в каждой группе ордеров (сетке) сначала считывается, расшифровывается и запоминается самый последний по времени (обычно самый большой) ордер сетки - а самым последним будет прочитан самый ранний (первый, минимальный) ордер сетки.

То есть если в сетке например 10 колен, то скрипт читает их из файла стэйтмента MyFxBook в обратной очередности 10, 9, 8, ... 3, 2, 1 и так и запомнит.

Поэтому нет необходимости дополнительно сортировать инфу прибыли/убытка ордеров - они в стэйтменте MyFxBook исходно отсортированы оптимально для вывода на график.

 

Спойлер

image.thumb.png.b1823bcf66edb117e9ac16609d9bc158.png

На скрине из инета:

а) информация о прибыли/убытке ордеров в деньгах дополнительно не сортирована - в такой последовательности она исходно есть в стэйтменте MyFxBook.

б) информация о прибыли/убытке ордеров визуализируется на графике со сдвигом вверх для BUY ордеров и со сдвигом вниз для SELL ордеров.

    Это то, что и я предлагал: InpYDistance вычитать из цены SELL ордеров - и прибавлять к цене BUY ордеров.

в) в скрипте из инета их аналог InpYDistance по дефолту >0 - у них явно есть смещение, инфа о прибыли ордера размещается со сдвигом от Close Prise.

    Наверно и нам стоит попробовать InpYDistance=100 (например) по дефолту (но имхо точно InpYDistance >0, лепить текст на метку Close Prise не читаемо).

 

-----

 

В скрине из инета реализована  разновидность предлагавшегося мною алгоритма 2.2.2) - очень похоже в части первичного накопления информации.

Условно говоря, нужен алгоритм 2.2.3) с небольшим и понятным отличием (против 2.2.2)) в сохранении данных и их последующем выводе на график.

Но это точно реализуемо - и, похоже, не особо сложно.

 

2.2.3) двухэтапный вариант с визуализаций прибыли/убытка всех ордеров сеток (групп ордеров) в момент Close Date на уровне Close Price +- смещение.

Первичный сбор информации о прибыли/убытке ордеров почти полностью совпадает с тем, как это делается в 2.2.2).

В 26.10.2025 в 17:09, Старик сказал:

2.2.2) двухэтапный вариант:  

- сначала считывается стэйтмент, расшифровывается и отрисовывается каждый ордер и запоминается часть инфы отрисованных ордеров

- после расшифровки всего стэйтмента и отрисовки всех ордеров, на график выводится ранее накопленная Pips|Profit информация ордеров.

 

На первом этапе (по ходу считывания и расшифровки строк стэйтмента) в массиве анонимно запоминается следующая информация ордеров:

- Action (SELL или BUY)

- Close Date

- Close Price

- Pips если addInfoType=1 или Profit если addInfoType=2.

Тикет или иная точно идентифицирующая ордер информация для визуализации прибыли не нужна и на первом проходе в массивах не сохраняется.

 

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

То есть сравнивать Action/Close Date/Close Price текущего анализируемого/отрисовываемого ордера со всеми уже сохраненными в массивах данными.

Разница между 2.2.2) и 2.2.3) в хранении информации ордеров и групп ордеров состоит в следующем:

- в 2.2.2) суммируется результат (пипсов или денег) всех ордеров с одинаковыми Action/Close Date/Close Price (и в итоге всегда будет лишь одно число суммы)

- в 2.2.3) результат (пипсов или денег) каждого ордеров с одинаковыми Action/Close Date/Close Price не суммируется, а запоминается в массиве отдельно (и в итоге чисел запомнено будет столько, сколько колен в каждой сетке).

   Дополнительной сортировки прибыли/убытка ордеров не требуется, так как в стэйтменте ордера отсортированы по Open Date в обратной хронологии и в сетках ордера будут запоминаться от последнего к первому (обычно от наибольшего к наименьшему) в автомате в ходе расшифровки.

 

---

 

Но если вы всё таки надумаете реализовывать ещё и вариант 2.2.3), то может не подойти буллевый MaxInfoOnGraph=true/false.

Потому что будет реализовываться не 2, а 3 варианта вывода информации о прибыли/убытках единичных ордеров и групп ордеров:

1) на уровне Open Date/Open Price вывод инфы всех ордеров порознь (без группирования и суммирования) (лоты только таким образом).

    этот режим вывода реализован сейчас.  Других режимов вывода чисел пока нет.

2) на уровне Close Date/Close Price с суммированием прибыли/убытка групп ордеров (сеток).  Это вариант 2.2.1) или 2.2.2).

3) на уровне Close Date/Close Price с раздельным (в столбик) выводом прибыли/убытка ордеров групп ордеров (сеток).  Это вариант 2.2.3)

 

Поэтому, если реализовывать и 2.2.3), то вроде нужен переключатель MaxInfoOnGraph, подобный addInfoType.

Дефолтно такой MaxInfoOnGraph=2 (имхо, оптимально выводить сумму - одно число прибыли/убытка сетки).

Но это только если и вариант визуализации 2.2.3) вы всё таки надумаете воплощать.
Если же 2.2.3) вы делать передумаете и остановитесь на реализации 2.2.1) или 2.2.2), то тогда соответствующее предложение выписано здесь.

Изменено 3 ноября, 2025 пользователем Старик

#49
В 28.10.2025 в 21:00, ademen сказал:

Коллега, жду от вас описание новых опций скрипта, но не торопитесь, сейчас много коммерческих заказов - загружен.

А их нет никаких дополнительных предложений - если реализуете уже выписанные предложения по визуализации чисел, то это наверно всё! :631466115_10_SmilingFaceBlushing_72pf:

я посмотрю что я ранее (в начале разработки) предлагал, может что-то забыл - но, что помню на сегодня, написал в этом топике. 

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

 

Это будет относительно небольшой, понятный пользователю, с умеренным количеством параметров и быстрый скрипт.

Если человеку надо будет глянуть на монике работу какого-то бота на конкретной паре, особенно рассмотреть какой-то сложный участок - скрипт отлично справится с этим!

 

Делать мультивалютный вариант, чтобы скрипт обрабатывал все пары в стэйтменте MyFxBook и сам как-то как надумает открывал графики - имхо, нафиг не надо.

Реально успешных ботов, годами торгующих на 10-20 парах - ну покажите хоть один, хочу увидеть... 

А 2-3 графика трейдер и сам по одному обработает скриптом MyFxBookStatementViewer.

 

Но MyFxBookStatementViewer реально нужный скрипт!

Например, мне надо просмотреть торги большими (12+ колен) сетками на полдюжине мониторингов на предмет насколько цена заступала за уровень ТР и насколько можно увеличить ТР сеток с большим количеством колен без роста риска их не закрытия из-за увеличения ТР.

А фишка в том, что если ТР большой сетки можно увеличить хотя бы на несколько пипсов, то это может добавить даже десятки %% годовых в длительных торгах.

И это вообще-то вполне серьезно - такая оптимизация сетов/торгов имеющимися ботами по прибыли равносильна разработке с нуля нескольких новых ботов...

Так что жду завершение разработки скрипта, чтобы уже не отвлекаться - и буду начинать это объемное исследование моников торгов а можно ли увеличить ТР!

Изменено 3 ноября, 2025 пользователем Старик

#50

3.10
Сделал сдвиг для бай вверх, для селл вниз от Лоу и ХайMyFxBookStatementViewer.ex42 скач.

 

@Старик, я заметил, что на скрине информация выводится в точке закрытия, а у нас в точке открытия. Стоит делать на закрытие?

image.thumb.png.b1823bcf66edb117e9ac16609d9bc158.png

 

#51
13 часов назад, ademen сказал:

3.10
Сделал сдвиг для бай вверх, для селл вниз от Лоу и Хай

Такое впечатление, что отступы/смещения текста от их ордеров в данной версии разнятся, причем прилично - до 30%.

Не понимаю что вы подразумеваете под сдвигом от Лоу и Хай - сдвиг вверх/вниз в этом режиме вроде от метки Open Price должен быть?

Спойлер

image.thumb.png.4dfb44c8172a90edf34bb235371d83bb.png

В принципе, картинка приемлемая: наложений чисел нет - а визуализация по Open Date и Price дает максимум чисел и непонятности.

Ну и, как и было понятно заранее, какое число к какому ордеру относится понятно лишь до м15 где-то.

Но это такой режим визуализации: максимум инфы по ордерам - но и максимальное захламление графика.

 

Первый этап разработки скрипта на этом типа завершен.

Есть вроде корректно работающая вертушка расшифровки стэйтмента и отрисовки ордеров + простейший вариант вывода на график инфы каждого ордера на уровне Open Date и Price.

 

Второй этап в принципе вроде попроще - упорядочиваем вывод прибыли ордеров и всё.

Вводим параметр управления выводом инфы о прибыли ордеров MaxInfoOnGraph и, с его использованием, добавляем ещё 1-2 варианта вывода прибыли групп ордеров (сеток) на уровне Close Date/Price.

Изменено 11 ноября, 2025 пользователем Старик

#52
14 часов назад, ademen сказал:

@Старик, я заметил, что на скрине информация выводится в точке закрытия, а у нас в точке открытия. Стоит делать на закрытие?

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

За прошедшие 2 недели вы наверно подзабыли что я там многочисленными постами на несколько экранов каждый выше писал :631466115_10_SmilingFaceBlushing_72pf:

 

Мы обсудили и прописали 2 варианта вывода на уровне Close Date/Price прибыли групп ордеров (сумма прибыли ордеров сетки одним числом или прибыль каждого ордера сетки в столбик) 2мя из 3х возможных алгоритмов 2.2.1) или 2.2.2) и 2.2.3).

Вы обдумывали реализацию алгоритмов 2.2.1) и 2.2.3).

 

 Для вывода инфы об ордерах на уровне Close Date|Prise надо вводить дополнительный параметр управления выводом на график.

2х режимный MaxInfoOnGraph=true/false, если реализовывать только вывод сумм прибыли сеток согласно алгоритмов 2.2.1/"/topic/25171-myfxbookstatementviewer-perenos-istorii-myfxbook-na-grafik-mt45/?do=findComment&comment=546229" rel="">2.2.3

В 02.11.2025 в 05:46, Старик сказал:

Но если вы всё таки надумаете реализовывать ещё и вариант 2.2.3), то может не подойти буллевый MaxInfoOnGraph=true/false.

Потому что будет реализовываться не 2, а 3 варианта вывода информации о прибыли/убытках единичных ордеров и групп ордеров:

1) на уровне Open Date/Open Price вывод инфы всех ордеров порознь (без группирования и суммирования) (лоты только таким образом).

    этот режим вывода реализован сейчас.  Других режимов вывода чисел пока нет.

2) на уровне Close Date/Close Price с суммированием прибыли/убытка групп ордеров (сеток).  Это вариант 2.2.1) или 2.2.2).

3) на уровне Close Date/Close Price с раздельным (в столбик) выводом прибыли/убытка ордеров групп ордеров (сеток).  Это вариант 2.2.3)

 

Поэтому, если реализовывать и 2.2.3), то вроде нужен переключатель MaxInfoOnGraph, подобный addInfoType.

Дефолтно такой MaxInfoOnGraph=2 (имхо, оптимально выводить сумму - одно число прибыли/убытка сетки).

Но это только если и вариант визуализации 2.2.3) вы всё таки надумаете воплощать.
Если же 2.2.3) вы делать передумаете и остановитесь на реализации 2.2.1) или 2.2.2), то тогда соответствующее предложение выписано здесь.

3 возможных алгоритма упорядоченного вывода прибыли групп ордеров (сеток) на уровне Close Date|Prise я выписал детально в постах по ссылкам.

Но мои посты по ссылкам надо перечитать, чтобы вспомнить всё :631466115_10_SmilingFaceBlushing_72pf:

Изменено 11 ноября, 2025 пользователем Старик

Страница 2 из 3

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

Перейти к списку тем
Форум · 2.0.20260627.0025