Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 984
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
Mas o facto é que a questão é. O sono não deve afectar o recálculo dos dados no indicador. Algo está errado com o enchimento de tampão. Talvez haja um pedaço de código reprodutível?O indicador foi escrito por ordem - é um OOP selvagem, não o entendo :(
Passei toda a noite com este problema, enquanto descobri o motivo da divergência entre o testador e a conta real, talvez depois de dormir retire alguma lógica secreta e afixe para revisão.
Enfrentei um problema, o indicador baseado EA funciona correctamente numa conta real, mas está deitado no testador, em modos de geração de carrapatos tanto pela OHLC como por todos os carrapatos - o resultado é o mesmo. O resultado do erro é o buffer vazio do indicador na barra zero (apenas quando há uma nova barra na TF superior, que é utilizada para o cálculo do indicador). No entanto, consegui fazer um indicador a ser calculado adicionando Sleep ao meu Expert Advisor. Mas descobri que dependendo do modo de geração de carraças este Sleep deve ser diferente - para geração de todas as carraças o Sleep(15000) é suficiente, enquanto para OHLC o Sleep(30000) é necessário.
Assim, a questão que se coloca - é a situação com o sono normal, porque parece logicamente que os diferentes tempos de atraso são modelados ali, dependendo do modo de geração do tick!
Caros programadores, por favor expliquem a situação com o indicador, porque eu próprio não compreendo qual é a razão - um erro no código ou no testador!
Estou pronto a dar-vos o indicador e o Conselheiro Especialista no PM, mas digam-me a quem.
Se quiser copiar o preço para uma matriz, tem de verificar se o histórico está disponível e verificar se o preço não é alterado. Para este efeito, temos de verificar se o histórico da TF está disponível, caso contrário, devemos tentar copiá-lo novamente e esperar até que tenha sido carregado no laço.
esta é uma mão má do programador, se ele não soubesse
escorregar não é normalPor favor, explique...
Carrego na tecla = recebo id do evento = 0. Isto pode ser repetido muitas vezes. O resultado é o mesmo desde que a barra de espaço não seja pressionada.
Pressionei a barra de espaço = recebo id do evento = 0. Depois disso, todas as manipulações no teclado não resultam em nenhum caso.
Para sair do estupor, carrego no botão do rato = obtenho id do evento = 4. Depois disso, pode clicar novamente no teclado = os eventos vêm para cada clique. Desde que nenhuma barra de espaço seja premida = com o mesmo resultado.
Pergunta: sou um tolo que não entende alguma coisa ou não deveria ser assim? Por favor, forneça um link.
Olá colegas.
Pergunta: Em mql4, a fim de calcular o número de posições, pode escrever a função assim
Como é implementado em mql5? Como posso calcular posições por número mágico ou por tipo?
Adicionar esta linha antes de MQL4-função
e funcionará em MT5.
O problema dos indicadores é que as séries cronológicas podem ainda não estar prontas, ou seja, não podem copiar o preço para uma matriz de uma só vez. Para este efeito, devemos verificar se o histórico da TF está disponível, caso contrário, devemos tentar copiá-lo novamente e esperar até que tenha sido carregado no laço.
Esta é uma mão má do programador se ele/ela não souber disso.
deslizar não está bemComo é que isto é possível no testador? Compreendo se o problema está no real ou no testador não há história... No entanto, como deve ser este teste?
Os desenvolvedores estão a ignorar a minha mensagem, infeliz.
Como é que isto é possível no testador? Compreendo se o problema está no real ou no testador não há história... No entanto, como deve ser este teste?
Os desenvolvedores estão a ignorar a minha mensagem, infeliz.
verificar se os preços são copiados, se Copyclose ou o que quer que seja que devolva -1 então não são copiados
verificar se os preços são copiados, se Copyclose ou o que quer que seja que devolva -1 então não são copiados
O indicador é calculado uma vez ao aparecimento de uma nova barra, que é implementada, se bem entendi, desta forma:
é também confirmado por uma simples impressão.
É por isso que a situação não é clara, se assumirmos que não há preço a ser calculado, o indicador será calculado 1 vez e o tampão permanecerá por preencher, mas não é assim - preencherá se adicionarmos o sono à EA e esperarmos. Talvez, o indicador seja lento nos cálculos e o testador simplesmente não espera por ele? Mas como verificá-lo?
O indicador é calculado 1 vez quando aparece uma nova barra, que é implementada, se bem entendi, desta forma:
isto também é confirmado por uma simples impressão.
É por isso que a situação não é clara, se assumirmos que não há preços a calcular, o indicador será calculado uma vez e o tampão ficará por preencher, mas não é este o caso - preencherá se adicionarmos o sono à EA e esperarmos. Talvez, o indicador seja lento nos cálculos e o testador simplesmente não espera por ele? Mas como verificá-lo?
Talvez devesse então ser cronometrado
Talvez devêssemos então usar um temporizador.
Sim, com o temporizador na EA o teste vai um pouco mais longe do que sem o temporizador, mas pior do que com o Sleep, e o temporizador é essencialmente o mesmo que o Sleep.
Acho que compreendo qual é o problema, o indicador é calculado utilizando dados de dois outros indicadores e o código pede o número de barras calculadas de outros indicadores
e o número de barras esperado calculado
Se estes dois valores não coincidirem, o tampão não é preenchido.
Se bem entendi, os indicadores são executados num fio e a sua prioridade é distribuída no momento da sua criação, ou seja, verifica-se que o indicador a que me dirijo da EA tem a prioridade mais elevada e executa o seu cálculo primeiro e, depois de concluído o cálculo, passa o fio para esses indicadores em que o cálculo se deve basear (dados tampão).
Na impressão vejo que se eu definir Sleep de tamanho suficiente, o recálculo é efectuado no indicador (ainda não percebo como) e porquê apenas após 13 segundos?
Não há temporizador no indicador.
E o que devo fazer para obter o cálculo correcto, tentar utilizar enquanto estiver na EA antes de esperar pelo valor em tampão não ajuda - pendura.