Como garantir que a EA só funcione no gráfico onde foi lançada pela primeira vez - página 4

 

Provavelmente é assim que funciona:

Comece, crie uma variável global e um objeto no gráfico (em algum lugar fora do gráfico, para não apagá-lo acidentalmente à mão) e "escreva" uma chave comum em ambos (obtida por GetTickCount, por exemplo).

Volte a executar em outros gráficos verifique a presença de variáveis globais. se ela existe - procure por um objeto com a mesma chave em NOSSO gráfico. se não for encontrada - outro gráfico - não funcione e grite com alerta de que é uma repetição!

Uma vez que os objetos gráficos e as variáveis globais devem sobreviver a reinícios e recompilações - a verificação sempre funcionará corretamente).

 
ForexTools:

Provavelmente é assim que funciona:

Comece, crie uma variável global e um objeto no gráfico (em algum lugar fora do gráfico, para não apagá-lo acidentalmente à mão), e "escreva" uma chave comum em ambos (obtida por GetTickCount, por exemplo).

Volte a executar em outros gráficos verifique a presença de variáveis globais. se ela existe - procure por um objeto com a mesma chave em NOSSO gráfico. se não for encontrada - outro gráfico - não funcione e grite para que seja executada novamente!

Uma vez que os objetos gráficos e as variáveis globais devem sobreviver a reinícios e recompilações - a verificação sempre funcionará corretamente).

Às vezes, os objetos não são salvos se o terminal se avariou.
 
ForexTools:

O consultor especializado deve trabalhar com apenas "uma instância". Isto é, a primeira vez que o prendo a qualquer tabela e funciona. Se eu então, acidentalmente ou intencionalmente, anexá-lo novamente a outro gráfico, o segundo anexo deve detectar que ele já está em funcionamento e não fazer nada.

Deixar o rótulo em uma variável global provavelmente não vai funcionar. Se eu tiver dois EAs anexados e recompilar seu texto, não está claro qual deles irá trabalhar primeiro para criar esta variável global.

Quem pode sugerir o quê? Alguma idéia sobre como fazer isso?


E se na inicialização para abrir arquivo para escrever, na desinicialização para liberá-lo. Logicamente, uma nova instância da EA não será capaz de abrir um arquivo que foi aberto para escrita mais cedo. Se, por exemplo, cinco iterações, obtemos constantemente um erro de abertura de um arquivo para escrita, significa que uma instância da EA já está aberta.

 
exhumer:
Uma nova instância da EA não será capaz de abrir um arquivo que estava anteriormente aberto para escrita.

depois que o terminal cair e reiniciar, o arquivo estará disponível para a primeira pessoa que o abrir, não para a primeira pessoa que o reiniciar :(

Mais uma vez, repito: você precisa de um gráfico específico - um Expert Advisor específico.

 
ForexTools:

sua idéia não funciona.

O que você quer dizer com "não funciona"? Embora esta seja uma afirmação oca.
Especialmente porque você não tem nada além de uma idéia (muito menos uma "receita concreta")

o que posso inferir de sua "solução" ??? ;)

É exatamente uma idéia. Se você não tem conhecimento suficiente para entender como verificá-lo, então escreva assim. Na verdade, você o fez, mas o escreveu como uma reivindicação. Pelo menos a observação "o que posso fazer por sua "solução"? ;)" parece exatamente como uma reivindicação. E então, por alguma razão, um conjunto de trivialidades

"deveria" não quer dizer "testamento", "lá" é "onde"... se "não funcionou".

- como você pode dar conselhos sobre soluções não testadas?!

Olhe, se apenas soluções comprovadas fossem oferecidas, você ainda estaria procurando raízes com um pau. De quem é este problema, meu ou seu? Por que diabos você qualificaria a sugestão de uma idéia como uma recomendação de uma solução?

Do meu ponto de vista, a pergunta é a seguinte: eu lhe dou uma idéia, você a testa, se funcionar, você me informa que funciona, por meio de um agradecimento mínimo.

P.S. Man, você deveria ter pesquisado um arquivo cristo por curiosidade, já que você finge ser um profissional a trabalhar com MT.

 
TheXpert:
Em seguida, arquivar sem problemas como cacifo e sem problemas.
Por que não usar isto, a opção mais simples? O Expert Advisor cria um arquivo de controle e verifica se o arquivo existe antes de fazer isso. Se o arquivo com o mesmo nome já existir, o Expert Advisor não iniciará. Se a EA sair corretamente da tabela, ela apagará o arquivo. Se ocorrer uma falha, o arquivo restante bloqueia o lançamento de qualquer instância da EA e é apagado manualmente para continuar trabalhando.
 

Candid:

De quem é o problema, meu ou seu? Por que diabos você qualificaria sua sugestão de uma idéia como uma recomendação de uma solução?

Porque foi exatamente isso que pedi em meu primeiro posto - foi por isso que aceitei sua idéia como tal.

Você parece fingir ser um profissional a trabalhar com a MT.

é por isso que eu vejo a validade de muitas "idéias" até mesmo o DOTO como sua..... ;)

se eu estiver errado sobre você - escreva algum código EA que não faça nada além de impedir sua segunda cópia de funcionar. verifique se ele realmente funciona quando recompilar e reiniciar o terminal e poste o código aqui - tudo vai cair no lugar ;)

 
granit77:
Quando ocorre um acidente, o arquivo restante é bloqueado por....

há dois gráficos, um deles tem uma EA funcionando segurando o arquivo, e o segundo tem uma cópia da EA não funcionando devido a um arquivo trancado.

o terminal está desativado ou fechado.

(re)iniciar o terminal. nele dois EAs começam a verificar para ler o arquivo. há alguma garantia de que o primeiro verdadeiro o pegará primeiro e não aquele que foi bloqueado da última vez? :(

Pela terceira vez repito: preciso de um vínculo entre CHART e EXPERT, mas não bloqueando um Expert Advisor por outro.

 
granit77:
Por que não usar isto, a opção mais simples?
Não, não, isso é apenas se não importa em que instância correr.
Razão: