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

 

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

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

Напомним, что было реализовано в предыдущих статьях (для тех, кто их по тем или иным причинам пропустил, настоятельно рекомендуется ознакомиться). Ядро находилось в файле OLAPcube.mqh, который содержал:

  • все основные классы селекторов и агрегаторов;
  • классы рабочих записей с исходными данными (абстрактный базовый Record и несколько специализированных наследников TradeRecord с данными о сделках);
  • базовый адаптер для чтения различных (абстрактных) источников данных и формирования из них массивов рабочих записей;
  • конкретный адаптер для торговой истории счета HistoryDataAdapter;
  • базовый класс отображения результатов и его простейшая реализация, использующая вывод в лог (Display, LogDisplay);
  • единая панель управления в виде класса Analyst, связывающего воедино адаптер, агрегатор и дисплей;

Специфические вещи, относящиеся к HTML-отчетам, были вынесены в файл HTMLcube.mqh, в котором, в частности, определены классы торговых сделок HTML-отчета HTMLTradeRecord и порождающий их адаптер HTMLReportAdapter.

Аналогичным образом в файл CSVcube.mqh были вынесены классы для торговых сделок из CSV-отчетов CSVTradeRecord и адаптер для них CSVReportAdapter.

Наконец, для упрощения интеграции OLAP с MQL5-программами был написан файл OLAPcore.mqh с классом-оберткой всего OLAP-функционала, применявшегося в демонстрационных проектах — OLAPWrapper.

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

Автор: Stanislav Korotky

 
Развитие сезонной темы через олап, найс. Еще можно через встроенный лайт скл, наверное.
 
Maxim Dmitrievsky:
Развитие сезонной темы через олап, найс. Еще можно через встроенный лайт скл, наверное.

Наверно, можно, но когда у меня начинался OLAP в 2016 году, SQL еще не было в МТ.

 
Прикладываю исходные коды данной статьи, адаптированные по-быстрому под MT4. Должны нормально компилироваться, но полной проверки всего функционала не проводилось. Кое-какие вещи отсутствуют в MQL4 и не могут быть адекватно эмулированы, в частности, функция ArrayPrint с поддержкой многомерных массивов и массивов структур - для неё реализована простая заглушка без красивого вывода с выравниванием в строках логов. Желающие могут улучшить. Также здесь, как и в статье, не рассматривался и не портировался на MT4 графический интерфейс.
Файлы:
MQL4OLAP.zip  48 kb
 
Спасибо за статью! Правильно ли понимаю, что OLAP по смыслу теперь полностью пересекается с возможностями SQLite?
 
fxsaber:
Спасибо за статью! Правильно ли понимаю, что OLAP по смыслу теперь полностью пересекается с возможностями SQLite?

Полностью не пересекается, скорее дополняют друг друга. Обычно OLAP - надстройка над базой и другими источниками данных. Писать запросы на SQL - это рутина. Задача OLAP - предоставить более человеческий интерфейс.