Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 894

 
rapid_minus:

Ow! Guru! O dedo quebrou durante o processo de palma da mão?

Você acha que eu não tinha mais nada a fazer? Fico surpreso em saber que...

Ninguém pode encontrar um erro lógico a não ser você, porque ninguém sabe o que você está fazendo. E todos têm um estilo de escrita diferente e para mim pessoalmente é difícil ler seu código, não consigo ver parentesco de parênteses. Cada parêntese de fechamento está localizado abaixo de abrir um e cada parêntese não está equidistante da borda esquerda. Isto foi trabalhado quando os parênteses não foram destacados, e agora também não são destacados no fórum.

O que é (condição A, B, C, D, D, D, E)? Aparentemente, há aqui um erro, mas não com certeza. E você tem certeza de que as ordens são abertas com os mágicos listados? Você entende os métodos para encontrar erros lógicos? Você tem sido repetidamente aconselhado a desimprimir o código e ver onde a execução entra e onde não entra, e você continua pedindo ajuda.

 
tuner:
Provavelmente... há funções incorporadas no MQl4 relacionadas a modelos de salvamento e carregamento: ChartSaveTemplate, ChartApplyTemplate
Entendi, obrigado!
 

Eu queria escrever um roteiro simples para criar um segmento(linha de tendência) em um gráfico com o início no local onde o roteiro é lançado (sem problemas) e o final nas coordenadas onde o clique esquerdo do mouse será feito... Foi aqui que eu tropecei... Como fazê-lo em um indicador ou especialista para capturar este evento é elementar, COMO FAZER EM SCRIPT? Como faço isso no Script?

 
Batman:

Eu queria escrever um roteiro simples para criar um segmento (linha de tendência) em um gráfico com o início no local onde o roteiro é lançado (sem problemas) e o final nas coordenadas onde o clique esquerdo do mouse será feito... Foi aqui que eu tropecei... Como fazê-lo em um indicador ou especialista para capturar este evento é elementar, mas como fazê-lo em um roteiro? Como faço isso no Script?

Fazendo looping do roteiro.
 
tara:
Fazendo looping do roteiro.

Eu tentei, digamos, um loop no OnStart está girando por si só, mas oOnChartEvent não está mais funcionando nesse momento...

Existe um exemplo prático de como evitar que o roteiro termine até que ele espere por um evento com um clique do mouse?

 
Batman:

Eu tentei, digamos, um loop no OnStart está girando por si só, mas o OnChartEvent não está mais funcionando nesse momento...

Existe um exemplo prático de um roteiro que não termina até que ele espere por um evento com um clique do mouse?

Que tal fazer um looping por uma função personalizada que depende do OnChartEvent para retornar?

Isto é um improviso. Não sei se funciona, mas se eu tivesse que fazer isso, tentaria esta mesma solução.


zy. Acho que fui muito apressado com minha opinião. O evento OnChartEvent parece não estar disponível nos roteiros
 
AlexeyVik:

E se o looping através de uma função personalizada cujo retorno depende do OnChartEvent

Isto é um improviso. Não tenho certeza se vai funcionar, mas se eu tivesse que fazer isso, tentaria esta mesma solução.

E como seria?)).

Suspeito, de alguma forma, que ao organizar qualquer loop no roteiro, o tratamento de eventos não ocorre mais... Se isso é feito quando os roteiros estão em execução - já duvido...

Será que uma tarefa tão simples não tem solução, pelo menos "sem dançar com pandeiros"?

 
Batman:

E como seria isso?))

Suspeito de alguma forma que quando qualquer laço é estabelecido em um roteiro, o processamento de eventos não ocorre mais... Se isso for feito na execução de roteiros - já duvido...

Será que uma tarefa tão simples não tem solução, pelo menos "sem dançar com pandeiros"?

Bem, o loop através de uma função definida pelo usuário é simples. Esta função é chamada durante o loop e, dependendo do valor retornado, repete-se ou quebra

Mas a presença do OnChartEvent nos roteiros é... é questionável.

Aparentemente, devemos entender o que é possível nos roteiros e o que é mais caro de se colocar lá. Parece-me que o resultado pode ser imprevisível e depende do usuário, não do programador. Imagine o que acontecerá se você não pressionar o "rato" em tal script... o laço não terminará. E o que o usuário pode fazer a seguir? Como um macaco com uma granada.

 
AlexeyVik:

Bem, o loop através de uma função personalizada é simples. O loop chama esta função e, dependendo do valor retornado, repete ou quebra

Mas a presença do OnChartEvent nos roteiros... é questionável.

Aparentemente, devemos entender o que é possível nos roteiros e o que é mais caro de se colocar lá. Parece-me que o resultado pode ser imprevisível e depende do usuário, não do programador. Imagine o que acontecerá se você não pressionar o "rato" em tal script... o laço não terminará. E o que o usuário pode fazer a seguir? Como um macaco com uma granada.

Algumas tolices sobre um macaco com uma granada...))) O script é arrastado para o gráfico com um mouse, então o usuário clica no lugar certo do gráfico (eventos pendentes e interceptadores devem ser gerenciados de alguma forma...), um objeto gráfico é criado, o script completa seu trabalho. Para os "esquecidos", é possível terminar a espera depois de algum tempo. Mesmo um roteiro torto "pendurado" é removido do gráfico clicando com o botão direito do mouse, "Remover roteiro".

Pergunta - por que não é possível lidar com eventos de apertar botões ou similares no script? O que é proibido aqui?

 
Batman:

Algum disparate sobre um macaco com uma granada...)) O script é arrastado para o gráfico com um mouse, depois um clique bastante natural no lugar certo do gráfico (assumindo que o evento de espera e captura foi arranjado de alguma forma...), um objeto gráfico é criado, o script termina. Para os "esquecidos", é possível terminar a espera depois de algum tempo. Mesmo o roteiro torto "pendurado" é removido do gráfico clicando com o botão direito do mouse, "Remover roteiro".

Pergunta - por que não é possível lidar com eventos de apertar botões ou similares no script? O que é proibido aqui?

Você não vai acreditar nisso. Tenho um amigo a quem digo "Terminal próximo". O que você acha que ele faz? ELE FAZ... É o que eu chamo de "macaco com uma granada". Nunca se sabe onde ele vai jogá-lo. Você nunca vai adivinhar o que tal usuário fará com seu programa.

Bem, por que o processamento de eventos é impossível, é uma questão para a MQ.

Tente resolvê-lo usando o Expert Advisor que elimina o Expert Advisor do gráfico usando a função ExpertRemove()