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
Comecei agora a estudar MQL, e aqui escrevi uma EA que desenha um iMA e desenha uma tangente (muito próxima) ao gráfico do iMA no ponto em que o ponteiro do rato está no eixo do tempo.
Primeiro problema. O Conselheiro Especialista é MUITO lento. Significa que a tangente é redesenhada durante muito tempo e não segue o movimento do rato...
Vejam a minha versão:
No meu portátil - tudo voa!
Recebo o erro 5040 (parâmetro corrompido do tipo string) a primeira vez que chamo uma função de criação de objectos
Se antes de um conjunto de chamadas
nTL="";
erro 4002 (parâmetro inválido ao chamar internamente a função terminal do cliente)
Se estabelecido antes da chamada
nTL="a";
o primeiro objecto será nomeado a.
Eu chamo-lhe assim
Poderia dizer-me onde se encontra um erro?
Na versão antiga.
nunca teve qualquer falha.
É um erro no código ou no terminal?
Pode dizer-me onde está o erro?
Recebo o erro 5040 (parâmetro corrompido do tipo string) a primeira vez que chamo a função de criação do objecto
Se antes de um conjunto de chamadas
erro 4002 (parâmetro inválido ao chamar internamente a função terminal do cliente)
Se estabelecido antes da chamada
o primeiro objecto será nomeado a.
Eu chamo assim
Pode dizer-me onde está o erro?
Está preocupado porque Get LastError imprime algo diferente de zero? Em caso afirmativo, só se deve chamar a atenção para um erro se a função denunciar uma falha. E não se deve pedir um erro no fim do enredo, pode ser que se receba um valor de lixo. É assim que é no MT4, talvez seja diferente aqui.
Pseudocódigo:
Recebo o erro 5040 (parâmetro corrompido do tipo string) a primeira vez que chamo a função de criação do objecto
Se antes de um conjunto de chamadas
erro 4002 (parâmetro inválido ao chamar internamente a função terminal do cliente)
Se estabelecido antes da chamada
o primeiro objecto será nomeado a.
Eu chamo-lhe assim
Poderia dizer-me onde está o erro?
Tente "colar" cordas através de StringConcatenate()
Não sei onde está o erro, mas a manipulação de nomes de objectos é muito questionável, para o dizer de forma suave.
Não é claro porque é que precisa de um número aleatório no nome do objecto, pode levar a um erro.
Existe outra opção para um par de centenas de objectos com nomes únicos?
(Um grupo de objectos deve ter a mesma parte do fio no nome, para remover o grupo).
Está preocupado porque o Get Last Error imprime algo diferente de zero? Em caso afirmativo, só deve pedir um erro se a função denunciar uma falha. E não se deve pedir um erro no fim do enredo, pode ser que se receba um valor de lixo. É assim que é no MT4, talvez seja diferente aqui.
Está preocupado porque a Get Last Errors imprime algo diferente de zero?
Bem, logicamente, se a função definir o último erro, então após a conclusão bem sucedida da função deverá haver um erro zero ou o valor descrito na documentação. Não há outra forma.
Ou seja, se a chamada foi bem sucedida e o erro não for zero, este caso deve ser descrito na documentação.
Estarei a racionar os meus cérebros desta forma por mais uma semana. Posso dar-lhe mais alguns detalhes? (Pode ser grosseiro :))
Normalmente os nomes de objectos do mesmo tipo são formados a partir de uma parte comum, para fácil remoção ("nTL_" no seu caso) e diferenças. Também utilizo identificador de módulo, se puder haver mais do que um destes módulos ao mesmo tempo no gráfico.
A diferença pode ser qualquer coisa, mesmo um contador, que aumenta de cada vez que se cria um objecto. Mas é melhor fazer distinções logicamente -- tempo do objecto, coordenada do objecto, o objectivo é atingir a singularidade garantida. O efeito secundário é que ao construir um nome novamente, é possível alterar as propriedades de um objecto já criado.
O aleatório não proporciona esta "singularidade garantida".