Indicar uma nova barra - página 3

 

Olá Alain,

obrigado por seus comentários e melhorias.

Devo voltar à minha primeira versão na qual "bool NewBar" é um interruptor variável global através de uma chamada de função em OnTick().

Ou eu faço dele um pequeno objeto. Talvez a opção mais inteligente.


E - de causa - "nunca faça o mesmo cálculo duas vezes".

Helmut

 
datetime iTime[];
datetime recent;
datetime projection;
int OnInit()
  {
//---
  int pull=CopyTime(NULL,0,0,1,iTime);
  recent=iTime[0];
  projection=recent+PeriodSeconds();
//---
   return(INIT_SUCCEEDED);
  }

void OnTick()
  {
//---
  if(TimeCurrent()>=projection)
   {
   Print("New Bar "+TimeToString(projection,TIME_DATE|TIME_MINUTES));
   projection=projection+PeriodSeconds();
   }
  }
 

@ Doerk Hilger

O idioma é o mesmo, mas eles têm um pequeno subconjunto de funções não em comum<br / translate="no">

Oh meu Deus... definitivamente não!

Como MQ apontou na descrição do produto

MetaQuotesLanguage 5 é baseado nos conceitos da conhecida e popular linguagem deprogramação С++. MQL5 é também uma linguagem de programação de alto nível orientada a objetos.

https://www.metatrader5.com/en/automated-trading/mql5

Além de algumas diferenças no manuseio de estruturas, ponteiros e endereços, o maior ponto é: A MQL5 fornece todas as características de uma linguagem de programação orientada a objetos que permite um paradigma de programação completamente diferente. Deste ponto de vista, a MQL5 claramente pertence a outra classe e também a outra geração de linguagens que a MQL4.

Outra vantagem é a velocidade. Não consigo me lembrar onde li isto: MQL5 é uma inexecução cem vezes mais rápida que a MQL4.

E aí vem o lado negativo: é mais rápido na execução MAS criar um programa é muito lento se você precisar sefamiliarizar com conceitos de programação em um nível profissional primeiro.

O que leva ao problema da MQ. Por um lado, eles precisam oferecer um ambiente moderno de desenvolvimento profissional a fim de obter ou manter o mercado de profissionais, por outro lado não podem se permitir perder todos os clientes particulares e semiprofissionais que são interessados em comerciar e não em programar ciência.




 
A MQ fez muito para gerar confusão neste ponto.

Talvez você esteja certo.

Vamos ver, o que podemos fazer, para trazer mais clareza a esta questão.

Eu acho que seria muito útil, se as pessoas colocassem suas questões MQL4 no fórum MQL4, enquanto aquelas, tendo questões MQL5, deveriam ser colocadas no fórum MQL5.

Parece muito fácil . . . o que você acha?

No início, seria útil se o moderador colocasse uma mensagem errada no fórum certo, deixando uma dica "desculpe, fórum errado - veja ...".

Willbur

 

@LorentzosRoussos

Está ficando cada vez mais fácil ;-)

O que me preocupa é a questão se o TimeCurrent() é sincrônico com as barras em todos os casos.

Vou fazer uns testes de 2h na segunda-feira.

Willbur



 
deveria ser: 24 h
 
Willbur:

@LorentzosRoussos

Está ficando cada vez mais fácil ;-)

O que me preocupa é a questão se o TimeCurrent() é sincrônico com as barras em todos os casos.

Vou fazer uns testes de 2h na segunda-feira.

Willbur



Alain pode me corrigir sobre isso, mas você pode encontrar lacunas nos casos em que no horizonte de tempo de um bar lá, onde não há carrapatos, então nenhuma barra estará no lugar.
 
Willbur:

@ Doerk Hilger

Oh meu Deus ... definitivamente não!

Como MQ apontou na descrição do produto

Além de algumas diferenças no manuseio de estruturas, ponteiros e endereços, o maior ponto é: A MQL5 fornece todas as características de uma linguagem de programação orientada a objetos que permite um paradigma de programação completamente diferente.




Definitivamente sim :) Mas eu sei o que você quer dizer, sempre pensei que estava programando MQL5, porque eu codifico apenas orientado a objetos, mas como aprendi agora, sua MQL4 "aprimorada" desde que construiu 600, que simplesmente não é nada mais do que MQL5, mas, como foi dito, com pequenas diferenças no subconjunto de funções - e uma vez que esta MQL4 construída não é mais uma outra linguagem. Na verdade, a Enhanced-MQL4 é MQL5 para MetaTrader4. Era isso que eu queria dizer com a parte da confusão. Para mim, a MQL5 sempre foi OOP e a MQL4 foi apenas top-down-spaghetti. E eu não gosto de spaghetti ;)

Editar: De onde foi tirada sua declaração acima e quando eles a postaram? Porque na verdade isso significaria, que a primeira suposição estava certa: É a MQL5 .... confusão em seu nível mais alto ;)

 
Eu adoro esparguete.
 
Doerk Hilger:

Definitivamente sim :) Mas eu sei o que você quer dizer, sempre pensei que estava programando MQL5, porque eu codifico apenas orientado a objetos, mas como aprendi agora, seu MQL4 "aprimorado" desde que construiu 600, que simplesmente nada mais é do que MQL5, mas, como foi dito, com pequenas diferenças no subconjunto de funções - e como este MQL4 construído não é mais uma outra linguagem. Na verdade, a Enhanced-MQL4 é MQL5 para MetaTrader4. Era isso que eu queria dizer com a parte da confusão. Para mim, a MQL5 sempre foi OOP e a MQL4 foi apenas top-down-spaghetti. E eu não gosto de spaghetti ;)

Editar: De onde foi tirada sua declaração acima e quando eles a postaram? Porque na verdade isso significaria, que a primeira suposição estava certa: É a MQL5 .... confusão em seu nível mais alto ;)

Enhanced-MQL4 ?

Nunca ouvi falar disso.

Talvez você devesse ler a documentação em ambas as plataformas antes de se convencer de que você sabe o que está fazendo.