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
tenha cuidado com tal afirmação. há sempre uma razão lógica para dormir(). em Tester e até mesmo em indicadores.
Dê uma olhada no que o TimeSeconds() lhe dá, depois pense no que o TimeCurrent() lhe dá. . de qual você precisa e por quê ?
Simon,
Retorna a quantidade de segundos transcorridos desde o início do minuto para o tempo especificado.
"De qual você precisa e por quê?" - Simon
Eu usaria ambos de e'm em concerto, porque eles andam de mãos dadas. - Nathan
TimeSeconds(data/hora) requer uma variável colocada dentro de seus aparelhos. O TimeCurrent() é então colocado dentro destas chaves, o que me apresenta uma solução viável. Eu fiz este b4, mas não entendi porque os valores de tempo retornados pareciam saltar e pausar (devido à falta de um tick/ticks ativo).
O que você diz a isto?
Obrigado.
William,
Obrigado por expor sobre este assunto.
Minha interpretação de "2." é, quando um tick é criado, a função de retorno é chamada. Em seguida, a função Start() é chamada diretamente após chamar a função return(0), que aciona a execução do programa mais uma vez. Esta interpretação desta parte do 2. está correta?
"Se você computar por 5 minutos", como posso ter certeza que a EA irá computar por 5 minutos (mesmo que a EA computar por 5 minutos, não acredito que isto garanta que um tique será criado. A probabilidade de criação de um tick é aumentada)?
Desculpe, estou tendo dificuldade para ler isto:
"Se você computar por 5 minutos e retornar o volume (contagem do tick) na próxima chamada será +1. Em um gráfico ao vivo, se você computar por 5 minutos, então você perderá 5 minutos de carrapatos e na M1 várias novas barras terão se formado".
Muito obrigado por sua resposta.
Eu não disse que não havia razão lógica para usar o sono(), existem muitos, eu disse que não havia razão para esperar que o sono() funcionasse no Testador de Estratégia. Funciona em um Indicador rodando em um gráfico do Testador de Estratégia, eu não sei, talvez funcione . . funciona em uma EA rodando no Strategy Tester, tanto quanto sei, não funciona.
Simon,
"Um EA em execução no Testador de Estratégia pode ser feito para fazer uma pausa? sim, pode".
Você poderia, por favor, expressar suas idéias a respeito deste método que você usaria para "pausar" um EA no testador?
Obrigado
William,
Então, um novo tick chama a função start() em um EA, sim?
Minha pergunta para você é esta: "Você conhece alguma outra forma de chamar a função start() além da função de um novo tick? Possivelmente uma ação repetitiva consistente para substituir uma chamada para Iniciar()"?
(Estou pensando, existe alguma maneira de rastrear segundos consistentes que não dependam de carrapatos)
"...O próximo tick é criado quando o faz".
Creio que o que você quis escrever foi: "Na criação de um novo tick, Start() é então executado" ;)
Então, você diz que um EA não pode ser pausado ou dormir no testador, sim?
Vou revisar o link que você forneceu, mas, nesse meio tempo, você pode explicar sobre este método de "pressionar um botão de pausa para pausar o testador" após um EA sendo testado retornar desde o início?
Quando executado no testador, este método simularia o desempenho do EA sendo pausado por um segmento de tempo decidido em "tempo real" em uma conta real?
Entendo que o testador tem limitações e as "soluções de trabalho" devem ser usadas para a simulação do desempenho em "tempo real".
Muita gratidão William.
Além disso, você se importa se eu simplesmente chamá-lo Will? Isso me pouparia um segundo de tempo a cada mensagem. Seu telefonema.
Eu gosto de uma característica que sua EA possui e que é: "Eu queria fechar todas as ordens antes do final da semana (o mercado fecha na sexta-feira,) para evitar perdas caso a lacuna do mercado acabe no final da semana, passando o SL".
(batendo palmas com alegria.) Hahaha! ;) Ao acrescentar esta característica ao seu EA, você corta perdas desnecessárias, mas isto é diferente do que eu tento fazer atualmente. Atualmente, estou tentando rastrear segundos de tempo consistentemente sem a necessidade de carrapatos para atualizar os segundos. Desejo um meio diferente para atualizar a função Start(), Entendido?
Obrigado.
Atualmente estou tentando rastrear segundos de tempo de forma consistente sem a necessidade de carrapatos para atualizar os segundos. Desejo um meio diferente para atualizar a função Start(), Entendido?
Suspeito que o que você está tentando fazer é uma solução falha para seu problema devido à falta de compreensão. Por que você precisa saber o segundo de um segundo para o outro se o preço não mudou por 30 segundos ? quando o preço muda você recebe um tique.
Um ponto de esclarecimento do que oWHRoeder disse, todos os carrapatos são criados antes do Tester de Estratégia começar a chamá-los/executá-los, eles são salvos para um .fxt no testador/histórico, o ST chama um primeiro tique e este, por sua vez, faz com que o início() seja executado, o próximo tique não é chamado/utilizado até que o início() tenha terminado a execução, é muito importante entender isto. Somente quando start() tiver terminado, o próximo tick será usado para que a EA possa chamar start() novamente. Quando o ST é executado em velocidade máxima, é a velocidade em que o start() funciona que governa a velocidade do ST, portanto, uma função start() muito simples permitirá que o ST funcione muito rapidamente, uma função start() complexa fará com que o ST funcione mais lentamente.
Em uma situação de Live/Demo, se a função start() for muito complexa e demorar muito tempo para funcionar, talvez alguns décimos de segundo, é possível que o próximo tick possa chegar antes do start() estar concluído, nesta situação o tick será perdido e não fará com que o start() seja chamado de . . . . este NÃO PODE acontecer com o ST.
Simon,
"Um EA em execução no Testador de Estratégia pode ser feito para fazer uma pausa? sim, pode".
Você poderia, por favor, expressar suas idéias a respeito deste método que você usaria para "pausar" um EA no testador?
"Qual você precisa e por quê?" - Simon
Eu usaria ambos de e'm em concerto, porque eles andam de mãos dadas. - Nathan
TimeSeconds(data/hora) requer uma variável colocada dentro de seus aparelhos. O TimeCurrent() é então colocado dentro destas chaves, o que me apresenta uma solução viável. Eu fiz este b4, mas não entendi porque os valores de tempo devolvidos pareciam saltar e pausar (devido à falta de um tick/ticks ativo).
Suspeito que o que você está tentando fazer é uma solução falha para seu problema devido à falta de compreensão. Por que você precisa saber o segundo de um segundo para o outro se o preço não mudou por 30 segundos ? quando o preço muda você recebe um tique.
Um ponto de esclarecimento do que oWHRoeder disse, todos os carrapatos são criados antes do Tester de Estratégia começar a chamá-los/executá-los, eles são salvos para um .fxt no testador/histórico, o ST chama um primeiro tick e este, por sua vez, faz com que o start() seja executado, o próximo tick não é chamado/usado até que o start() tenha terminado a execução, é muito importante entender isto. Somente quando start() tiver terminado, o próximo tick será usado para que a EA possa chamar start() novamente. Quando o ST é executado em velocidade máxima, é a velocidade em que o start() funciona que governa a velocidade do ST, portanto, uma função start() muito simples permitirá que o ST funcione muito rapidamente, uma função start() complexa fará com que o ST funcione mais lentamente.
Em uma situação de Live/Demo, se a função start() for muito complexa e demorar muito tempo para funcionar, talvez alguns décimos de segundo, é possível que o próximo tick possa chegar antes do start() estar concluído, nesta situação o tick será perdido e não fará com que o start() seja chamado de . . . . este NÃO PODE acontecer com o ST.
Simon,
Suspeito que o que você está tentando fazer é uma solução falha para seu problema devido à falta de compreensão. Por que você precisa saber o segundo de um segundo para o outro se o preço não mudou por 30 segundos ? quando o preço muda você recebe um tique.
Admito que tenho uma falta de compreensão, é por isso que estou discutindo o tópico no fórum da MQL4. Desejo economizar sempre que mudar (eu entendo como fazer isso). Além disso, entendo como economizar preços a cada segundo de forma consistente em um gráfico LIVE/DEMO usando Sleep(). Objetivo: Desejo rastrear segundos de forma consistente (sem rastrear segundos com base na criação de ticks) até o máximo de um minuto ou menos, e depois redefinir os segundos rastreados para zero. Eu entendo porque desejo atingir este objetivo. Sendo assim, preciso testar um EA no testador e não posso usar Sleep() enquanto estiver testando. O que fazer corretamente? Opções de coleta.
Detalhes então hm? ;)
Codifique um temporizador (utilizável no testador) para um EA. Este temporizador conta de 0-30 ou de 30-0 para cima. Enquanto este tempo está contando para cima/para baixo, tenho uma ação de rastreamento de preço vetorial separada (um vetor de tamanho muito grande).
Minhas condições são tais,
Se o preço viaja x pontos (dentro de 0-30 ou 30-0 segundos), tome uma decisão.
Se o preço não viaja x pontos (dentro de 0-30 ou 30-0 segundos), ArrayInitialize().
O que você diz a este Simon?
Obrigado.