Bibliotecas: BestInterval - página 15

 

Leia novamente sobre OLAP. Talvez eu não esteja entendendo muito bem, mas não há como encontrar o melhor.

Qual é o objetivo de apenas plotar essas seções de dados?

Então, se eu entendi corretamente, a generalização para a biblioteca não tem lado, infelizmente.


Mas a generalização é possível, é claro.

MQL's OOP notes: Online Analytical Processing of trading hypercubes: part 1
MQL's OOP notes: Online Analytical Processing of trading hypercubes: part 1
  • 2017.04.29
  • www.mql5.com
Normally trader's activity involves analysis of a lot of data. Part of it, and probably most significant part, are numbers. Time series, economic indicators, trading reports should be studied, classified and analyzed. It's very likely that this is the trading was the first applied field for big data science. When numbers form a massive array...
 
Andrei Trukhanovich:

Tenho pensado e pensado, mas não consigo pensar em nada que possa ser filtrado de forma tão eficaz quanto o tempo.

Isso não deve fazer parte da estratégia e deve influenciar diretamente o comportamento do mercado.

Uma pilha? Outros feeds de dados?

E outra pergunta: há algum sentido em criar hipercubos? Acho que, individualmente, eles também devem ser bem filtrados.

Parâmetros, símbolos, dias da semana (parecem ser "tempo" também, mas não os vi sendo usados no BestInterval), duração da retenção (parece ser "tempo" também, mas não absoluto, e sim relativo), tamanhos de lote, número de negociações com um determinado resultado no histórico de fechamento etc.

O hipercubo permite avaliar os dados em diferentes combinações - ele fornece análise multiparamétrica. De acordo com essa lógica, pode-se perguntar por que otimizamos o Expert Advisor para todos os parâmetros de uma só vez, em vez de um de cada vez - seria menos dispendioso, e algumas pessoas precisam fazer isso quando o número de parâmetros é muito alto.

 
fxsaber:

Leia novamente sobre OLAP. Talvez eu tenha entendido errado, mas não há como encontrar o ideal.

Qual é o objetivo de apenas plotar essas seções transversais de dados?


Portanto, se eu entendi corretamente, a generalização não tem nada a ver com a biblioteca, infelizmente.


Mas a generalização é possível, é claro.

Bem, nesse sentido, você pode considerar o hipercubo como metadados intermediários, nos quais é fácil encontrar um ótimo no sentido da abordagem BestInterval - não? Basta "vincular" todas as entradas do hipercubo a algum valor a ser maximizado (como lucro) e filtrar o hipercubo (como o BestInterval filtra o tempo) para obter os melhores valores para outros parâmetros, não apenas para o tempo.

Imagine que o código do BestInterval permaneça o mesmo, mas, em vez de tempo, outros números tenham sido inseridos nele - o programa não se importa com isso - ele ainda encontrará o melhor "Intervalo".

 
Em geral, meu entendimento é que o BestInterval cria um hipercubo do perfil ao longo do tempo e, em seguida, encontra a melhor combinação de células no hipercubo. Meu hipercubo não tem uma segunda fase de busca de combinações. Mas ninguém proíbe a seleção de células uma a uma, tendo inventado vários algoritmos para isso.
 

Eu estava falando sobre a possibilidade de substituir o tempo. Não entendo por que a tabela deve ser chamada de hipercubo?

O BestInterval em si só maximiza o lucro pelo filtro. Não se trata do filtro, mas de encontrar lucro com rejeição consistente.

Quanto ao filtro na forma de horário de abertura, ele é muito conveniente para TS em ordens pendentes. Ele pode ser usado no Tester sem problemas.

Se considerarmos outros filtros, serão necessárias ordens de mercado, pois geralmente é impossível prever o valor do filtro com antecedência.

 
fxsaber:

Eu estava falando sobre a possibilidade de substituir o tempo. Não entendo por que uma tabela deve ser chamada de hipercubo?

O BestInterval em si só maximiza o lucro pelo filtro. Não se trata do filtro, mas de encontrar lucro com rejeição consistente.

Quanto ao filtro na forma de horário de abertura, ele é muito conveniente para TS em ordens pendentes. Ele pode ser usado no Tester sem nenhum problema.

Se considerarmos outros filtros, serão necessárias ordens de mercado, pois geralmente é impossível prever o valor do filtro com antecedência.

Quando há muitas dimensões "espaciais", obtemos um hipercubo, que pode ser chamado apenas de matriz multidimensional. Uma tabela é seu caso especial e mais simples. É claro que você pode inserir qualquer algoritmo de "obtenção de lucro com rejeição sucessiva".

Não entendo o fato de prever o filtro com antecedência. Há dados reais, nós os processamos, recebemos recomendações - onde estão as previsões aqui?

 
Stanislav Korotky:

Quando há muitas dimensões "espaciais", obtemos um hipercubo, mas podemos chamá-lo apenas de matriz multidimensional. Uma tabela é seu caso particular e mais simples.

No contexto da aplicação ao histórico de negociação, um hipercubo é uma tabela. Sua seção - criamos outra tabela percorrendo as colunas da tabela inicial.

É claro que qualquer algoritmo de "encontrar lucro com rejeição consecutiva" pode ser inserido.

A única coisa que resta é inseri-lo. Por exemplo, criar uma tabela é cerca de 5% da bíblia. O resto é "aparafusar" e aplicar.

Sobre prever o filtro com antecedência - não entendo. Há dados reais, nós os processamos, obtivemos recomendações - onde estão as previsões aqui?

A previsão está apenas no tópico de "aplicar". Se, por exemplo, for dito que uma posição não deve ser aberta quando RSI > 90, é impossível negociar essa condição por meio de ordens pendentes, porque ela é imprevisível.


E quando se trata de aplicar o filtro, não se pode prescindir do ambiente virtual. Portanto, "entrar no mercado" é uma tarefa um pouco diferente.

 
fxsaber:

No contexto da aplicação ao histórico de negociação, um hipercubo é uma tabela. Sua seção - criamos outra tabela percorrendo as colunas da tabela inicial.

A única coisa que resta é parafusá-la. Por exemplo, a criação de uma tabela representa cerca de 5% de um hipercubo. O restante é "aparafusar" e aplicar.

A previsão está certa quanto ao tópico "aplicar". Se, por exemplo, for dito que nenhuma posição deve ser aberta quando RSI > 90, então essa condição não pode ser negociada por meio de ordens pendentes porque é imprevisível.


Há uma certa confusão terminológica em todos os lugares - não acho que faça sentido se apegar a palavras - parece que queremos dizer a mesma coisa, mas "estudamos em escolas especiais diferentes" (para mim, uma tabela é sempre plana ;-), é formada pelo cruzamento de um hipercubo com algum hiperplano; você pode chamar a coisa toda de tabela multidimensional, mas como foi introduzido um termo mais conciso, eu prefiro esse). Sobre previsão - da mesma forma (após a explicação, o significado original ficou claro, mas a redação escolhida parece inadequada para mim, apenas imho).

Eu fiz OLAP - para análise multifatorial (os gráficos acima com uma divisão por períodos (e outros parâmetros), na minha opinião, também são interessantes), e não resolvi o problema da otimização automática com base no hipercubo diretamente. Idealmente, o cubo pode ser inserido no otimizador padrão e usado no modo de cálculo de matriz.

Em geral, nos desviamos um pouco: a ideia (como se vê, não apenas para mim, mas também para você) era que os melhores "intervalos" podem ser pesquisados não por uma dimensão (segmentos de tempo intrade), mas por várias outras diferentes.

 

Quanto à terminologia, entendemos espaços multidimensionais e planos 100% da mesma forma. Assim como uma tabela é uma matriz plana NxM.

Qualquer fatia de seu hipercubo é obtida de uma tabela plana - é disso que se trata.

 
Stanislav Korotky:

Idealmente, você pode inserir o cubo no otimizador padrão e usá-lo no modo de cálculos mat.

Isso está mais próximo do MO, mas não tem nada a ver com o BestInterval. Lá, para cada passagem do otimizador, o "modo matlab" é iniciado.

O valor está no fato de que para cada passagem de otimização. Ou seja, você pode descartar completamente (antes da otimização) os parâmetros responsáveis pelo intervalo de tempo (ou outro filtro) da negociação do TS original.

Devido a isso, o número de passagens diminui em ordens de grandeza em uma busca completa e a genética vagueia menos.