Comparação da média móvel (e quaisquer outros indicadores) e erro - página 3

 
Dina Paches:

Obrigado, Artyom, mas infelizmente acontece que ele também pode ter limites.

Espero não ter matado ninguém?
 
Artyom Trishkin:
Espero que você não tenha matado ninguém.

Nah. Não tem nada a ver com meu entorno).

 
Dina Paches:

Eu não tenho. Não tem nada a ver com meu entorno).

Bem, e quanto a um bug? Não? Pena... ;)
 
Artyom Trishkin:

Bem, em primeiro lugar, a diferença de dois valores normalizados eventualmente dará um valor não-normalizado. Você precisa verificar a diferença normalizada.

Em segundo lugar, se você quiser pegar crossovers dentro de uma barra, pegue valores de todos os carrapatos no zero e na primeira barra - você vai pegar muito ... ...você vai ter um verdadeiro deleite...

Se você testar pela abertura de um bar, o Consultor Especialista deve obviamente rastrear a abertura de um novo bar e, após o fato, verificar a existência de crossovers.

Primeiro de tudo, decida por si mesmo - você negocia na abertura do bar, ou a cada carrapato, depois escreva seu código. E, portanto, testá-lo da mesma forma.

Primeiro, escrevi no primeiro post que estou negociando apenas na abertura do bar. Há uma sutileza no comércio de carrapatos. Você pode obter um sinal, mas visualmente não haverá cruzamento no gráfico, pois ele é desenhado apenas a determinados preços (aberto, fechado, etc.). Não é desenhado por carrapatos. Neste caso, explique ao leigo que sim, não há crossover no gráfico, mas porque ele é específico para desenho de muwings na visualização apenas por valores muito espaçados (novamente, preços de abertura e fechamento, etc.). - aproximação, se você já ouviu tal palavra) em vez de por carrapatos. Em segundo lugar, a normalização da diferença é um absurdo. Você NUNCA saberá com antecedência qual sinal você precisa normalizar para evitar obter exatamente 0 (estupidamente, não cortar todos os dígitos significativos). Estou engajado em programação há bastante tempo e, em conexão com isso, entendo bastante bem a matemática computacional (em minha ocupação principal - modelagem de física, onde tenho que lutar constantemente com a precisão dos cálculos). Na verdade, em geral, a normalização é uma grande simplificação, se você não quiser mergulhar nos meandros da matemática de cálculo, erros, etc. Se você se considera um guru e não está disposto a desistir de ler todo o tópico cuidadosamente e depois chegar a conclusões, isso é uma coisa. Se este não for o caso e você também estiver negociando na abertura de um novo bar, então tente testar seu robô no bar de 29.07.2015 às 3:20 com os parâmetros de dois SMAs 5 e 34 aplicados ao preço de fechamento, em um período de um minuto. Exatamente a situação em que os cabos de aço dentro da mesma barra se cruzam duas vezes. E esta situação é irrealista quando o comércio não se baseia em carrapatos. Seu robô comercial irá receber ambos os sinais? E, mais importante ainda, a resposta à pergunta por que na mesma barra a diferença nos muwings (ou melhor, seus valores iniciais) em momentos diferentes não é igual, ainda não foi dada (apenas Alexey Lebedev tentou, obrigado por isso, mas é apenas um palpite...). E é impossível responder sem conhecer os princípios do funcionamento do iMA.

P.S. Só para conversar, acho que há tópicos especiais no fórum, se você não quiser entrar no cerne do problema.

 
Dina Paches:

Obrigado, Artyom, mas infelizmente acontece que ele também pode ter limites.

Obrigado pelo conselho, é claro, mas eu mesmo posso ler a Ajuda. E mais uma vez, a matemática computacional não está ligada a uma linguagem de programação particular. É precisamente com os erros de cálculo que você tem que lidar.
 
gammaray:
...

Continue reinventando o hiperbolóide. Funciona sempre para mim e conta corretamente. Ah, sim, desculpe, eu não sou um guru em sua matemática computacional, eu não invento porcaria - eu faço programas para MT4 e MT5. E você continua ficando esperto, já que não quer ouvir o que lhe é dito (e não se trata de um livro didático).

Repito - se você negocia na abertura de um novo bar - a pergunta é: por que você precisa de uma cruz dentro do bar (isso é importante para você? Em caso afirmativo, eu o aconselharei como fazê-lo, se não - esqueça-o).

Eu não vou usar meu robô nos seus dados de tempo - há muito tempo que desisti de comercializar os MAHs. E o fato de que os MAEs extraem a barra zero quando calculados usando todos os preços, exceto o preço aberto, é conhecido até mesmo por um estudante. Para que você precisa explicar a alguém que ela estava lá e agora ela se foi se você trocar na abertura de uma vela? Assim, na abertura e pegue os dados do MAA.

Onde você encontrou o problema? Aqui está sua cruz:


Você pode me dar um código que identifique corretamente este cruzamento?

 
Artyom Trishkin:

Continue reinventando o hiperbolóide. Funciona sempre para mim e conta corretamente. Oh, sim, desculpe, eu não sou um guru em sua matemática computacional, eu não invento porcaria - eu faço programas para MT4 e MT5. E você continua ficando esperto, já que não quer ouvir o que lhe é dito (e não se trata de um livro didático).

Repito - se você negocia na abertura de um novo bar - a pergunta é: por que você precisa de uma cruz dentro do bar (isso é importante para você? Em caso afirmativo, eu o aconselharei como fazê-lo, se não - esqueça-o).

Eu não vou usar meu robô em sua série cronológica - eu desisti de comercializar MAHs há muito tempo. E o fato de que os MAEs extraem a barra zero quando calculados usando todos os preços, exceto o preço aberto, é conhecido até mesmo por um estudante. Para que você precisa explicar a alguém que ela estava lá e agora ela se foi se você trocar na abertura de uma vela? Assim, na abertura e pegue os dados do MAA.

Onde você encontrou o problema? Aqui está seu crossover:


Você pode sugerir um código que identifique corretamente este cruzamento?

Eu não estou inventando o hiperdolóide. Se eu quisesse inventá-la, não teria perguntado nada. E não estou sendo esperto; estou dando contra-exemplos (incluindo sua normalização favorita). Em relação aos crossovers dentro de um bar. O TS mais primitivo do MA abre em seu cruzamento. Na próxima travessia na direção oposta, a primeira coisa é fechar o comércio aberto na velha travessia e abrir uma nova travessia oposta a ela. Se eu perder um crossover (e no caso de um crossover dentro da barra duas vezes, por assim dizer, será assim), então eu perco um sinal. E, portanto, eu não fecho o comércio atual. E meu robô tem dois ofícios ativos, embora sempre deva haver um ofício neste TS. É por isso que qualquer crossover é importante. Além disso, no que diz respeito ao preço na abertura de uma vela. Neste caso, a maior parte dos sinais cruzados não será percebida se considerarmos, por exemplo, os valores de MA a preços próximos. Um exemplo simples - tomamos o preço de fechamento do MA (não importa qual tomar para um novo bar como acabou de aparecer; todos os valores МА serão iguais). Imagine a situação quando os MA são cruzados em algum lugar no meio do bar recém-aparecido, mas ao preço aberto, eles não são cruzados. No próximo novo bar, esse cruzamento se perde completamente porque pegamos o preço de fechamento do bar anterior (e eles cruzaram em algum lugar entre o preço de abertura e fechamento). Os sinais só virão naquele caso raro que foi originalmente descrito por mim quando a MA atravessar precisamente ao preço de fechamento do bar. Isso significa que se o bar atual for aberto, já existe uma limitação que МА deve ser aplicada aos preços abertos.

Eu lidei com o exemplo que dei, introduzindo uma desigualdade não restrita. Tente testar a barra em meu posto anterior (onde há dois crossovers de MA em uma barra) e veja se seu robô detecta esses crossovers? Se só funciona quando uma barra aparece, isso é impossível. Somente se funcionar por carrapatos. E eu já descrevi as armadilhas lá

 

Nunca é necessário normalizar nada ao comparar dois números reais.

Se os números são realmente iguais, eles são armazenados na memória igualmente. Na verdade, é precisamente por causa dessa propriedade que as máquinas de computação podem existir.

Portanto, as comparações do formulário se(a<b) ou se(a==b) estão corretas em qualquer caso e nenhuma normalização é necessária.

Se a mente inquisitiva de um pesquisador encontrar contradição a esta regra, significa que ou sua máquina está fora de ordem, ou sua mente está fora de ordem. Um dos dois.

Ajuda e documentação, claro, devem ser lidas pelo menos às vezes (também foram escritas por humanóides como nós), mas é necessário ter seu próprio raciocínio sensato.

 
gammaray:

Eu não estou inventando o hiperdolóide. Se eu quisesse inventar, eu não estaria pedindo nada aqui. E não estou sendo esperto, mas dando contra-exemplos (inclusive para sua normalização favorita). Em relação aos crossovers dentro de um bar. O TS mais primitivo no comércio aberto de MA em seu cruzamento. Na próxima travessia na direção oposta, a primeira coisa a fazer é fechar o comércio aberto na velha travessia e abrir uma nova travessia oposta a ela. Se eu perder um crossover (e no caso de um crossover dentro da barra duas vezes, por assim dizer, será assim), então eu perco um sinal. E, portanto, eu não fecho o comércio atual. E meu robô tem dois ofícios ativos, embora sempre deva haver um ofício neste TS. É por isso que qualquer crossover é importante. Além disso, no que diz respeito ao preço na abertura de uma vela. Neste caso, a maior parte dos sinais cruzados não será percebida se considerarmos, por exemplo, os valores de MA a preços próximos. Um exemplo simples - tomamos o preço de fechamento do MA (não importa qual tomar para um novo bar como acabou de aparecer; todos os valores МА serão iguais). Imagine a situação quando os MA são cruzados em algum lugar no meio do bar recém-aparecido, mas ao preço aberto, eles não são cruzados. No próximo novo bar, esse cruzamento se perde completamente porque pegamos o preço de fechamento do bar anterior (e eles cruzaram em algum lugar entre o preço de abertura e fechamento). Os sinais só virão naquele caso raro que foi originalmente descrito por mim quando a MA atravessar precisamente ao preço de fechamento do bar. Isso significa que se o bar atual for aberto, já existe uma limitação que МА deve ser aplicada aos preços abertos.

Eu lidei com o exemplo que dei, introduzindo uma desigualdade não restrita. Tente testar a barra em meu posto anterior (onde há dois crossovers de MA em uma barra) e veja se seu robô detecta esses crossovers? Se só funciona quando uma barra aparece, isso é impossível. Somente se funcionar por carrapatos. E lá eu já descrevi as armadilhas

Procure por crossovers em cada carrapato. Qual é o problema?
 
Andrey Dik:

Nunca é necessário normalizar nada ao comparar dois números reais.

Se os números são realmente iguais, eles são armazenados na memória da mesma maneira. Na verdade, é precisamente esta propriedade que torna possível a existência de máquinas de computação.

Portanto, as comparações do formulário se(a<b) ou se(a==b) estão corretas em qualquer caso e nenhuma normalização é necessária.

Se a mente inquisitiva de um pesquisador encontrar contradição a esta regra, significa que ou sua máquina está fora de ordem, ou sua mente está fora de ordem. Um dos dois.

Ajuda e documentação certamente devem ser lidas pelo menos algumas vezes (elas também foram escritas pela humanidade como nós somos), mas é preciso ter considerações razoáveis.

Se não houvesse necessidade de normalização ao comparar números de tipo duplo usando um dos métodos propostos na Documentação, tais questões não surgiriam.

E eu não tenho que usar a normalização para obter a precisão necessária para acionar quaisquer condições em meus códigos. Sem mencionar o fato de que o uso da normalização de valores com diferentes casas decimais em comparação, pode simplesmente ser conveniente e necessário ao estabelecer condições de comparação, com base nas tarefas a serem resolvidas.

P./S.: Mas, em geral, eu o mencionei neste tópico e antes:

Sobre a possibilidade, com a ajuda da normalização, de ajustar/ajustar o nível necessário de precisão das comparações (e/ou valores de saída) e/ou erros toleráveis para algumas tarefas e propósitos, o que, por sua vez, entre outras coisas, permite que as condições do programa funcionem exatamente onde e como foi previsto ao prescrever condições específicas no código.