Erros, bugs, perguntas - página 2943

 
Como em MQL, sem recorrer ao WinAPI, como posso saber se o terminal tem o foco do utilizador (ou seja, o utilizador tem uma janela activa)? Agora algumas funções, tais como ler o estado do teclado (como TerminalInfoInteger(TERMINAL_KEYSTATE_CAPSLOCK)) retornam valores diferentes dependendo da actividade da janela com o mesmo estado do teclado. Isto é uma chatice.
 
Alexandr Sokolov:

MT5 construir 2755

O terminal não conta todas as carraças

Porque tirou uma tal conclusão?

 
Alexandr Sokolov:

MT5 construir 2755

O terminal não conta todas as carraças



Experimente desta forma

datetime st = 0;
int tics = 0;

//------------------------------------------------------------------

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   
   if(prev_calculated == 0)
{
 ArraySetAsSeries(time,true);
 ArraySetAsSeries(tick_volume,true);
 st = time[0];
}   
   else if(time[0] != st)
     {
      tics++;
      Alert("T - ",tics," TV - ",tick_volume[0]);
     };
   
  //-----------------------------------------------------------------
   return(rates_total);
  }
 
Renat Fatkhullin:

Porque tirou esta conclusão?

Porque como reparei, OnCalculate é chamado quando os preços Ask e Bid mudam, mas tick_volume[] conta apenas as mudanças Bid

 

O seguinte problema: tinha um Expert Advisor numa conta de compensação, estava a abrir e a fechar posições, adicionei um contrato manualmente à posição aberta pelo robot e após algum tempo o registo do Expert Advisor mostrou erros:

Erro ao abrir uma posição: 4753 - Posição não encontrada

O mais interessante é que a posição é fechada, a auto-negociaçãoé desactivada e a EA é eliminada do gráfico, mas continuam a aparecer erros.


 
Alexandr Sokolov:

Porque reparei que a OnCalculate é chamada a Pedir e Licitações alterações de preços, mas tick_volume[] conta apenas as alterações de Licitações

OnTick é chamado a qualquer alteração de preço e não só (o terminal pode requerer um novo cálculo em muitas ocasiões, tais como bombeamento adicional de dados ou redistribuição de conjuntos de dados históricos).

Ovolume do tick, bem como o gráfico, é baseado na alteração do preço de oferta. Na execução da troca, é utilizado um contador de volume real separado, onde todas as transacções de compra e venda são contabilizadas.

 
Sayberix:

O seguinte problema: tinha um Expert Advisor numa conta de compensação, estava a abrir e a fechar posições, adicionei um contrato manualmente à posição aberta pelo robot e após algum tempo o registo do Expert Advisor mostrou erros:

Erro ao abrir uma posição: 4753 - Posição não encontrada

O mais interessante é que a posição é fechada, a auto-comercializaçãoé desactivada e o Expert Advisor é eliminado do gráfico.


Isto depende da lógica do Conselheiro Especialista.

Pode recordar e pensar apenas nas suas próprias operações e a sua intervenção manual pode estragar a lógica do Conselheiro Especialista.

 
Renat Fatkhullin:

Depende da lógica da própria EA.

Só pode recordar e pensar nas suas próprias operações e a sua intervenção manual pode estragar a lógica do Expert Advisor.

Eu compreendo, mas porque é que este erro permaneceu no terminal? Eu disse-vos que todas as posições estão fechadas, a auto-comercialização está desactivada, o Expert Advisor está descarregado e até o terminal foi reiniciado!

 
O K-meleon browser não reflecte texto em mensagens privadas(ver imagem do ecrã). Magooso, no entanto! De alguma forma apenas em privado. O browser é o mais fácil e rápido, mas não está generalizado e falta uma fonte em Moz? Ajudar quem sabe. O hardware é velho e os navegadores pesados mal puxados.
Arquivos anexados:
 
Sayberix:

Eu compreendo, mas porque é que este erro permaneceu no terminal? Eu disse-vos que todas as posições estão fechadas, a auto-negociação está desligada, o Expert Advisor está descarregado e eu até reiniciei o terminal!

Os milagres não acontecem. O seu Expert Advisor está a correr num dos gráficos.