[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 157

 
wolf05632:
Olá a todos! Tentei através da busca - não encontrei! Como quebrar uma longa linha de código em várias outras mais curtas?

Dê-me um exemplo.

Se estamos falando de comparação (se), então você pode escrever em variáveis do tipo bool - cada condição em uma linha separada, e na final se substituir apenas variáveis.

 

Caros profissionais, o testador dá um erro:

ERR_INVALID_FUNCTION_PARAMVALUE4051Valor do parâmetro da função inválida


Aqui está o log no arquivo de log:

2011.09.08 20:40:02 2010.12.28 10:00 Robô 2 EURUSD,H1: abrir #277 comprar 0.50 EURUSD a 1.32316 ok

2011.09.08 20:40:02 2010.12.28 09:00 Robô 2 EURUSD,H1: OrderClose error 4051

2011.09.08 20:40:02 2010.12.28 09:00 Robô 2 EURUSD,H1: Bilhete inválido para a função OrderClose

2011.09.08 20:40:02 2010.12.28 09:00 Robô 2 EURUSD,H1: fechar #276 comprar 0.50 EURUSD a 1.32347 ao preço 1.32114


Ou seja, ele negocia bem antes e depois. Por favor, diga-me, o que significa e como corrigi-lo?

 
TheXpert:
Então os MCs têm que passar por todo o terminal porque você não pode contar os zeros?

Que chatice? É um bug e deve ser corrigido como qualquer outro.

Na Avto-VAZ, eles provavelmente raciocinam da mesma maneira - o motorista está entediado para correr atrás do carro para recolher os pedaços de ferro que caem, e eles têm que escavar o carro inteiro por causa disso?!

 
Xaoss1990:

Caros profissionais, o testador está cometendo um erro:

Você pode me dizer o que significa este erro?
diz

2011.09.08 20:40:02 2010.12.28 09:00 Robô 2 EURUSD,H1: Bilhete inválido para a função OrderClose
 
sergeev:
diz



O que isso significa? Número de pedido errado para a função de fechamento do pedido? Isto é, está tentando fechar uma ordem que não existe?
 
Xaoss1990:
O que isso significa? O número de pedido errado para a função de fechar o pedido? Ou seja, está tentando fechar uma ordem que não existe?

Adicione alguns Alertas temporários ao módulo OrderClose(), e coloque variáveis neles (número do bilhete, etc.) - depois verifique seus valores no log.

 
chief2000:

Dê-me um exemplo.

Se se trata de comparação (se), você pode escrever em bool variáveis - cada condição em uma linha separada, e colocar apenas variáveis no final do "se".




Estamos falando de "WOW"! Suponha uma longa expressão matemática. Em VBA, digamos, para dividir um fio longo em dois, em qualquer lugar válido deste fio, precisamos colocar _

e a expressão restante pode ser acrescentada em uma nova linha.

 
chief2000:

Adicione alguns Alertas temporários ao módulo OrderClose(), e coloque variáveis (número do bilhete etc.) neles - depois verifique seus valores no log.



Acrescentei, isto é o que eu tenho:

2011.09.08 21:26:15 2010.01.13 11:00 Robô 2 EURUSD,H1: abrir #12 comprar 0.10 EURUSD a 1.45027 ok

2011.09.08 21:26:15 2010.01.13 17:00 Robô 2 EURUSD,H1: fechar #12 comprar 0.10 EURUSD a 1.45027 a 1.45083

2011.09.08 21:26:15 2010.01.13 17:00 Robô 2 EURUSD,H1: Alerta: OrderTicket() = 12, lotes = 0.1, Licitação = 1.4508

2011.09.08 21:26:15 2010 01.13 17:00 Robô 2 EURUSD,H1: Bilhete inválido para a função OrderClose

2011.09.08 21:26:15 2010 01.13 17:00 Robô 2 EURUSD,H1: OrderClose error 4051

2011.09.08 21:26:15 2010.01.14 01:00 Robô 2 EURUSD,H1: abrir #13 comprar 0.10 EURUSD a 1.45243 ok

E assim por diante....

Eu não entendo qual é a razão deste erro ((

 
Xaoss1990:

Acrescentei, foi isto que eu recebi:

2011.09.08 21:26:15 2010.01.13 11:00 Robô 2 EURUSD,H1: abrir #12 comprar 0.10 EURUSD a 1.45027 ok

2011.09.08 21:26:15 2010.01.13 17:00 Robô 2 EURUSD,H1: fechar #12 comprar 0.10 EURUSD a 1.45027 ao preço 1.45083

2011.09.08 21:26:15 2010.01.13 17:00 Robô 2 EURUSD,H1: Alerta: OrderTicket() = 12, lotes = 0.1, Licitação = 1.4508

2011.09.08 21:26:15 2010 01.13 17:00 Robô 2 EURUSD,H1: Bilhete inválido para a função OrderClose

2011.09.08 21:26:15 2010 01.13 17:00 Robô 2 EURUSD,H1: PedidoFechar erro 4051

2011.09.08 21:26:15 2010.01.14 01:00 Robô 2 EURUSD,H1: abrir #13 comprar 0.10 EURUSD a 1.45243 ok

E assim por diante....

Eu não entendo o que causa este erro ((

Eu dei um exemplo de como depurar o problema, e então você tem que resolver o código.

Aqui está um exemplo de solução em um caso: "Invalid ticket for OrderClose function" - https://www.mql5.com/ru/forum/100874

Se isso não ajudar, existe o Google.

 
chief2000:

Eu dei um exemplo de como depurar o problema, e então você tem que descobrir o código.

Aqui está um exemplo de uma solução em um caso: "Invalid ticket for OrderClose function" - https://www.mql5.com/ru/forum/100874

Se isso não ajudar, existe o Google.

Não consigo entender o que significa este erro #=4051

ERR_INVALID_FUNCTION_PARAMVALUE4051Valor do parâmetro da função inválida


O que isso significa? Número de pedido incorreto para a função de fechamento do pedido? Ou seja, está tentando fechar uma ordem que não existe?

Sai assim que o pedido é fechado com uma parada. E a parada aciona...

Ajude, por favor... Eu tenho lutado por dias....