Erros, bugs, perguntas - página 1820

 
Maksym Mudrakov:

input string Somevalue = "Maxim";
...
void OnTick(){
   Comment(Somevalue);
}


O programa MQL5 imprime o comentário:

"1487811600"

Porque é que isso acontece? Como emitir o valor correcto da cadeia de caracteres?

Procure por um erro. Ou postar código reprodutível completo. Código de verificação

//+------------------------------------------------------------------+
//|                                                        Test.mql5 |
//|                                      Copyright 2017, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property script_show_inputs
//--- input parameters
input string Somevalue="Maxim";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Comment(Somevalue);
  }
//+------------------------------------------------------------------+


não reproduz o erro.

Também recomendo que substitua Comentar por Imprimir - há uma hipótese de outro programa sobrepor trivialmente o comentário no gráfico.

Arquivos anexados:
test.mq5  2 kb
 
reiniciou a EA num gráfico diferente, está a funcionar correctamente. Isso é estranho. Mas obrigado pela ajuda.
 
Maksym Mudrakov:
reiniciou a EA num gráfico diferente, está a funcionar correctamente. Isso é estranho. Mas obrigado pela ajuda.
Especialmente se tiver uma entrada variável - uma variável deste tipo não pode ser reatribuída no código - isto deixa a opção de um segundo programa (EA ou indicador) que secretamente mexe em torno e emite o seu comentário.
 
fxsaber:

Quem entende a resposta, por favor explique. Ainda não compreendo porque é que a OrderSend é considerada normal

Tanto quanto sei, a OrderSend apenas espera até a encomenda ser colocada em fila de espera para processamento no servidor, mas não até o resultado do processamento.
 
Os agentes de teste continuam a desistir durante a optimização. O agente local não pode ligar-se a 127.0.0.1:3000 e aborta os testes.
 
Комбинатор:
Tanto quanto sei, a OrderSend apenas espera até a encomenda ser colocada em fila de espera para processamento no servidor, mas não até o resultado do processamento.
É aqui que não está claro.
 
EncomendarEnviar devoluções verdadeiras, com a seguinte linha a aparecer no registo
2017.02.23 14:18:58.013 Trades  '5245006': failed buy limit 0.01 USDCNH at 6.85199 [Request rejected due to absence of network connection]
 

Há um guião de reprodução de OrderSend-bug na aplicação. Percorre o Market Watch e abre o BuyLimit em cada símbolo. Depois disso, tenta imediatamente modificá-lo (define TP) e depois apagá-lo. Se a modificação ou eliminação da encomenda for impossível, o guião pára com uma mensagem correspondente.

Tudo é feito através de OrderSend sincronizado. E quase imediatamente deparamo-nos com uma situação em que, após uma EncomendaSendada com êxito (definição de BuyLimit), nada pode ser feito (modificar ou apagar) com a encomenda pendente.

Resultado de funcionamento

2017.02.23 14:24:49.828 OrderSend-StartedBug (Si-3.17,M1)       ModifyError GetLastError() = 4756 EnumToString((ENUM_ORDER_STATE)OrderGetInteger(ORDER_STATE)) = ORDER_STATE_STARTED
2017.02.23 14:24:49.828 OrderSend-StartedBug (Si-3.17,M1)       DeleteError GetLastError() = 4756 EnumToString((ENUM_ORDER_STATE)OrderGetInteger(ORDER_STATE)) = ORDER_STATE_STARTED

Caros programadores, isto é ou não um bug OrderSend ou não?


SZZ, no entanto, OrderSend at TRADE_ACTION_DEAL não termina enquanto a ordem correspondente tiver o status STARTED.

Toda a diversão do guião pode ser experimentada lentamente no servidor FXOpen-MT5.

Arquivos anexados:
 
fxsaber:

quando umaposição é aberta com sucesso por uma ordem de mercado, obtém-se sempre um Resultado.deal zero?

Do SD
Não é garantido que o bilhete de negócio resultante seja preenchido. O seu preenchimento ou não depende do modo de execução do instrumento e das configurações do servidor em particular.
Quem criou um resultado.deal não zero - tomar medidas.
 
OpenCL not found. Error code=5101
Error in OpenCL initialization. Error code=5101
Os gráficos integrados no CPU não suportam OpenCL? Também não é como se a GPU fosse necessária para o OpenCL.