Discussão do artigo "Implementando OLAP na negociação (Parte 3): analisando cotações para desenvolver estratégias de negociação"

 

Novo artigo Implementando OLAP na negociação (Parte 3): analisando cotações para desenvolver estratégias de negociação foi publicado:

Neste artigo, continuaremos a estudar a abordagem OLAP aplicada à negociação, bem como a expandir os recursos apresentados nos dois primeiros artigos. Desta vez, analisaremos cotações de maneira operacional. Formularemos e testaremos uma hipótese sobre estratégias de negociação baseadas em indicadores históricos agregados. Apresentaremos EAs para estudos de padrões de barras e negociação adaptativa.

Lembremo-nos do que foi implementado nos artigos anteriores (para aqueles que não os leram por um motivo ou outro, é bom que o façam). O núcleo estava no arquivo OLAPcube.mqh, que continha:

  • todas as principais classes de seletores e agregadores;
  • classes de registros de trabalho contendo dados de origem (Record base abstrato e vários descendentes especializados de TradeRecord contendo dados de transação);
  • adaptador básico para ler as diferentes fontes de dados (abstratas) e gerar matrizes de registros de trabalho a partir delas;
  • adaptador específico para o histórico de negociação da conta HistoryDataAdapter;
  • classe base para exibir resultados e sua implementação mais simples (Display, LogDisplay);
  • painel de controle único na forma de classe Analyst que vinculava o adaptador, o agregador e a tela;

As coisas específicas relacionadas aos relatórios HTML eram exportadas para o arquivo HTMLcube.mqh, que, em particular, definia as classes de transação do relatório HTML HTMLTradeRecord e do HTMLReportAdapter que as gerava.

Da mesma forma, ao arquivo CSVcube.mqh eram adicionadas as classes para transações a partir dos relatórios CSV CSVTradeRecord, além disso, era acrescentado um adaptador CSVReportAdapter para elas.

Por fim, para simplificar a integração do OLAP aos programas MQL5, foi escrito o arquivo OLAPcore.mqh com a classe-wrapper de toda a funcionalidade OLAP usada em projetos de demonstração, OLAPWrapper.

Como a próxima tarefa do OLAP aborda uma nova área, precisaremos refatorar o código existente, bem como selecionar nele as partes comuns ao histórico de negociação e às cotações, se bem que o ideal seria que fosse a qualquer fonte de dados.

Autor: Stanislav Korotky

[Excluído]  
Desenvolvimento de um tema sazonal por meio do olap, muito bom. Você também pode usar o skl de luz embutido, eu acho.
 
Maxim Dmitrievsky:
Desenvolvimento de um tema sazonal por meio do olap, muito bom. Você também pode usar o light skl embutido, eu acho.

Acho que sim, mas quando comecei a usar o OLAP em 2016, o SQL ainda não estava no MT.

 
Anexei os códigos-fonte deste artigo, adaptados rapidamente para o MT4. Eles devem ser compilados normalmente, mas a funcionalidade completa não foi totalmente testada. Algumas coisas estão faltando na MQL4 e não podem ser adequadamente emuladas, em particular, a função ArrayPrint com suporte para matrizes multidimensionais e matrizes de estruturas - ela é implementada como um simples esboço sem uma saída agradável com alinhamento em linhas de registro. Aqueles que desejarem podem aprimorá-la. Também aqui, assim como no artigo, a interface gráfica não foi considerada ou portada para o MT4.
Arquivos anexados:
MQL4OLAP.zip  48 kb
 
Obrigado pelo artigo! É correto afirmar que o OLAP agora está se sobrepondo totalmente em significado aos recursos do SQLite?
 
fxsaber:
Obrigado pelo artigo! É correto afirmar que o OLAP agora está se sobrepondo totalmente aos recursos do SQLite?

Não se sobrepõem completamente, mas se complementam. O OLAP geralmente é um complemento do banco de dados e de outras fontes de dados. Escrever consultas em SQL é uma tarefa árdua. O objetivo do OLAP é fornecer uma interface mais humana.