Comparação de dois gráficos de cotações com distorções não lineares no eixo X - página 7

 
hrenfx:

Como este problema é resolvido via DTW (exemplo):

  1. Precisamos encontrar situações similares na história como as 100 barras extremas.
  2. O histórico disponível é de 1.000.000 de barras.
  3. Primeiro, pegamos 1.000.000 de seqüências de 50 barras e as comparamos com o padrão através da DTW.
  4. Depois pegamos mais 1.000.000 de seqüências de 55 barras e as comparamos através da DTW com o modelo.
  5. Desta vez, são 60 barras.
  6. .....
  7. A 100 bares.
  8. .....
  9. 300 barras. E é aqui que podemos parar.

No total, fizemos 50.000.000 comparações usando o algoritmo DTW que tem complexidade de O(N^2). Foram realizadas cerca de 5 * 10 ^11 (500 bilhões) operações computacionais elementares.

Agora chegou uma nova barra - fizemos novamente 500 bilhões de cálculos.

Decidimos fazer uma história, a partir de 200.000 últimos elementos. Grosso modo, são necessários 200.000 vezes 500 bilhões de cálculos cada um para fazer uma corrida. São 10 ^17 cálculos no total.

Mesmo que haja uma otimização complicada, ela não produzirá um ganho de mais de duas ordens de magnitude. Ou seja, você terá que fazer no máximo 10 ^15 cálculos.


Primeiro entenda o princípio do algoritmo antes de dizer tais disparates. A complexidade do algoritmo é O(n*m), onde n e m são os comprimentos dos dois vetores de entrada.

p.s. Não se deve fazer "a 50 bares, a 55 bares", porque uma das três possíveis distorções está faltando uma observação.

p.p.s. DTW com restrições de forma do caminho também existe, seu "e nós podemos parar lá" também é completamente desnecessário.

p.p.p.s. Seu método "ziguezague + cálculo de correlação" mostrará absurdo, uma vez que o ziguezague será baseado nos máximos de uma variável aleatória ruidosa, o que lhe diz pouco.

p.p.p.s. Para a busca em um grande fluxo de áudio, são utilizados métodos completamente diferentes.

 
IgorM:
O artigo sobre DTW em Habrahabr http://habrahabr.ru/blogs/algorithm/135087/ parece estar muito bem escrito, mas eu não consigo entender como usar DTW para OHLC, alguém poderia me explicar isso?


Para OHLC você precisa pensar em uma função para o espaçamento de barras. Por exemplo:

1. duas barras são dadas

2. Aproximar cada uma das barras por um polinômio de terceiro grau (para barra C>O por pontos): {(t[0];Aberto), (t[1];Baixo), (t[2];Alto), (t[3];Fechado)}, para barra O>C por pontos {(t[0];Aberto), (t[1];Alto), (t[2];Baixo), (t[3];Fechado)}, onde t[i]=i/3)

3. considerar a distância como raiz quadrada do integral do quadrado da diferença de dois polinômios no intervalo 0..1.

(não inventado por mim, o método parece ser bem conhecido e disponível para todas as pessoas interessadas).

 
Integer:

Você deve primeiro ler a tarefa do autor do fio e suas respostas.

Concordo, a tarefa foi formulada para encontrar um critério de similaridade. Eu dei mais um passo lógico que o autor aplicará, com base em seu trabalho anterior com o critério de similaridade via CQ da Spearman. Talvez erroneamente, o autor esteja pensando em aplicar um novo critério de semelhança para ele a outro.
 
hrenfx:

Decidiu correr sobre a história, começando com o elemento mais externo, 200.000. Grosso modo, a corrida requer 200.000 vezes 500 bilhões de cálculos cada. São 10 ^17 cálculos no total.

Mesmo que haja uma otimização complicada, ela não produzirá um ganho de mais de duas ordens de magnitude. Isto é, terá que realizar no máximo 10 ^15 cálculos.

A tarefa é muito mais modesta - comparar o que já aconteceu hoje com o início do dia anterior (os tamanhos dos padrões são diferentes!) e avaliar a similaridade. Se estiver presente - para traçar uma trajetória de curso aproximada para o resto do dia de hoje. Se tomarmos H1, são 24 barras. Em qualquer caso, não mais do que 24 comparações. Na M15 são 96 comparações no máximo. De acordo com minhas observações, a semelhança é no prazo máximo de 2 dias, e então o mercado "esquece" tudo. A otimização ao longo de meses e anos é autodestrutiva.
 
anonymous:


Sinta primeiro o princípio do algoritmo, antes de inventar tais disparates. A complexidade do algoritmo é O(n*m), onde n e m são os comprimentos de dois vetores de entrada.

Por que tanta hostilidade e agressão? Leia as estimativas da complexidade do algoritmo. O(N^2) não contradiz o que você escreveu. Algoritmos com tal complexidade são adequados para tarefas com pequenas quantidades de dados.

p.s. Não é necessário fazer "a 50 bares, a 55 bares", pois uma das três possíveis distorções está faltando uma observação.

p.p.s. DTW com restrições de forma do caminho também existe, seu "e você pode parar lá" também é completamente desnecessário.

Observe a palavra "rude" mencionada várias vezes no exemplo acima. Se todas as nuances forem levadas em conta, o posto atingirá um tamanho imenso e sem precedentes. Você pode mencionar o algoritmo FastDTW-algoritmo e outras otimizações algorítmicas adicionais. É melhor brilhar seu cérebro e seu conhecimento na prática.

p.p.p.s. Seu método "ziguezague + cálculo de correlação" mostrará absurdo, uma vez que o ziguezague será baseado nos máximos de uma variável aleatória ruidosa, o que lhe diz pouco.

Em seu idioma - "bobagem". Você poderia ilustrar isto construtivamente com um exemplo?

p.p.p.s. Para a busca em um grande fluxo de áudio, são utilizados métodos completamente diferentes.

Isso é interessante.
 
wmlab:
A tarefa é muito mais modesta.

Então eu exagerei. Provavelmente não há nada mais simples do que DTW para uma tarefa tão simples. Mas a comparação de sequências de dados tão pequenas é questionável.

Você pode dar um exemplo da vida quando sua hipótese parece ter funcionado?

 
hrenfx:

Então eu exagerei. Provavelmente não há nada mais simples do que DTW para uma tarefa tão simples. Mas a comparação de sequências de dados tão pequenas é questionável.

Você pode dar um exemplo da vida, quando sua hipótese parece ter funcionado?


Vem da vida real - notei que no EURUSD eu mudo mentalmente o gráfico de hoje já obtido para o de ontem. Se pelo menos a primeira metade do dia coincidir visualmente, podemos fazer uma previsão (se não for sexta-feira e se não houver notícias). "Visualmente" é uma alternância de altos e baixos, os níveis não coincidem. Bem, é como olhar para uma ilustração da evolução - as imagens adjacentes são semelhantes, as distantes não são. Bem, se as fotos de hoje e de ontem não coincidem, então este método não funciona.
 
É possível citar gráficos de sites visualmente combinados?
 
wmlab:
A tarefa é muito mais modesta - comparar o que já aconteceu hoje com o início do dia anterior (os tamanhos dos padrões são diferentes!) e avaliar a similaridade. Se assim for, para traçar uma trajetória aproximada do curso para o resto do dia de hoje. Se tomarmos H1, são 24 barras. Em qualquer caso, não mais do que 24 comparações. Na M15 são 96 comparações no máximo. De acordo com minhas observações, a semelhança é no prazo máximo de 2 dias, e então o mercado "esquece" tudo. A otimização no intervalo de meses e anos é uma auto-enganação.

No entanto, meu indicador e consultor especializado em H4, por exemplo, operam com uma visão a posteriori de 900-1000 barras e claramente captam os eventos das últimas barras https://forum.mql4.com/ru/46596/page124, isso significa que a memória do mercado não é tão fugaz?
 

Consegui algo... Só não percebi. Experimentando uma sensação de êxtase místico:)

Arquivos anexados:
idtw2.mq4  8 kb
Razão: