Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 658

 
Boa tarde!!!

Percebi que estou tendo problemas para passar por ordens de j=0 a j=OrdensTotal() - a contagem continua a ser feita (ver pr).
E pode não começar em 0 e saltar por algumas dezenas.
O mais provável é que ele recomece a cada novo tick, mas não está claro porque não começa com 0, mas apenas salta através de vários números e como lidar com ele.

Alguém já encontrou este problema? Qual é a solução para esta situação?
Arquivos anexados:
test.jpg  82 kb
 
Algotrader18:
Boa tarde!!!

Notei que não sou capaz de passar por ordens de j=0 a j=OrdensTotal() - a contagem continua a se desviar (ver a anterior).
E pode não começar em 0 e saltar por algumas dezenas.
O mais provável é que ele recomece a cada novo tick, mas não está claro porque não começa com 0, mas apenas salta através de vários números e como lidar com ele.

Alguém já encontrou este problema? Qual é a solução para esta situação?

As ordens devem ser enumeradas em loop, não em cada tick. Para ser mais preciso, um tick chegou e todos os seus pedidos foram contados no loop: for(j=0;j<OrderTotal;j++)

OrdensTotal() mostra quantas ordens estão abertas (incluindo ordens pendentes, incluindo ordens em todos os símbolos... no total... Aqui está o número de pedidos abertos no terminal - este é o número de )))).

A numeração da ordem é como em arrays, de 0 a OrderTotal()-1 - esta é a última ordem, e você provavelmente tem uma [OrdersTotal()] inexistente ou alguma outra informação que é difícil de adivinhar.

 

Boa tarde!


Você pode me dizer quantos caracteres um comentário sobre um pedido pode conter?

 
Algotrader18:
Boa tarde!!!

Percebi que estou tendo problemas para passar por ordens de j=0 a j=OrdensTotal() - a contagem continua a ser feita (ver pr).
E pode não começar em 0 e saltar por algumas dezenas.
O mais provável é que ele recomece a cada novo tick, mas não está claro porque não começa com 0, mas apenas salta através de vários números e como lidar com ele.

Alguém já encontrou este problema? Qual é a saída para esta situação?
E por que precisamos de informações sobre todos os pedidos a cada tique? Não seria melhor introduzir restrições na visualização de pedidos, por exemplo, a cada novo minuto, cinco minutos, ..., hora?
 

Em alguns VPSs, a fonte da interface EA é muito maior do que a programada no código MKL.

Como mudar isso, quem sabe?


 

Pergunta: OnTimer() reinicia os cálculos quando um tick entra?

Em minha função OnTick() tenho cálculos muito grandes e nenhum dado é produzido, somente após algum tempo, às vezes quase imediatamente, às vezes são necessários alguns minutos. Tanto quanto eu sei, isto se deve ao fato de que se durante o cálculo um carrapato chegou, todos os cálculos são interrompidos e começam novamente.

Mas eu não preciso fazê-los com freqüência, então eu gostaria de colocá-los em um cronômetro?

 
Roman Sharanov:

Pergunta: OnTimer() reinicia os cálculos quando um tick entra?

Em minha função OnTick() tenho cálculos muito grandes e nenhum dado é produzido, somente após algum tempo, às vezes quase imediatamente, às vezes são necessários alguns minutos. Tanto quanto eu sei, isto se deve ao fato de que se durante o cálculo um carrapato chegou, todos os cálculos são interrompidos e começam novamente.

Mas eu não preciso fazê-los com freqüência, então eu gostaria de colocá-los em um temporizador?

Como você sabe disso? Não tem.

Até que todos os cálculos que começaram com a chegada do tique estejam concluídos, todos os tiquetaques subseqüentes são pulados.

 
Artyom Trishkin:

Como você sabe disso? Não tem.

Até que todos os cálculos que começaram quando o tique chegou estejam concluídos, todos os tiquetaques subseqüentes são pulados.

Hmm, eu vi em algum lugar que é ao contrário, então estou errado.
Pergunto-me, por que, com os mesmos cálculos quando coloco uma EA em um gráfico, os resultados às vezes são imediatos e às vezes tenho que esperar por eles por muito tempo?

É aí que entram os tiques.

 
Roman Sharanov:

Hm, eu vi em algum lugar que é vice-versa, isso significa que estou errado
Por que será que, com os mesmos cálculos, quando coloco a EA no gráfico, os resultados às vezes vêm imediatamente e às vezes tenho que esperar muito tempo por eles?

E os tiques vêm.

Ninguém pode dizer sem o código.

 
Artyom Trishkin:

Ninguém pode lhe dizer sem o código.

Eu também encontrei um sério inconveniente, muitas chamadas para CopyClose()

Você pode me dizer como copiar citações de uma série de pares de moedas em um loop?

Isso parece ser uma matriz dupla, mas a MQL não a suporta, como %.

...
double all_data[N][];
for(int i = 0; i < N; n++){
        CopyClose(Pairs[i], PERIOD_CURRENT, 1, Count, all_data[i]);
}
Razão: