[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 131
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Continuação do tema
Anterior aqui https://www.mql5.com/ru/forum/111497
Estou tentando preencher uma matriz unidimensional ValueArr[].
Não tenho certeza se está correto.
Em cada tick, a função GetValue() produz um valor int. Como preencher o ValueArr[]?
Minha tentativa está correta?
O tamanho da matriz deve ser aumentado em um em cada carrapato? Então, seu tamanho será limitado pela memória disponível no computador.
Aumente o tamanho da matriz ValueArr[] usando a função ArrayResize() e anexe os novos dados à matriz. Novamente - onde você quer adicioná-las? No início ou no final?
Se no início você precisar mover dados escritos anteriormente, caso contrário eles serão sobrescritos pelos novos dados escritos.
Se no final, então:
Inite set array size = zero, e no início aumente-o em 1 (size++), depois redimensione o array ( ArrayResize(ValueArr, tamanho);) e escreva os dados, obtidos por GetValue(); (ValueArr[size-1]=GetValue();) em array cell ValueArr[], indexado por size-1 (ValueArr[size-1]).
Você quer que o tamanho da matriz aumente um em cada carrapato? Então, seu tamanho será limitado pela memória disponível no computador.
A cada tick, aumente o tamanho da matriz ValueArr[] usando a função ArrayResize() e anexe novos dados à matriz. Novamente - onde você quer adicioná-las? No início ou no final?
Se no início você precisar mover dados escritos anteriormente, caso contrário eles serão sobrescritos pelos novos dados escritos.
Inite set array size = zero, e no início aumente-o em 1 (size++), depois redimensione o array ArrayResize(ValueArr, tamanho); e anexe os dados obtidos pela função GetValue() à célula de array ValueArr[] indexada por tamanho 1 (ValueArr[size-1]);
Sim, os dados da GetValue() serão escritos em cada tick da matriz ValueArr[].
O tamanho da matriz é aumentado a cada tique, mas pode ser definido de uma só vez, digamos, [10000].
Os elementos da matriz estão dispostos na ordem de chegada, ou seja, o primeiro elemento escrito é o primeiro da "fila geral",
o segundo elemento é o segundo na fila.
Se eu entendi corretamente, é o que parece:
Espero tê-lo entendido corretamente.
Os elementos da matriz estão dispostos por ordem de chegada, ou seja, o primeiro escrito é o primeiro na "fila geral",
por que não usar uma série de tempos?
Estou tentando preencher uma matriz unidimensional ValueArr[].
Não tenho certeza se está correto.
Em cada tick, a função GetValue() produz um valor int. Como preencher o ValueArr[]?
Minha tentativa está correta?
int ValueArr[size];
você não pode. Ao declarar uma matriz, ou você especifica uma constante como o tamanho ou nada, e a matriz é então considerada dinâmica.
A maneira correta é esta
int ValueArr[]; int init() { ArrayResize(ValueArr,size); }
Por favor, avise! Existe alguma função no MT4, que levaria em conta o resultado de uma negociação anterior para abrir uma nova? Se sim, como posso especificá-lo corretamente?
Por favor, avise! Existe alguma função no MT4, que levaria em conta o resultado de uma negociação anterior para abrir uma nova? Se sim, como posso especificá-lo corretamente?
Não existe tal função integrada, você mesmo tem que escrevê-la, eu mostrei um exemplo aqui:https://www.mql5.com/ru/forum/131277/page113
Isto é
você não pode. Ao declarar uma matriz, ou uma constante é especificada como um tamanho, ou nada, e a matriz é então considerada dinâmica.
A maneira correta é esta
Então, acho que é isso:
Isto é correto?