Erros, bugs, perguntas - página 1882

 
vinnipyx:
Tarde. Tenho um bug no MT5: não salva definições apesar de uma marca de tick. Especificamente, cada vez que o corro, todas as barras de ferramentas aparecem escondidas e tenho de as abrir novamente cada vez que o corro. No próximo arranque, os painéis aparecem brevemente, mas depois desaparecem (aparentemente após estabelecer ligação com o corretor). Como é que isto pode ser corrigido (corretor de abertura)?


Por acaso carregou em F11?

Ecrã inteiro

Ecrã inteiro

Activar/desactivar o modo ecrã inteiro. Esta opção desactiva as barras de ferramentas, a barra de estado e fecha todas as janelas de serviço. A barra de título do MetaEditor, menu principal, janela de edição de código e separadores de ficheiros permanecem no ecrã.

 
Vladimir Karputov:


Por acaso carregou em F11?

Ecrã inteiro

Activar/desactivar o modo ecrã inteiro. A activação desta opção desactiva as barras de ferramentas, a barra de estado e fecha todas as janelas de serviço. A barra de título do MetaEditor, menu principal, janela de edição de código e separadores de ficheiros permanecem no ecrã.

Muito obrigado! Estou farto desta situação durante uma quinzena. Sim, devo ter pressionado acidentalmente f1.
 
fxsaber:

É necessário obter um histórico de barras/tick para vários milhares de unidades recentes ao mesmo tempo para todos os símbolos no Market Watch (várias centenas). E actualizá-lo em tempo real.

A arquitectura do MT5 está optimizada para estes screencasts? Será o novo tipo de programa capaz de resolver tais tarefas sem muletas?

De que necessito para levantar todas as caches do estado frio e torná-las reais?

E como fazer um testador permanecer vivo quando se corre um screener?


Se quiser obter um screener como o Finwiz, com indicadores técnicos, eles também se queixam que cada cabo come muita memória, que o MC promete lutar com ele. Por isso, se for examinado com alguma periodicidade de revisão do mercado, necessita de muita memória, e pela primeira vez, de muito tempo.
 
kaus_bonus:

porque precisa de um screener no testador que não sei.
É um multivolume de uma vez por cem símbolos, onde cada OnTimer analisa a história do tick de todos os símbolos.
 
fxsaber:
É uma multi-coluna de uma só vez por cem caracteres, onde cada OnTimer analisa a história do tick de todos os caracteres.


forma normal de cometer suicídio))

quando se corre no testador, todos os dados de tiquetaque são re-preparados?! 1 mês/ ticker é cerca de 100 MB. se toda a visão geral do mercado, então...o disco tem de ser de borracha, mas quanto tempo demora?

Se se lembrar que a cache do agente testador é limpa após 5 minutos de inactividade do agente, imagine: esteve a preparar dados durante uma ou duas horas, deixou-os durante 5 minutos e pronto, tem de começar de novo.

 
kaus_bonus:

forma normal de cometer suicídio))

Daí as perguntas. Se bem entendi, o testador está a sair-se bem na infra-estrutura S#. Posso estar enganado.
 

Parece estar habituado ao MT5, pois não me lembro de nada no registo de MT4 da execução da OrderSend.

Desde que construção MT4 é este tratamento não autorizado do registo? No MT5, apenas as acções especiais de impressão e similares do utilizador (+ erros de execução e o botão de auto-negociação) podem aí fazer registos. Ou foi sempre assim no MT4?

 
fxsaber:

É necessário obter um histórico de barras/tick para vários milhares de unidades recentes ao mesmo tempo para todos os símbolos no Market Watch (várias centenas). E actualizá-lo em tempo real.

A arquitectura do MT5 está optimizada para estes screencasts? Será o novo tipo de programa capaz de resolver tais tarefas sem muletas?

De que preciso para levantar todas as caches do estado frio e torná-las reais?

Aquecimento de caches
#define _CS(A) ((!IsStopped()) && (A))
#define  TOSTRING(A) #A + " = " + (string)(A) + "\n"

void OnStart()
{
  ulong FullCycle = 0;
  MqlTick Ticks[];
  
  while (_CS(true))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = SymbolsTotal(true) - 1; _CS(i >= 0); i--)
      Comment(TOSTRING(SymbolsTotal(true)) + TOSTRING(SymbolName(i, true)) +
              TOSTRING(i) + TOSTRING(CopyTicks(SymbolName(i, true), Ticks)) +
              TOSTRING(MQLInfoInteger(MQL_MEMORY_USED)) + TOSTRING(MQLInfoInteger(MQL_MEMORY_LIMIT)) +
              TOSTRING(FullCycle));
              
    FullCycle = GetMicrosecondCount() - StartTime;              
  }
}

Podemos ver claramente pelo tempo de execução do guião que o CopyTicks não é assíncrono. MQL_MEMORY_USED está a mentir.

E o mais importante, algo tropeça nas caches (Metaquotes-Demo).

Por favor, correr com pelo menos uma centena de símbolos em Market Watch.

Além disso, o problema com as caches apenas em alguns caracteres é perceptível. O resto está bem.

Parece estar preso em CopyTicks nestes caracteres

 
Konstantin:

1. Quando é que haverá uma descrição do sindicato na documentação?

2. é um substituto para estruturas simples?

3. a conversão do tipo sindical será apoiada como descrito para as estruturas na documentação?

1. União acrescentada

2. Nem por isso - é possível obter uma representação diferente dos dados

3. não

 

MT5 1598

void OnStart()
{
  string Array[];
  
  ArrayInitialize(Array, "");
}

Registo do compilador

'ArrayInitialize' - no one of the overloads can be applied to the function call Test2.mq5       5       3
could be one of 8 function(s)   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
1 error(s), 0 warning(s)                2       1

As assinaturas da função serão visíveis no registo?