Discussion of article "Applying OLAP in trading (part 2): Visualizing the interactive multidimensional data analysis results"

 

New article Applying OLAP in trading (part 2): Visualizing the interactive multidimensional data analysis results has been published:

In this article, we consider the creation of an interactive graphical interface for an MQL program, which is designed for the processing of account history and trading reports using OLAP techniques. To obtain a visual result, we will use maximizable and scalable windows, an adaptive layout of rubber controls and a new control for displaying diagrams. To provide the visualization functionality, we will implement a GUI with the selection of variables along coordinate axes, as well as with the selection of aggregate functions, diagram types and sorting options.

Here are examples of analytical profiles which can be presented graphically using OLAPGUI.

Profit by symbols, in descending order

Profit by symbols, in descending order

Profit by symbols, sorted alphabetically

Profit by symbols, sorted alphabetically

Profit by symbol, day of the week when position was closed, deal type "Buy"

Profit by symbol, day of the week when position was closed, deal type "Buy"

Profit by symbol, day of the week when position was closed, deal type "Sell"

Profit by symbol, day of the week when position was closed, deal type "Sell"

Profit by lot size (lots are indicated as cell indexes, the values are displayed in the log)

Profit by lot size (lots are indicated as cell indexes, the values are displayed in the log)

Total balance curve

Total balance curve

Balance by Buy and Sell operations

Balance by Buy and Sell operations

Balance curves for each symbol separately

Balance curves for each symbol separately

Swap curves for each symbol separately

Swap curves for each symbol separately

Profit dependence on the trade 'duration' for each symbol separately

Profit dependence on the trade 'duration' for each symbol separately

Number of deals by symbols and types

Number of deals by symbols and types

Dependence of 'Profit' and 'Duration' (in seconds) fields for each deal

Dependence of 'Profit' and 'Duration' (in seconds) fields for each deal

MFE (%) and MAE (%) dependencies for all deals

MFE (%) and MAE (%) dependencies for all deals

Author: Stanislav Korotky

 
What is the difference from EasyAndFast?
 
The question in this wording is difficult for me to answer. The topic was OLAP. In this case GUI is a utilitarian necessity, so it is made in a minimal amount in the form of a standard library add-on. Something heavy and changeable (because of which the documentation - not unified, and in the form of a pile of patches) was decided not to use. Since the output interface is simple, those who wish can use their favourite 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


Under MT4 compiled through

#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

by doing this.

 
fxsaber:

The article says: patch the library - the easiest way is to change private to protected in the corresponding files. Just in case we make a backup beforehand.

 
fxsaber:


Compiled through

#define private public

Better protected.

 
Stanislav Korotky:

The article says: patch the library - the easiest way is to change private to protected in the corresponding files. Just in case we make a backup beforehand.

Well, who reads the instructions of the article before using it....

 
Stanislav Korotky:
The question in this wording is difficult for me to answer. The topic was OLAP. In this case GUI is a utilitarian necessity, so it is made in a minimal amount in the form of a standard library add-on. Something heavy and changeable (because of which the documentation - not unified, and in the form of a pile of patches) was decided not to use. Since the output interface is simple, those who want to can take their favourite GUI.
Nice add-on.
 
Alexander Fedosov:
What's the difference from EasyAndFast?
did you look in the article or just look at the pictures? )
 
Minor bugfix in OLAPcube.mqh.
Files:
OLAPcube.mqh  42 kb
 
Very good articles by the author. Unfortunately, the language has changed significantly since then, you need a decent refactoring for compilation.
Stanislav Korotky
Stanislav Korotky
  • www.mql5.com
Профиль трейдера