Ciclo Operador 'para' perguntas - página 16

 
RaptorUK:

Não, isto está errado... livrar-se dele. As posições e índices são a mesma coisa e são de 0 a 9... . não há nada que seja de 1 a 10 . . expulse-o de seu cérebro.

Isto precisa ser retificado, imediatamente.

Se os índices e os números de posição forem idênticos, então isto é verdade...

Total de dez bilhetes no pool de ordens de comércio ativo:

os números de posição dos bilhetes são os seguintes: 0,1,2,3,4,5,6,7,8,9

Os números de posição dos bilhetes indexados são os seguintes: |0|1|2|3|4|5|6|7|8|9|

Se este for realmente o caso, um número de posição de bilhete pode ser zero (0).

Por favor, confirme as declarações acima ou declare o contrário.


Obrigado.

 
WhooDoo22:

Isto precisa ser retificado, imediatamente.

Se os índices e os números de posição forem idênticos, então isto é verdade...

Total de dez bilhetes no pool de ordens de comércio ativo:

os números de posição dos bilhetes são os seguintes: 0,1,2,3,4,5,6,7,8,9

Os números de posição dos bilhetes indexados são os seguintes: |0|1|2|3|4|5|6|7|8|9|

Se este for realmente o caso, um número de posição do bilhete pode ser zero (0).

Já passamos por isso antes . . . . uma Ordem tem um número de bilhete . . . uma Ordem também tem uma posição no pool de negociação para Ordens Abertas/Pendentes ou no pool de histórico para Ordens fechadas.

Se tivermos 10 ordens abertas, as posições de ordem são 0 a 9 ou 0,1,2,3,4,5,6,7,8,9 ou |0|1|2|3|4|5|6|7|8|9| final, Fin, done

 
RaptorUK:

Já passamos por isso antes . . . . uma Ordem tem um número de bilhete . . . uma Ordem também tem uma posição no pool de Negociação para Ordens Abertas/Pendentes ou no pool de Histórico para Ordens fechadas.

Se tivermos 10 ordens abertas as posições das Ordens são 0 a 9 ou 0,1,2,3,4,5,6,7,8,9 ou |0|1|2|3|4|5|6|7|8|9| final, Fin, done


Obrigado.
 

Olá Fórum da comunidade MQL4,

Atualmente, eu tento economizar valores de preço para o fechamento de pedidos. Eu tentei incluir a função OrderProfit() mas não gostei. Não-não :O.Irá usá-la se todos os outros caminhos falharem. Eu gostaria de salvar o preço de fechamento do pedido :) ao invés de usar a função OrderClosePrice(). Uma vez que todos os preços de fechamento de pedido forem salvos, eu poderia agrupar os resultados em pares. Uma vez agrupados em pares, adicione cada grupo e depois divida cada grupo por dois para recuperar sua média. Uma vez que todos os pares forem agrupados em média, reagrupar os resultados e repetir o processo. Uma vez que todos os pares sejam calculados em média e só resta um total, eu subtrairia o spread deste total e se o resultado for maior ou igual (>=) para pedir um preço aberto, um Booleano permaneceria falso. Se o resultado for menor que o preço aberto de um pedido, um Booleano seria inicializado como verdadeiro.

Alguém já passou por este caminho antes? Se sim, você pode fornecer alguns avisos para ter em mente?

Obrigado.

 
WhooDoo22:

Alguém já passou por este caminho antes? Em caso afirmativo, você pode fornecer alguns avisos para ter em mente?

Não faça isso . . . leia o que você precisa do pool de História, está tudo lá dentro. Mantenha as coisas simples . . . se você salvar os dados em um array que você tem, salve-os demais para arquivar, de modo que, no caso de um MT4 ou falha do PC, você possa obtê-los de volta . . . etc, etc, etc

HEADACHE
 

Ah, sim, um fundo histórico. "Sem cérebro!". Você é um profissional direto do Simon! Hahaha! ;) Por que eu não pensei nisto primeiro, certo?

Você vai fazer de mim uma "estrela de rock codificadora MQL4" ainda! Hahahaha!

Obrigado!

 

Simon,

Estive revendo a documentação para operadores de "Intervalo" e "Continuar". Até onde posso ver, um operador 'Break' termina um operador 'while' ou 'for' ciclo passando o controle do programa para a próxima linha de código abaixo do ciclo 'while' ou 'for'. Um operador 'Continue' deixa de ler o corpo do operador 'while' ou 'for' e passa o controle do programa para a expressão em um operador 'while' ou 'Expressão 2' se um ciclo 'for' não possuir nenhuma 'Expressão 3' ou 'Expressão 3' se o ciclo 'for' possuir a 'Expressão 3'.

O que você pensa a respeito disso?

Obrigado.

 
WhooDoo22:

Simon,

Estive revendo a documentação para operadores de "Intervalo" e "Continuar". Até onde posso ver, um operador 'Break' termina um operador 'while' ou 'for' ciclo passando o controle do programa para a próxima linha de código abaixo do ciclo 'while' ou 'for'. Um operador 'Continue' deixa de ler o corpo do operador 'while' ou 'for' e passa o controle do programa para a expressão em um operador 'while' ou 'Expressão 2' se um ciclo 'for' não possuir nenhuma 'Expressão 3' ou 'Expressão 3' se o ciclo 'for' possuir a 'Expressão 3'.

O que você pensa a respeito disso?

Obrigado.

Tudo em resumo: use continuar dentro de um laço para pular de volta para o ponto de entrada. use a pausa para sair imediatamente do laço.

Mais uma coisa, quebrar e continuar são operações de otimização de código, você nunca realmente precisa delas. Além disso, use-as com cuidado, pois podem levar a bugs difíceis de rastrear.

Como quase sempre na programação, um exemplo simples diz mais de 1000 palavras:

for(int i=0;i<10;i++){
 Print("1");
 continue;
 Print(2);
}

//Prints: 1111111111

for(int i=0;i<10;i++){
 Print("1");
 break;
 Print(2);
}

//Prints: 1

 

Michael, obrigado por sua explicação em palavras e em código. Ambas as explicações são explicativas.

Obrigado por sua explicação