Características da linguagem mql4, sutilezas e técnicas - página 5

 
Artyom Trishkin:

Não posso verificar agora, mas a MQL_TESTER parece incluir todo o resto. Mas tudo o mais separadamente não inclui um ao outro.

Ou seja, para entender que o programa funciona no testador (em qualquer um dos modos listados), basta verificar a primeira bandeira.

O exemplo era sobre outra coisa.
 
fxsaber:
O exemplo era sobre outra coisa.
Então eu não entendi - sobre o que se tratava?
 
Artyom Trishkin:
Então eu não entendo - do que se trata?
constância estática é inicializada por uma função.
 
fxsaber:
constância estática é inicializada por uma função.
Ahhhh ..., "...Semyoyonych Semyoyonych"... (с)
 
fxsaber:
A constância estática é inicializada por uma função.

1. Em que parte do programa isso está localizado?

Presumo que seja na área das variáveis globais. Sem mencionar que as variáveis globais não precisam de modificador estático, a seqüência de inicialização tem um papel muito importante.

Meu nível de profissionalismo de programação é muito inferior ao seu, por isso conduzo algumas experiências do nível em que você nem sequer pensa... Supostamente.

Portanto, aqui está a seqüência de inicialização: (para aqueles que não sabem disso)

Primeiro, variáveis de nível global, depois variáveis estáticas, dependendo da prioridade das funções, OnInit(), OnTick() ou OnCalculate()... Eu não estava interessado em mais, e não estava interessado nos locais em meu tempo. Assim, acontece neste código que a função é chamada antes que as variáveis estáticas sejam inicializadas, daí o erro de que estamos falando. A função é chamada antes que a variável stInt seja inicializada.

2. No início deste ramo, estávamos falando de fechar pedidos por preço OrderClosePrice(), você se lembra? Também funciona, mas podemos ter problemas. O mesmo acontece neste caso, também.

É por isso que não existe tal característica na ajuda. Para que quando você escreve seu código d*** não seja inundado com reclamações de que as coisas declaradas na documentação não funcionam. Você sabe quantos desses programadores estão presentes aqui. E quantos inadequados foram proibidos para toda a vida? Mais uma vez, presumivelmente...

 
Alexey Viktorov:
Aparentemente, você leu algo entre as palavras de uma única frase

Não há nenhuma implicação oculta nesta frase.


Quanto ao exemplo, ele funciona de qualquer maneira.

 
fxsaber:
Você deve ter lido algo entre as palavras da frase única

Não há nenhuma implicação oculta nesta frase.


Quanto ao exemplo, ele funciona de qualquer maneira.

Bem, um link com um exemplo de código com um erro, além de sua frase. Minha resposta não foi à sua frase, mas àquele código incorreto, que é exatamente o código g***.

Não tenho dúvidas de que sua amostra de código funciona.

 
Alexey Viktorov:

Portanto, um link com um exemplo de código com um erro, além de sua frase.

Há a palavra "sutileza" no título do tópico. Esse código é uma demonstração de sutileza.

Não vejo nenhuma razão pela qual os desenvolvedores não possam fazer este código funcionar - o que o autor queria ver. Quer façam ou não, essa é sua aplicação para o SD. Mas o exemplo em si é ilustrativo.

 
fxsaber:

Há a palavra "sutileza" no título do ramo. Esse código é uma demonstração de sutileza.

Não vejo nenhuma razão para não deixar que os desenvolvedores façam esse código funcionar - que é o que o autor queria ver. Quer façam ou não, essa é sua aplicação para o SD. Mas o exemplo em si é ilustrativo.

Começou a se referir à sutileza após nosso diálogo. E antes disso era como uma mensagem de erro. Só que não se pode chamar isso de erro.

Você tem alguma sugestão de como alterar a seqüência de inicialização para fazer este código funcionar como você deseja? De alguma forma me parece que este pedido será pendurado sem qualquer resposta.

 
Alexey Viktorov:

Começou a se referir à sutileza após nosso diálogo. Antes disso, era como uma mensagem de erro. Só que você não pode chamar isso de erro de forma alguma.

Se tivesse sido um erro, teria sido escolhido um fio diferente. Além disso, o reposting nem sequer teria acontecido, uma vez que a aplicação está pendurada no SD. É exatamente uma sutileza que é útil conhecer.

Alguma sugestão sobre como alterar a seqüência de inicialização para que tal código funcione da maneira que você deseja? Por alguma razão, parece-me que este pedido será pendurado sem resposta.

Não é um programador. Presumo que este código funcione em C++.