![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
Nesse caso, sem ambigüidade, CopyRates do primeiro bar 10s. E não para ser chamado a cada carrapato, mas o suficiente ao aparecimento de um novo bar.
Como posso saber se um novo bar apareceu sem o CopyRates? É preciso pegar primeiro o novo evento do bar. Sem CopyRates é possível? Estou um pouco confuso).
É isso que significa, eu nunca lidei com este tema no MT5. Por favor, entenda))).
Oh, Vladimir. Embora eu não tenha dito nada, mas infelizmente, não fiz nenhuma reserva. Se precisarmos apenas de preço ou tempo de abertura, por exemplo, não há necessidade de usar CopyRates(), neste caso, CopyOpen ou iOpen é suficiente... respectivamente CopyTime ou iTime. Ela é escolhida de acordo com suas preferências religiosas.
E vou acrescentar minha advertência: em termos de custos de desempenho, não há diferença apreciável. Assim, apenas os preconceitos religiosos permanecem.O fxsaber estava verificando o custo do CopyRates() - é mais caro do que obter a propriedade necessária separadamente. Não se aplica à situação em que precisamos obter todos os preços de uma só vez.
E como eu sei que um novo bar apareceu sem o CopyRates? É preciso pegar primeiro o novo evento do bar. É possível fazer isso sem o CopyRates? Estou um pouco confuso).
Sem prestar atenção a nada, monitorar o aparecimento de um novo bar e chamar o CopyRates
Há muitas funções e maneiras diferentes de detectar um novo bar no site.
Como posso saber se um novo bar apareceu sem o CopyRates? É preciso pegar primeiro o novo evento do bar. Sem CopyRates é possível? Estou um pouco confuso).
É isso que significa, nunca lidou com este tema no MT5. Por favor, entenda)).
A maneira mais fácil é comparar o tempo de abertura do bar atual. Se não for igual ao anteriormente memorizado - tenha uma nova barra - faça o que precisa ser feito na nova barra e memorize desta vez para a próxima verificação.
Sem prestar atenção a nada, rastreamos o aparecimento de um novo bar e chamamos o CopyRates
Há muitas funções e maneiras diferentes de definir uma nova barra no site.
fxsaber fez uma verificação de custo CopyRates() - é mais caro do que obter a propriedade necessária separadamente. Isto não se aplica à situação em que você precisa obter todos os preços de uma só vez.
A maneira mais fácil é comparar o tempo de abertura do bar atual. Se não for igual ao anteriormente memorizado - tenha uma nova barra - faça o que precisa ser feito na nova barra e memorize desta vez para a próxima verificação.
Então, você chama os CopyRates em cada carrapato? Caso contrário, como você saberia que o tempo de abertura do bar atual mudou?
você pode tanto classe CNewbar, ou procurar no fórum por NewBar
SZZ: artigo completo!https://www.mql5.com/ru/articles/159
Igor, você precisa ir para a primeira série. Eles ensinam as cartas lá e depois que você aprender, entenderá a diferença entre CopyRates e CopyBuffer.
Aqui está uma sugestão melhor para resolver este problema SEM taxas de cópia
OK, o habitual...oops, oops...e não uma única linha de código ))))
Citei meu exemplo para mostrar que nem sempre é conveniente (e raramente necessário) obter um conjunto de OHLC consecutivos. Em tarefas práticas, geralmente precisamos obter uma seleção de valores OHLC de diferentes barras (os indicadores não são levados em conta)
Ok, cuidado!
Então, então, em cada carrapato telefonar CopyRates? Caso contrário, como sabemos que o tempo de abertura do bar atual mudou?
Sim, a cada tique, verificamos o tempo:
E, em poucas palavras, é assim:
Eu só escrevi na minha mão - para mostrar a idéia, não a precisão da escrita
Então, a cada carrapato devemos chamar a CopyRates? Caso contrário, como saber que o tempo de abertura do bar atual mudou?
if(prevTime!=iTime(...)))
{
// tempo atual de abertura do bar alterado
}
prevTime=iTime(...);