Função StrToTime causa erro 4051 - página 3

 
As funções StrToTime e StringToTime são as mesmas.
RaptorUK:
Por que eu iria querer compatibilidade com o mql5 ? Estou usando o código mql4 para o MT4.

Eu não disse que você deve.
 
RaptorUK:
ResetLastError() antes da chamada StrToTime() e depois chamada GetLastError(). StrToTime() não deve causar um erro, mas sim . . . . é um erro. Algo semelhante já foi reconhecido e corrigido: https://www.mql5.com/en/forum/149475/page2


Há alguma parte da documentação escrita que StrToTime() utiliza um manipulador de erros?

Caso contrário, do que existe

1) Não há motivo para verificá-lo

2) Não há razão para esperar que o valor retornado tenha algo a ver com o resultado da função StrToTime().

Além disso, o que significa err 4051? Valor de lotes inválidos?????

 
graziani:


Há alguma parte da documentação escrita que StrToTime() utiliza um manipulador de erros?

Se não, do que existe

1) Não há motivo para verificá-lo

2) Não há razão para esperar que o valor retornado tenha algo a ver com o resultado da função StrToTime().

Além disso, o que significa err 4051? Valor de lotes inválidos?????

Este erro pode ser gerado por muitas funções, mesmo aquelas que não retornam um valor.

ERR_INVALID_FUNCTION_PARAMVALUE4051Valor do parâmetro de função inválido.
 

Você pode me mostrar uma referência na documentação onde é declarado que StrToTime() usa manipulador de erros e que após a função ser concluída você deve verificar seu sucesso chamando GetLastError()?

 

De qualquer forma, há uma coisa sobre a qual estamos de acordo, então vamos fazer um pouco de barulho sobre isso:

Forçar que os comentários no código fonte EA após a definição de variáveis externas/inputadas sejam visíveis como definição de variáveis em propriedades de especialistas no testador de estratégia é arrogante, insolente e desrespeitoso para com os programadores! MQ não tem o direito de impor tal regra e forçar os usuários a perder tempo para mudar numerosas linhas de fonte e mudar os comentários e hábitos de escrita da fonte, de forma tão não-standard. Se eles querem tal comportamento não-padrão, ele deve ser implementado utilizando as diretrizes #pragma, pois esta é a forma padrão e aceita.

 
graziani: deve ser implementado utilizando as diretrizes #pragma, pois esta é a forma padrão e aceita.
Ou a forma mais compacta "padrão e aceita", mas ainda controlada pelo codificador.
Doxigênio
int var; /*!< Detailed description after the member */
int var; //!< Brief description after the member
Ou estilo QT
int var; /**< Detailed description after the member */
 
graziani:

Você pode me mostrar uma referência na documentação onde é declarado que StrToTime() usa manipulador de erros e que após a função ser concluída você deve verificar seu sucesso chamando GetLastError()?

Não, eu não posso.

Uma situação semelhante já foi corrigida com o TerminalInfoString() . . . como já mencionei. Mas entendi seu ponto de vista, se o usuário usasse corretamente o GetLastError() o "erro" nunca teria sido visto.
 
graziani:

De qualquer forma, há uma coisa sobre a qual estamos de acordo, então vamos fazer um pouco de barulho sobre isso:

Há provavelmente mais de uma coisa sobre a qual estamos de acordo
 
RaptorUK:
Há provavelmente mais de uma coisa sobre a qual estamos de acordo

Parece que sim. Você pode criar um clube
 
RaptorUK: Por que eu iria querer compatibilidade com o mql5 ? Estou usando o código mql4 para MT4.
graziani: Str vs. String, você deve usar as novas funções como na MQL5, para ter compatibilidade com a fonte.
Os documentos do mq4 foram atualizados. Eles estão ambos no mt4. https://docs.mql4.com/convert/StrToTime e https://docs.mql4.com/conve rt/stringtotime