Um bug na função OrderSend() ? - página 6

 
tara:

O que é Static então? É mais como Fatalic...
Por que a estática não funciona? Funciona em todos os lugares. Fatalic, naftálico, de jeito nenhum! Estou sempre procurando por falhas em mim mesmo e me ofendendo!
 
borilunad:
Por que a estática não funciona? Funciona em qualquer lugar que eu vá. Fatalic, naftálico, não pode ser! Estou sempre procurando por erros em mim mesmo e me ofendendo!
Por não prever a inicialização variável no reinício do programa, ele DEVE.
 
A propósito, todos os dados estáticos na MQL4 têm a mesma doença. Lembrete: todas as matrizes são estáticas:)
 
tara:
Por não prever a inicialização variável no reinício do programa, ele DEVE.
Certo, como em qualquer função, mesmo local, a estática é primeiro apresentada com algum valor, depois é comparada. Embora no início eu o tenha usado sem nenhuma idéia, verificando-o em ação, e depois vem o entendimento. É impossível entender tudo de uma só vez, e nem tudo pode ser arranjado tão facilmente de uma só vez. :) Eu não toco em arrays, eles são muito trabalho para mim!
 
granit77:
Há algum outro programador que possa confirmar isso? Um voto não seria suficiente.
Victor, não sou um programador, infelizmente. Eu sou um amador...
 
tara:

Você pode simplesmente mudar alguns parâmetros. A reação ocorrerá somente após o primeiro tique de uma nova barra no conjunto TF.

Mas você mesmo já se perguntou por que a operação da EA é inexplicável em uma TF superior:)



Será que há conexão entre o primeiro tique de uma nova barra e o testador? Eu não vejo isso. Um provador é um provador. E um gráfico... é um gráfico... (não me refiro a um testador, mas a mesma demonstração ou real).

Além disso, o livro didático diz... "Se não houver inicialização explícita, então uma variável estática é inicializada por zero".

Portanto, não há necessidade, como você disse, Alexey, de atribuir no INIT o valor 0 à última variávelBarTime. Será zero quando o programa for iniciado.

 
hoz:


Será que existe uma conexão entre o primeiro tique de uma nova barra no TF de trabalho e o testador? ...bem, eu não percebo... Um provador é um provador. E um gráfico... é um gráfico... (não me refiro ao testador, mas à mesma demonstração ou real).

Além disso, o livro didático diz. "Se não houver inicialização explícita, uma variável estática é inicializada por zero".

Portanto, não há necessidade, como você disse, Alexey, de atribuir o valor 0 à última variávelBarTime no INIT. Será zero quando o programa for iniciado.


Não, não vai. É um bug :)
 

Embora este ponto(do livro didático) não seja muito claro para mim:

" As variáveis estáticas são inicializadas uma vez antes de chamar a função init() especializada, ou seja, o valor desta variável não é perdido na saída da função, dentro da qual uma variável estática é declarada.

O que isso tem a ver com " antes de chamar a função init() especial " e depois " ou seja, quando você sai de uma função do usuário (a julgar pelo conteúdo) na qual uma variável estática é declarada? "

Uma função na qual uma variável estática é declarada pode estar no final de um programa... ou seja, no final do código ou em outro lugar. A funçãoinit() é executada uma vez pouco antes do início do programa. Acontece que é inconsistente. Como uma variável pode ser inicializada antes da funçãoinit() ?

 
hoz:

Embora este ponto(do livro didático) não seja muito claro para mim:

"As variáveis estáticas são inicializadas uma vez antes de chamar a função init() especializada, ou seja, o valor desta variável não é perdido ao sair da função, dentro da qual uma variável estática é declarada.

O que isso tem a ver com " antes de chamar a função init() especial " e depois " ou seja, quando você sai de uma função do usuário (a julgar pelo conteúdo) na qual uma variável estática é declarada? "

Uma função na qual uma variável estática é declarada pode estar no final de um programa... ou seja, no final do código ou em outro lugar. A funçãoinit() é executada uma vez pouco antes do início do programa. Acontece que é inconsistente. Como uma variável pode ser inicializada antes da funçãoinit() ?

Bem, se você estiver interessado - todos os modos de gerenciamento de memória atualmente utilizados foram implementados pela primeira vez no PL/1. Há quatro deles: Automático, Dinâmico, Estático e Baseado. C veio depois e adotou plenamente estas normas.

 
Vou para a cama agora:)