Обсуждение статьи "Применение OLAP в трейдинге (Часть 2): Визуализация результатов интерактивного анализа многомерных данных"

 

Опубликована статья Применение OLAP в трейдинге (Часть 2): Визуализация результатов интерактивного анализа многомерных данных:

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

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

Прибыли по символам в порядке убывания величины

Прибыли по символам в порядке убывания величины

Прибыли по символам в алфавитном порядке

Прибыли по символам в алфавитном порядке

Прибыли по символу, дню недели закрытия, тип "покупка"

Прибыли по символу, дню недели закрытия, тип "покупка"

Прибыли по символу, дню недели закрытия, тип "продажа"

Прибыли по символу, дню недели закрытия, тип "продажа"

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

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

Общая кривая баланса

Общая кривая баланса

Баланс в разрезе покупок и продаж

Баланс в разрезе покупок и продаж

Кривые балансы для каждого символа отдельно

Кривые баланса для каждого символа отдельно

Кривые свопов для каждого символа отдельно

Кривые свопов для каждого символа отдельно

Зависимость прибылей от длительности трейда для каждого символа отдельно

Зависимость прибылей от длительности трейда для каждого символа отдельно

Количество сделок в разбивке по символам и типам

Количество сделок в разбивке по символам и типам

Зависимость полей прибыль и длительность для каждой сделки (длительность указана в секундах)

Зависимость полей прибыль и длительность для каждой сделки (длительность указана в секундах)

Зависимость MFE (%) и MAE (%) по всем сделкам

Зависимость MFE (%) и MAE (%) по всем сделкам

Автор: Stanislav Korotky

 
В чем отличие от EasyAndFast? 
 
На вопрос в данной формулировке мне трудно ответить. Темой был OLAP. При нем GUI - утилитарная необходимость, поэтому он выполнен в минимальном объеме в виде надстройки стандартной библиотеки. Нечто тяжелое и меняющееся (из-за чего документация - не единая, а в виде кучи исправлений) было решено не использовать. Поскольку интерфейс вывода данных простой, желающие могут взять свой любимый GUI.
 
'm_edit' - private member access error  SpinEditResizable.mqh   14      7
'm_inc' - private member access error   SpinEditResizable.mqh   19      7
'm_dec' - private member access error   SpinEditResizable.mqh   23      7
'm_drop' - private member access error  ComboBoxResizable.mqh   65      3
'm_edit' - private member access error  ComboBoxResizable.mqh   16      7
'm_drop' - private member access error  ComboBoxResizable.mqh   20      7
'm_list' - private member access error  ComboBoxResizable.mqh   22      7
'm_list' - private member access error  ComboBoxResizable.mqh   32      17
'm_drop' - private member access error  ComboBoxResizable.mqh   33      10
'm_edit' - private member access error  ComboBoxResizable.mqh   44      7
'm_drop' - private member access error  ComboBoxResizable.mqh   45      7
'm_edit' - private member access error  ComboBoxResizable.mqh   51      7
'm_drop' - private member access error  ComboBoxResizable.mqh   52      7
'm_caption' - private member access error       MaximizableAppDialog.mqh        249     5
'm_button_minmax' - private member access error MaximizableAppDialog.mqh        171     3
'm_caption' - private member access error       MaximizableAppDialog.mqh        178     5
'm_button_minmax' - private member access error MaximizableAppDialog.mqh        192     3
'm_caption' - private member access error       MaximizableAppDialog.mqh        199     5


Под MT4 скомпилировал через

#ifndef __MQL5__
  #property strict

  #define ERR_MARKET_UNKNOWN_SYMBOL 4301
  
  bool ChartIndicatorAdd( long, int, int ) { return(false); }

  template <typename T>  
  void ArrayPrint( T &[], int = 0 ) {}
#endif // __MQL5__

#define private public

сделав это.

 
fxsaber:

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

 
fxsaber:


Скомпилировал через

#define private public

Лучше на protected.

 
Stanislav Korotky:

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

Ну кто же читает инструкциистатьи перед применением...

 
Stanislav Korotky:
На вопрос в данной формулировке мне трудно ответить. Темой был OLAP. При нем GUI - утилитарная необходимость, поэтому он выполнен в минимальном объеме в виде надстройки стандартной библиотеки. Нечто тяжелое и меняющееся (из-за чего документация - не единая, а в виде кучи исправлений) было решено не использовать. Поскольку интерфейс вывода данных простой, желающие могут взять свой любимый GUI.
Хорошая надстройка.
 
Alexander Fedosov:
В чем отличие от EasyAndFast? 
вы в статью заглядывали или просто картинки посмотрели? )
 
Очень хорошие статьи Автора. К сожалению, язык поменялся существенно с тех пор, нужен приличный рефакторинг для компиляции.
Stanislav Korotky
Stanislav Korotky
  • www.mql5.com
Профиль трейдера
 
fxsaber #:
Очень хорошие статьи Автора. К сожалению, язык поменялся существенно с тех пор, нужен приличный рефакторинг для компиляции.

Точечно решаю проблемы нарушенной совместимости по запросам читателей. Всё сразу отслеживать нет времени. Так что, если есть проблемы, пишите.

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