Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 219
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
Eu sempre soube que ele contém o número de ordens -1, ou seja, OrdensTotal()-1 e tudo estava funcionando, mas comecei a escrever um programa e de repente, uma ordem não é mais contada, pedi OrdensTotal() e ele me deu o número total de ordens = 3, ao invés de 3-1.
O que acontece?
A forma usual do laço na ajuda:
int total=OrdensTotal();
for(int pos=0;pos<total;pos++)
{
}
Ou seja, a primeira ordem é igual a zero.
Mas não, de fato, a primeira ordem é 1, o que significa que devemos começar a busca a partir de 1 e não a partir de zero?
As metaquotas fizeram algo errado ou eu sou estúpido?
Olá, o que se passa com OrderTotal()?
Eu sempre soube que ele contém o número de ordens -1, ou seja, OrdensTotal()-1, e tudo estava funcionando, mas comecei a escrever um programa e de repente uma ordem não é contada. Eu pedi OrdensTotal() e ele diz ordens totais = 3, ao invés de 3-1.
O que acontece?
A forma usual do laço na ajuda:
int total=OrdensTotal();
for(int pos=0;pos<total;pos++)
{
}
Ou seja, a primeira ordem é igual a zero.
Mas não, de fato, a primeira ordem é 1, o que significa que devemos começar a busca a partir de 1 e não a partir de zero?
As metaquotas fizeram algo errado, ou eu sou estúpido?
Você misturou os PEDIDOS RELACIONADOS e POISÕES. Leia a referência. Seja mais específico em sua pergunta: o que você está tentando contar: PEDIDOS REMOVIDOS ou POSIÇÕES? E sim, nada mudou - o primeiro índice de elementos começa com '0'.
Acrescentado: exemplo
Exemplo: Calcular Posições e Ordens Pendentes
Você misturou os PEDIDOS RELACIONADOS e as POSIÇÕES. Leia a referência. Formar sua pergunta mais precisamente: o que você está tentando contar: PEDIDOS RETIRADOS ou POSIÇÕES? E sim, nada mudou - o primeiro índice de elementos começa com '0'.
Acrescentado: exemplo
Exemplo: Calcular Posições e Ordens Pendentes
Quero dizer MQL4, não MQL5, não há diferença entre ordens pendentes e de mercado!
Quero dizer MQL4, não MQL5, não há divisão em pendentes e pendentes de mercado!
Você está escrevendo no fórum MQl5. Você está escrevendo na seção principal. Você posta no fórum da MQL5 - e você receberá respostas sobre a MQL5.
As perguntas sobre o terminal antigo são dirigidas à seção especial: MQL4 e MetaTrader 4. De agora em diante, escreva lá. Transferirei suas perguntas para ele.
Comparei duas variantes, na primeira, usei OrderTotal()-1 e comecei a busca a partir do zero - recebi o erro
. Na segunda variante, comecei com uma e peguei toda a OrderTotal() - sem erro desta vez
Nas telas, você pode ver que OrdersTotal() mostra o número real de pedidos, não OrdersTotal()-1 ...
A questão é por que OrdensTotal() mostra o número real de ordens, em vez de -1, deveria ser assim ou é algo novo?
Porque, neste caso, devemos começar a busca não a partir de zero, mas a partir de um!
Comparei duas variantes, na primeira, usei OrderTotal()-1 e comecei a busca a partir do zero - recebi o erro
. Na segunda variante, comecei com uma e peguei toda a OrderTotal() - sem erro desta vez
Nas telas, você pode ver que OrdersTotal() mostra o número real de pedidos, não OrdersTotal()-1 ...
A questão é por que OrdensTotal() mostra o número real de ordens, em vez de -1, deveria ser assim ou é algo novo?
Porque, neste caso, devemos começar a busca não a partir de zero, mas a partir de um!
Acho que entendi meu erro, desculpe...
Há um offset de -1 nesta condição:
if (OrderSelect(i-1,SELECT_BY_POS)==verdadeiro){}
Desculpe por ser grosseiro, eu tirei a string de outro programa e não prestei atenção ao offset!