Perguntas de um "boneco" - página 213

 
lazarev-d-m:

Uma das formas mais fáceis de inserir

onde pretende verificar se o código funciona ou se uma condição é verdadeira (ou seja, se todas as condições são verdadeiras e deve ser tomada uma acção)

Eu, por exemplo, introduzo Alerta dentro de cada função complexa com texto diferente, a fim de verificar se a função foi executada e se a EA a atinge

Talvez use algumas condições e elas são sempre falsas.

Obrigado.
A EA simplesmente pára de funcionar, sem erros, e depois de reiniciar o terminal começa a funcionar novamente.
Preciso de saber como verificar programmaticamente se funciona ou não. Embora seja verde e não haja erros no registo.
E depois dessa função de verificação, colocarei alerta ou imprimirei ou comentarei.
 
G001: Pode dizer-me como verificar se o Expert Advisor está a trabalhar ou não?

O problema é que não há erros no registo, mas a EA por vezes deixa de funcionar, e só é restaurada depois de reiniciar o terminal.

Não estou muito claro como define que "o Perito Conselheiro deixa por vezes de trabalhar". Talvez, apenas inicia um loop infinito. O seu registo está vazio e o Expert Advisor está a trabalhar sem parar. Ou talvez tenha alguma outra característica especial.

 

Preciso de uma resposta à pergunta neste post: https://www.mql5.com/ru/forum/3775/page215#comment_379520

Alguém sabe a resposta?

 
tol64: Preciso de uma resposta à pergunta neste post: https://www.mql5.com/ru/forum/3775/page215#comment_379520 Alguém sabe a resposta?

Parece não haver uma resposta directa, pelo que ficamos a especular.

Assim, o tipo de licença pode ser encontrado utilizando Mql5InfoInteger(MQL5_LICENSE_TYPE). Isto é, de todos os valores possíveis da enumeração ENUM_LICENSE_TYPE , alguns serão devolvidos. Além disso - pelo método de excepção: o tempo limite de funcionamento(LICENSE_TIME) não pode ser devolvido juntamente com os três valores anteriores da enumeração especificada. Em particular, LICENSE_TIME não deve ser devolvido em simultâneo com LICENSE_DEMO .

Com este raciocínio, eu daria uma resposta negativa à pergunta "está implícito que um programa pago para o Mercado pode ser limitado no tempo num teste de demonstração? Porquea demonstração de um produto pago do Mercado tem o seu próprio identificador - LICENSE_DEMO.

 
Yedelkin:

Parece não haver uma resposta directa, pelo que ficamos a especular.

Assim, o tipo de licença pode ser encontrado utilizando Mql5InfoInteger(MQL5_LICENSE_TYPE). Isto é, de todos os valores possíveis da enumeração ENUM_LICENSE_TYPE , alguns serão devolvidos. Além disso - pelo método de excepção: o tempo limite de funcionamento(LICENSE_TIME) não pode ser devolvido juntamente com os três valores anteriores da enumeração especificada. Em particular, LICENSE_TIME não deve ser devolvido em simultâneo com LICENSE_DEMO .

Com este raciocínio, eu daria uma resposta negativa à pergunta "está implícito que um programa pago para o Mercado pode ser limitado no tempo num teste de demonstração? Porquea demonstração de um produto pago do Mercado tem o seu próprio identificador - LICENSE_DEMO.

Penso que LICENSE_TIME pode conter tanto LICENSE_DEMO como LICENSE_TIME. Um exemplo claro é dado por identificadores tais como MQL5_VISUAL_MODE e MQL5_TESTING. Ou seja, ambos nos avisam que estamos num testador. ))

Então, o que será que os criadores colocaram de facto neste identificador? E em geral, se não houver possibilidade de limitar o tempo de alguns programas pagos em modo de demonstração, seria bom ter essa possibilidade. Porque pode haver opções que podem ser muito rentáveis para utilizar para si mesmo programas, mesmo sem os comprar. )))

 
tol64: E penso que tanto LICENSE_DEMO como LICENSE_TIME poderiam ser incorporados em LICENSE_TIME ao mesmo tempo .

Concordo que me escaparam completamente as peculiaridades terminológicas dos materiais de referência, devido às quais o método de exclusão pode conduzir a resultados incorrectos por uma razão ou outra. ...Bem, pelo menos, os mal-entendidos sobre o assunto são manifestados, e apenas os autores desta listagem podem responder.

 
tol64: E em geral, se não houver limite de tempo em alguns programas pagos em modo de demonstração, seria bom ter essa opção. Porque pode haver opções que podem ser muito rentáveis para utilizar para si mesmo programas, mesmo sem os comprar. )))
E faz esta proposta directamente ao Service Desk. Ao mesmo tempo e descubra como são realmente as coisas :)
 
Yedelkin:

Não sei bem como determinar que "a EA por vezes deixa de funcionar". Talvez, apenas inicia um loop infinito. O registo está vazio, mas o Expert Advisor está a trabalhar sem parar. Ou talvez alguma outra peculiaridade seja desencadeada.

Não existem loops. Abre com bastante frequência, 10-20 vezes por dia, quando vejo sinais indicadores no gráfico mas a EA não abriu uma posição, significa que não está a funcionar. Reinicioo terminal e ele funciona novamente.
 
G001 quando vejo sinais indicadores num gráfico mas o Expert Advisor não abriu uma posição, isso significa que não está a funcionar

Isto está a aproximar-se do assunto. Então, acontece que a sua EA deixa de reagir aos sinais indicadores? Mas isso não significa que a EA "não funcione". Talvez, ainda funcione, mas não da forma pretendida pelo autor.

Tente definir um temporizador com um período de, por exemplo, 10 minutos. E imprima todos os índices que são significativos para o seu Consultor Especialista. Ver se os números mudam com o tempo. Se o registo também estiver vazio neste caso, deve ir definitivamente ao Service Desk com uma cópia do código.

Adição. Ou aqui está outra ideia. Tem um lugar no seu código com condições como se, depois de desencadear que pedido comercial deve ser enviado. Tente imprimir os casos de desencadeamento/não desencadeamento desta condição, por exemplo:

if ()
  {
   ... 
   Print("Сработало условие такое-то, время такое-то");
  }
else
  {
   ...
   Print("Не сработало условие такое-то, время такое-то");
  }
 
Obrigado. É improvável que o problema seja com a EA, caso contrário, o reinício da regra terminal nem sempre funcionaria. Também é um problema no MT4 com alguns corretores. Só preciso de verificar programmaticamente quando pára de funcionar para reiniciar antes do próximo sinal. Acrescentadas tanto as impressões como os comentários.
Razão: