Teste de sistemas de previsão em tempo real - página 53

 
grasn писал(а) >>

para Yurixx

Eu sugiro jogar bons velhos dedais, você pode usar qualquer estratégia e procurar em qualquer lugar :o) Previsão em EURUSD M15 para 300 amostras (de segunda a quarta-feira inclusive):

Opção 1:

Entropia do processo: 13.84

Variante 2:

Entropia do processo: 13.01

Opção 3:

Entropia do processo: 14.36

Qual dedal você está pegando? :о)

Estou inclinado para a opção 1, pois esta situação vem evoluindo há muito tempo e está apenas esperando para ser continuada

 
forte928 >> :

Estou inclinado para a opção 1, pois esta situação vem se desenvolvendo há muito tempo e está apenas esperando para ser continuada

Isto é, o preço agora está passando por algum tipo de zona de inversão? Só por curiosidade, se não for muito incômodo, você poderia elaborar?

 
grasn писал(а) >>

Então o preço agora está passando por algum tipo de zona pivô? Só por curiosidade, se não for muito incômodo, por favor, elabore.

No momento, há o primeiro fator com base no qual podemos concluir sobre o flat lateral no par EUR-dólar -

O par atingiu o nível da linha OP de consolidação em 1,4850. Exatamente as mesmas flutuações foram observadas em 1,3437 e 1,3937 com um rollback posterior, o que corresponde aos níveis 0,382, 0,618 e 1,00.

o segundo valor é o mesmo gráfico, mas com níveis de crescimento calculados em relação aos baixos - 1,4162 e atuais 1,4951 e se você tomar com base neste gráfico de preços níveis 1,4951 e 1,4851 você pode ver que o preço está apenas no ponto de equilíbrio no nível médio de flutuações destes indicadores nos últimos dois dias... Além disso, o indicador de saturação tem mostrado há muito tempo o nível de saturação em que a inversão deve ocorrer

mas há algumas coisas que não permitem que isso aconteça :

1) o gráfico diário mostra um movimento de crescimento negativo (indicador inferior)

2) O gráfico diário atingiu o nível de consolidação de 0,382 em 1,4877 no primeiro indicador

3) O gráfico diário atingiu o nível de consolidação do COP em 1,4892 no segundo indicador

4) Há uma oposição ativa ao movimento ascendente no gráfico H4

5) Presença de dois níveis de consolidação em relação ao mínimo do final de setembro OP e 0,236 (1,4931 e 1,4933), o que é uma forte indicação da presença de uma correção prolongada

Para ser continuado...

 

Grasn, posso lhe fazer uma pergunta? Você já tentou procurar por pontos de gorjeta em uma série cronológica?

atualização: estou perguntando porque estou cavando nesta direção (e algo está olhando para cima). Aqui está um exemplo de como é minha busca por pontos críticos:


Pontos críticos

Como você pode ver, antes da série mudar seu comportamento, o caráter das oscilações do indicador muda acentuadamente (há estouros de grande amplitude, para ser mais exato, os máximos/minimos começam a se ajustar perfeitamente ao gráfico da função f(x)=a^x). Os picos ocorrem um pouco antes (geralmente :)) do que o comportamento da série muda. No entanto, até agora não tenho tudo certo. Tenho que trabalhar na beira da dupla precisão (os números são muito pequenos) + faltam-me previsões direcionais.

 
grasn писал(а) >>

Suponha que haja uma construção desse tipo:

Como eu entendi, ele aumentará dinamicamente a matriz memRow[] quando alguma condição desencadear. Isto é, não sei de antemão o comprimento da matriz. Eu acertei?

1. No MKL4 você não pode operar com array, cujo tamanho ainda não foi definido. Se você não especificou o tamanho ao declarar a matriz, você terá que fazê-lo no init(). Além disso, enquanto trabalha, você pode mudar este tamanho conforme necessário.

2. 2. o conselho de Lea é bastante prático, vale a pena ouvi-lo. Em geral, para que os conselhos sejam adequados, é melhor explicar claramente para que o conjunto é utilizado e por que você precisa mudar seu tamanho. É bem possível que você fique satisfeito em apenas alocar espaço e ter uma variável com o índice do último elemento. Então, se você sabe o número de elementos de que precisa ou não, não será realmente importante.

.

Eu não toco dedais. Mas eu prefiro a variante 2. Ou eu só quero que a uR cresça ? :-)

Mas as variantes 1 e 3 também são boas, embora difiram muito pouco uma da outra.

 
Yurixx >> :

1. No MKL4 você não pode operar com array, cujo tamanho não está definido. Se você não especificar o tamanho da matriz, você terá que fazê-lo no init().

1 Não é de todo obrigatório.

A declaração de uma matriz sem definir seu tamanho divide o processo de preparação da matriz em três partes:

1 declaração como tal - por este procedimento, o programador diz ao compilador se a matriz é global ou local.

2 ajustando o tamanho através do ArrayResize() - após este procedimento, o array está realmente pronto para trabalhar.

3 Inicialização - se não for especificada, a matriz permanece como estava (e armazena valores de partidas passadas), quando a matriz é criada, ela é automaticamente inicializada a 0.

 
grasn >> :

Obrigado, vou tentar, mas não consigo avaliar qual seria o ideal. Por outro lado, para uma pequena matriz também não conhecerei sua dimensionalidade e, além disso, nesta implementação precisarei duplicar a matriz, primeiro a pequena e depois a grande, na qual os valores calculados são acumulados. Mas vou ter que experimentar, obrigado pela dica.

Em minha experiência, recomendo definir e usar arrays diretamente onde eles precisam usar, tais arrays são em sua maioria locais, usam a memória dinamicamente, o que é melhor em comparação com arrays estáticos, que querem ou não o vento os move para o arquivo swap, e portanto seu trabalho torna-se muitas vezes mais lento do que da RAM, especialmente se o array for pequeno, não faz sentido estaticamente reservar muito espaço para eles. O compilador MQL-4 é projetado para que você não sinta a diferença entre declarar um array com um tamanho explícito e um retardado.

 
Urain писал(а) >>

Em minha experiência, recomendo declarar e usar arrays diretamente onde eles precisam usar tais arrays para a maioria das vezes se tornam locais aqueles que usam dinamicamente a memória que é melhor em comparação com arrays estáticos que o Windows coloca ou não em arquivo swap e, portanto, seu trabalho torna-se muitas vezes mais lento do que da RAM, mais se o array pequeno então não há sentido estaticamente para que eles reservem muito espaço.

Eu não entendo... Por que uma matriz local não pode ser preestabelecida em um arquivo swap? Na verdade, é ali que se antecipa quando há falta de memória; tenho certeza de que tanto as matrizes locais quanto as globais serão antecipadas exatamente da mesma forma. Qual é a diferença?

 
lea >> :

Algo que eu não entendo... Por que uma matriz local não pode ser preestabelecida em um arquivo swap? Geralmente é empurrado para lá quando há falta de memória; tenho certeza de que tanto local quanto global serão empurrados exatamente da mesma forma. Qual é a diferença?

A matriz estática tem todas as chances de ser criada a cada chamada do programa e de ser espremida por matrizes recém-criadas em troca. Embora se houver RAM mais do que suficiente, isto pode não acontecer.

 
Urain >> :

1 Não é necessário.

A declaração de uma matriz sem definir seu tamanho divide o processo de preparação da matriz em três partes:

1 declaração como tal - por este procedimento, o programador diz ao compilador se a matriz é global ou local.

2 ajustando o tamanho através do ArrayResize() - após este procedimento, o array está realmente pronto para trabalhar.

3 Inicialização - se não for especificada, a matriz permanece como estava (e armazena os valores das partidas passadas), quando você cria uma matriz, ela se inicializará automaticamente a 0.

Se você definir o tamanho em init() com ArrayResize(), esta matriz não terá tamanho inicial(), você deve especificar o tamanho em função onde a matriz será usada, e o mesmo vale para o uso da matriz nas funções do usuário. Se a matriz for passada por parâmetro, seu tamanho não deve ser especificado na função definida pelo usuário, mas em start() (ou init() se a função for chamada pelo iniciado), então na função chamada. A exceção são as matrizes de indicadores, cujo tamanho é atribuído igual a Barras quando o status do indicador é atribuído ao nome da matriz no SetIndexBuffer(), e ele muda de acordo com a mudança de Barras.

Portanto, querida, suas explicações não só são inúteis, mas também prejudiciais, porque levam o tempo das pessoas para descobrir a verdade.

Urain, você está enganando as pessoas. As matrizes MQL, incluindo as matrizes locais, têm persistência - seu tamanho e conteúdo são preservados entre chamadas de função e carrapatos. Por favor, leia a Ajuda. As matrizes globais se comportam da mesma maneira, a única diferença é que elas têm um escopo global. Uma matriz distribuída em uma função init é legível no início e em outros lugares. Eu recomendaria abrir um novo tópico, se alguém tiver dúvidas sobre alguns aspectos da programação MQL. Eu gostaria de ver aqui conversas mais substanciais sobre previsões. ;-)

Se você tiver alguma dúvida, favor filtrar as informações deste fórum ;-). Se você descrever o problema com mais detalhes (você pode fazer isso pessoalmente), nós (I) descobriremos como implementá-lo melhor.

Razão: