Erros, bugs, perguntas - página 760

 
Karlson:

Parece-me, que as barras de TF mais antigas raramente "desaparecem".

Outra variante é obter o tempo desta barra simultaneamente através de CopyTime().

E terceira opção (provavelmente a mais fácil) usar o CopyRates em estrutura de uma só vez.

Obrigado... A questão é que trabalho com M1 e vejo frequentemente barras assíncronas com o mesmo índice em símbolos diferentes. A comparação de datas é também uma opção. Verei, que variante é mais óptima por velocidade de cálculo...
 
Alex5757000:
Obrigado... A questão é que trabalho no M1 e observo frequentemente barras assíncronas com o mesmo índice em instrumentos diferentes. A comparação de datas é também uma opção. Vou analisar que variante é mais óptima em termos de velocidade de computação.
aqui algo sobre sincronização.
 
Lizar:
aqui algo sobre sincronização.

Obrigado! Artigo útil... Ou seja, para cada barra do símbolo actual usando a função CopyTime obtemos a hora e depois copiamos os dados de outro símbolo até esta hora.

Mas em vez de eventos personalizados utilizaria a função OnTimer, porque é muito complicado pendurar um "agente-indicador" em cada símbolo...

 
Alex5757000:

Obrigado! Artigo útil... Ou seja, para cada barra do símbolo actual usando a função CopyTime para obter a hora, e depois copiar os dados de outro símbolo até esta hora.

Pode fazê-lo desta forma, se estiver satisfeito com a sincronização relativamente ao símbolo actual.

Mas em vez de eventos personalizados utilizaria a função OnTimer, porque é demasiado pesado para pendurar um "agente-indicador" em cada símbolo...

Utilize OnTimer, tudo depende dos seus requisitos de qualidade de sincronização.
 
Новая версия MetaTrader 4 Client Terminal build 432 - MQL4 форум
  • www.mql5.com
Новая версия MetaTrader 4 Client Terminal build 432 - MQL4 форум
 

Provavelmente a maior decepção para mim é o comportamento da SeriesInfoInteger, CopyTime, CopyOpen e funções semelhantes.

Acontece que mesmo nos fins-de-semana, quando não são recebidas novas citações, e os dados existentes são actualizados,

estas funções podem dar resultados diferentes com os mesmos parâmetros. Há um problema com o controlo dos dados das séries cronológicas já presentes no terminal.

Tem-se notado que o problema ocorre quando se trabalha em modo de múltiplas moedas após a recompilação dos indicadores, bem como quando se alteram os prazos e se reinicia o terminal.

CopyOpen() não produz um erro se tentarmos copiar dados de um pedaço de história inexistente, especificando a data do seu início. A função produz o valor da cotação a partir de uma barra desconhecida.

Este comportamento da função foi detectado no par USDHKD, para o qual não há dados de vários meses no servidor MQ.

Graças à MQ para as novas armadilhas!

 

void OnStart()

 {

   Alert("start");

   string arr1[178365];

   char arr2[178365];

   arr1[100002]="hello";

   Alert(arr1[100002]);

   Alert("finish");

  }

Em tempo de compilação dá avisos queo tamanho das variáveis locais é demasiado grande (mais de 512kb) 55.mq5 27 6

Em execução2012.07.01 14:37:26 55 (GBPUSD,MN1) transbordamento da pilha

Não posso usar 2 pequenas arrays? É assim tanto?

Utilizo Metatrader não para comércio, utilizo-o para outros cálculos.

 

Stasikusssss:

...

Eu tentaria isto: colocar arrays numa classe ou numa estrutura (não me lembro se se pode atribuir memória dinâmica para uma estrutura), atribuir memória para a classe através de novo;

Ou colocar a definição de matrizes em função separada, e brincar com o #pilha de propriedades https://www.mql5.com/ru/docs/basis/preprosessor/compilation. Se for a segunda variante, as matrizes não podem ser estáticas.

Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
Sobre citações inexistentes: por favor forneça um exemplo reproduzível no seu código. Deve haver um erro no seu código.
 
Não é razoável fazer matrizes enormes na pilha (mais de 512 Kb), como o compilador nos avisou de imediato.

Se forem necessárias grandes matrizes, estas devem ser dinamizadas com alocação explícita de memória.
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
  • www.mql5.com
Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5