28 !!! pares de moedas, 1 especialista. Outro graal, mas este eu acho que ninguém jamais mostrou. + CONTA DEMO - página 12
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Eu testei "EURUSD na faixa 2007.07.10 a 2007.07.14, e separadamente na faixa 2007.07.09 a 2007.07.14" como você pediu, não há diferença.
Tive que me atualizar também para a última construção. :-) De fato, os problemas com o tempo desapareceram, isso é bom. No entanto, ao que parece, a história não termina aí.
Eu executei a EA no mesmo período - nenhuma diferença entre Alto e Baixo na M1 e no H1/D1. Nota - Eu fiz o teste com meus dados normais, ilesos. Sem sincronização, etc. Portanto, não pode ser a razão para a discrepância.
Então decidi experimentar em outro intervalo só para o caso (bem, meu mau feitio). E acontece que ainda não acabou.
Tente o intervalo de 2007.08.06 a 2007.08.11, que na verdade é a última semana. E a comparação não é com D1, mas com H1. Há 4 operadores no texto do consultor especializado que devem ser comentados, e 4 operadores que não devem ser comentados. Não é que a possibilidade de espionagem para o futuro tenha sido provada, não. Mas a falha está presente.
E como parecia que a ausência de problemas em um intervalo semanal não é uma garantia de que não há problemas, talvez devêssemos fazer o teste em um intervalo muito maior, por exemplo, um ano ou seis meses...
O fato de um novo dia é fixado tarde demais em seu código, na verdade, no segundo dia, enquanto a verificação da correção da simulação começa logo após o início do teste. Para excluir esta assimetria, introduzi um início variável booleano, com o qual fixei todos os valores do teste no início do teste.
Como você pode ver, funciona apenas uma vez e não afeta mais a EA. Mais adiante, tudo acontece de acordo com seu algoritmo. Se você não fizer a inicialização primária, então verifique as cordas
dará valor curLo=0, enquanto o curHi não é igual a zero. A explicação é simples: ambas as variáveis curLo e curHi são inicialmente iguais a zero, uma vez que não são inicializadas. No primeiro tick, a condição
é acionado e o CurHi já difere de zero, porque a atual Licitação é maior que zero. Ao mesmo tempo, a licitação atual não pode ser inferior a zero (o curLo não foi inicializado e portanto é zero), e portanto a condição
não pode mudar o curLo de forma alguma. Execute você mesmo minha versão do Expert Advisor e verifique se o arquivo de erro Fu.xls conterá apenas uma linha - a hora da última citação simulada no testador.
O código completo está anexado ao correio, é melhor baixá-lo, pois não cabe no correio.
Obrigado, é claro, a Rosh por sua revisão, mas não creio que tenha sido necessária.
Talvez você não tenha notado, mas no meu código em função init() há o seguinte bloco:
Como resultado da execução deste bloco, nenhuma das condições pode ser satisfeita no início da execução da EA.
Portanto, não importa onde na história a EA comece, será sempre um novo minuto, uma nova hora, ou um novo dia. E o primeiro par de operadores do bloco mencionado explica por que sua afirmação: "É explicado de forma simples: ambas as variáveis curLo e curHi são inicialmente iguais a zero, porque não são inicializadas. Como o Bid no primeiro tick é maior que zero, mas menor que 1000, ambas as declarações condicionais correspondentes são necessariamente acionadas e as variáveis curLo e curHi obtêm os mesmos valores iniciais que você lhes atribui no bloco if (start) {...}.
Sua versão funciona igualmente bem, mas não afeta de forma alguma o algoritmo. Portanto, esta alteração não terá nenhum efeito sobre a presença ou ausência de erros.
Anote novamente meu post anterior. O problema não ocorre na transição para um novo dia e não no início da EA, mas quando se testa o t/f H1. O problema ocorre apenas uma vez neste intervalo, em 10.08.2007 e dura 3 minutos, das 17:00 às 17:03. Durante este tempo são gerados 28 ticks com divergência de Altos valores para M1 e H1. Estou lhes mostrando a imagem apropriada.
Se não for difícil para você, por favor, execute o EA (o código que você corrigiu) nesse intervalo que eu pedi. Basta corrigir o uso de comentários. Agora em seu código se compara com o t/f D1 e não há erros neste modo. Preciso dele para comparar com H1.
Mudei um pouco o código, para manter a correção em casos especialmente patológicos (tenho apenas uma vela na M1 para 2007.01.01, a mesma para H1 e D1). Fiz o teste de 2007.01.01 a 2007.08.11. Recebi 4 casos errôneos para D1 e 2 para H1. Todos os erros acontecem na transição para uma nova vela em uma TF superior. Aqueles que querem ver com os seus próprios olhos.
Isso não nos dá a possibilidade de olhar para o futuro. Pelo menos na variante de espreitar, eu verifiquei.
Obrigado, é claro, a Rosh por sua revisão, mas não creio que tenha sido necessária.
Talvez você não tenha notado, mas em meu código na função init() há o seguinte bloco:
Se não for difícil para você, execute o EA (o código que você corrigiu) no intervalo que eu pedi. Basta corrigir o uso de comentários. Agora em seu código se compara com o t/f D1 e não há erros neste modo. Preciso dele para comparar com H1.
Se você mesmo notou, ao testar meu código em H1, os valores não serão inicializados:
Ou seja, será exatamente como eu escrevi. Se é difícil para você estabelecer o código para que eu não adivinhe do que se trata, então você mesmo deve resolvê-lo, eu tenho outras coisas a fazer do que praticar telepatia.
Realmente, eu não entendo porque você está ficando irritado.
Como escrevi na última página quando publiquei a EA com os resultados, ela se destina a testes exclusivamente na M1. Ao mesmo tempo, compara o Alto e o Baixo que gera por si só, com o Alto e o Baixo do t/f mais alto, que poderia ser H1 ou D1, dependendo disso, como os comentários são organizados no texto do procedimento de início().
Francamente falando, pensei que o retorno(-1); no procedimento init() interromperá o trabalho da EA e, portanto, só será possível iniciá-lo na M1. Entretanto, agora, graças ao seu posto, estou convencido de que ele pode ser executado em qualquer TF: A idéia por trás desta EA é tentar espionar o futuro de um t/f inferior (especificamente M1) em um t/f superior (especificamente H1 ou D1). Portanto, ela só deve ser executada na M1. O que os testes no H1 podem mostrar que eu nem sei.
Eu postei o código EA pouco antes do seu post. Este código pode ser usado diretamente para comparar os dados M1 com os dados H1. No texto da EA há indicações claras das mudanças (elementares) que precisam ser feitas para que ela compare os dados M1 com os dados D1. Portanto, aqui também não tenho certeza sobre o que você está infeliz.
Uma última coisa. Seu código é tão adequado para um teste como o meu. É apenas uma questão de conseguir fazer isso.
Se você tem outras coisas a fazer, eu não o incomodarei. Não estava me dirigindo a você como um pedido pessoal, mas como um representante da MQ em conexão com a possível descoberta de algumas falhas no testador.
Realmente, eu não entendo porque você está ficando irritado.
Como escrevi na última página quando publiquei a EA com os resultados, ela se destina a testes exclusivamente na M1. Ao mesmo tempo, compara o Alto e o Baixo que gera por si só, com o Alto e o Baixo do t/f mais alto, que poderia ser H1 ou D1, dependendo disso, como os comentários são organizados no texto do procedimento de início().
Francamente falando, pensei que isso interromperia o trabalho do Consultor Especialista e que só seria possível iniciar o trabalho na M1. Entretanto, agora, graças ao seu posto, estou convencido de que ele pode ser executado em qualquer TF: A idéia por trás desta EA é tentar espionar o futuro de um t/f inferior (especificamente M1) para um t/f superior (especificamente H1 ou D1). Portanto, ela só deve ser executada na M1. O que os testes no H1 podem mostrar que eu nem sei.
Eu postei o código EA pouco antes do seu post. Este código pode ser usado diretamente para comparar os dados M1 com os dados H1. No texto da EA há indicações claras das mudanças (elementares) que precisam ser feitas para que ela compare os dados M1 com os dados D1. Portanto, aqui também não tenho certeza sobre o que você está infeliz.
Uma última coisa. Seu código é tão adequado para um teste como o meu. É apenas uma questão de conseguir fazer isso.
Se você tem outras coisas a fazer, eu não o incomodarei. Eu não estava me dirigindo a você como um pedido pessoal, mas como representante da MQ em relação à possível descoberta de algumas falhas no testador.
2007.08.14 16:29:03 2007.08.10 23:59 futuro-2h EURUSD,Diário: 2007.08.10 23:59:59, curHi=1.3693, HiH1=1.3702, curLo=1.3693, LoH1=1.3689
2007.08.14 16:29:02 2007.08.03 23:59 EURUSD,Diário: 2007.08.03 23:59:59, curHi=1.3773, HiH1=1.3787, curLo=1.3773, LoH1=1.3772
2007.08.14 16:29:02 2007.07.27 23:59 EURUSD,Diário: 2007.07.27 23:59:59, curHi=1.3635, HiH1=1.3641, curLo=1.3635, LoH1=1.3627
2007.08.14 16:29:02 2007.07.20 23:59:59 EURUSD,Diário: 2007.07.20 23:59:59, curHi=1.3826, HiH1=1.3827, curLo=1.3826, LoH1=1.3821
2007.08.14 16:29:01 2007.07.16 23:59:59 EURUSD,Diário: 2007.07.16 23:59:59, curHi=1.3772, HiH1=1.3773, curLo=1.3772, LoH1=1.3772
2007.08.14 16:29:01 2007.07.13 23:59:59 EURUSD,Diário: 2007.07.13 23:59:59, curHi=1.3782, HiH1=1.3787, curLo=1.3782, LoH1=1.3780
2007.08.14 16:29:01 2007.07.06 23:59:59 EURUSD,Diário: 2007.07.06 23:59:59, curHi=1.3625, HiH1=1.3630, curLo=1.3625, LoH1=1.3623
2007.08.14 16:29:01 2007.07.02 00:00 EURUSD,Daily: O período de teste não é apropriado
2007.08.14 16:29:01 futuro - 2h início dos testes
2007.08.14 16:28:34 2007.08.10 22:59 futuro-2h EURUSD,H1: Trabalho finalizado
2007.08.14 16:28:32 2007.07.02 00:00 futuro-2h EURUSD,H1: O período de testes não é apropriado
2007.08.14 16:28:32 futuro - 2h início dos testes
2007.08.14 16:28:22 2007.08.10 22:59 futuro-2h EURUSD,M1: Trabalho Concluído
2007.08.14 16:28:19 2007.07.02 00:00 futuro-2h EURUSD,M1: Período de teste de 1 minuto
2007.08.14 16:28:19 futuro-2h início dos testes
2007.08.14 16:24:28 2007.08.10 22:59 futuro-2h EURUSD,M1: Trabalho Concluído
2007.08.14 16:24:28 2007.08.06 00 00:00 futuro-2h EURUSD,M1: Período de teste de 1 minuto
para
e o testou novamente por três períodos do mesmo intervalo de tempo de 2007.07.01 a 2007.08.11:
2007.08.14 16:32:03 2007.08.10 23:59 futuro-2h EURUSD,Daily: Work Finished
2007.08.14 16:32:03 2007.07.27 23:59 futuro-2h EURUSD,Daily: 2007.07.27 23:59:59, curHi=1.3753, HiH1=1.3753, curLo=1.3627, LoH1=1.3626
2007.08.14 16:32:01 2007.07.02 00:00 futuro-2h EURUSD,Daily: O período de testes não é apropriado
2007.08.14 16:32:01 futuro-2h iniciado para testes
2007.08.14 16:31:56 2007.08.10 22:59 futuro-2h EURUSD,H1: Trabalho concluído
2007.08.14 16:31:54 2007.07.02 00 00:00 futuro-2h EURUSD,H1: Período de testes não cumpre com a tarefa
2007.08.14 16:31:54 futuro-2h iniciado para testes
2007.2007.08.14 16:31:48 2007.08.10 22:59 futuro-2h EURUSD,M1: Trabalho concluído
2007.08.14 16:31:46 2007.07.02 00:00 futuro-2h EURUSD,M1: Período de teste 1 minuto
2007.08.14 16:31:46 futuro-2h iniciado para testes
Estou vendo. Você fez tudo certo. E este EA tem que ser executado somente na M1. Acho que o escrevi claramente. O Expert Advisor é executado no M1 e testará a coincidência de dados altos e baixos do período M1 com o período H1 ou D1. Se houvesse uma olhada no futuro, então os dados t/f sênior o deixariam saber Alto e Baixo antes que esses Alto e Baixo fossem alcançados no M1. É isso aí.
O resultado do seu teste D1 corresponde ao meu, neste intervalo para D1 eu também não recebi erros. Mas o teste H1 não confirma o que recebi e afixei um pouco mais cedo. Não há necessidade de analisar o código. Como você vê, confirma o funcionamento normal do testador.
Se você acha que é suficiente, pode parar aqui. Se você quiser ter certeza de que não é por acidente, não porque o período é muito pequeno, então faça os mesmos dois testes em um período mais longo. Mais de um ano, por exemplo, ou desde o início de 2007.
PS
Só por precaução, vou repetir. Teste somente no período M1. Somente em todos os modos de carrapatos.
Obrigado por sua participação.
Estes testes realmente ajudam a melhorar o testador MetaTrader 4. Especialmente com o código fonte.