![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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 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.
Há 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...
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...
há um problema.
MT4
detalhes:
https://www.mql5.com/ru/forum/139759/page13#655069
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.
Se forem necessárias grandes matrizes, estas devem ser dinamizadas com alocação explícita de memória.