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

 
MakarFX #:
O que há de errado com este aqui?

sim para todos, não se encaixa no formato de pergunta-resposta e é uma formatação estúpida, não se pode inserir uma linha de código no texto sem levá-lo para a linha seguinte, não se pode citar um pedaço de código corretamente: a mensagem inteira é colada do bolso.

 
Nerd Trader #:

A partir de um, o OrdersTotal retornará zero quando não houver pedidos. Mas por alguma razão.

for ( int i = OrdersTotal() ; i > 0 ; i -- )

dá um loop infinito, e assim >= não.

Existe outra plataforma mais conveniente para a comunicação sobre mql?

Este é o website dos desenvolvedores da plataforma e da linguagem MQL.

Onde mais você obteria as respostas mais precisas?

E sua pergunta é da área de mal-entendidos sobre como trabalhar com arrays.

 
Aleksei Stepanenko #:

o laço não está ajustado corretamente:

deveria ser assim:

Por quê? Todos escrevem com iguais, mas isso é verdade? Por que precisamos de uma iteração do laço se as posições são 0 ?
 
Nerd Trader #:

A partir de um, o OrdersTotal retornará zero quando não houver pedidos. Mas por alguma razão.

for ( int i = OrdersTotal() ; i > 0 ; i -- )

dá um loop infinito e assim >= não.

s há outra plataforma mais conveniente para a comunicação sobre mql?
Por que ele dá um loop infinito? ele não me dá um, apenas eu tenho mql5
 
Não, está tudo bem. Se não houver posições, então i=OrdensTotal()-1 será igual a -1. E a condição de loop i>=0 não será executada imediatamente. E o programa não entrará no laço.
 
é maior ou igual a, porque o primeiro elemento da matriz também deve ser contado, e seu índice na matriz é zero.
 
Aleksei Stepanenko #:
é maior ou igual a, porque o primeiro elemento da matriz também precisa ser levado em conta, e seu índice na matriz é zero.
Oh, certo, obrigado. Mas é uma muleta, é claro. Assim como o mql inteiro, é claro.
 

Olá!

As variáveis são declaradas da seguinte forma

input  string startHour ="00:20";
input  string endHour ="23:40";
datetime startTime, endTime;

No código mql4, a linha é assim

startTime=StringToTime(StringConcatenate(TimeToString(TimeCurrent(),TIME_DATE)," ",startHour));
endTime=StringToTime(StringConcatenate(TimeToString(TimeCurrent(),TIME_DATE)," ", endHour));

O compilador mql5 dá o erro'(TimeToString' - variável esperada),aviso(conversão implícita de 'número' para 'string')

Você poderia me dizer como corrigi-lo?

 
grimc124 #:

...

Você pode me dizer como consertá-lo?

Não duplique o código (princípio DRY = Não se repita) Use funções. Por exemplo:

datetime SetTime(datetime dtime, string stime) {
    return StringToTime(TimeToString(dtime, TIME_DATE) + " " + stime);
}

Qualquer cadeia inválida é convertida em tempo zero

 
Artyom Trishkin #:

Este é o website dos desenvolvedores da plataforma e da linguagem MQL.

Onde mais você obteria as respostas mais precisas?

Sua pergunta representa uma falta de compreensão de como trabalhar com arrays.

OrdensTotal, a 1 ordem retorna 1 e não 0. Quando há 0 ordens, retorna 0.

"Este é um website dos desenvolvedores da plataforma e da linguagem MQL. Onde mais você obteria as respostas mais precisas? "

- Só porque é um recurso do desenvolvedor não significa que seja o lugar certo para fazê-lo, como se houvesse recursos projetados especificamente para o formato de perguntas e respostas.

Razão: