codigo base para abrir negociaçao apenas na proxima barra

 
preciso de ajuda para desenvolvimento de EA, tenho uma base em teste, mas nao consigo fazer abrir somente barra apos barra, alguem me ajuda?
 

Veja se essa classe te ajuda: 

 

class CNewBar
{
        private:
                datetime Time[], LastTime;
        
        public:
                void CNewBar();
                bool CheckNewBar(string pSymbol, ENUM_TIMEFRAMES pTimeframe);
};


void CNewBar::CNewBar(void)
{
        ArraySetAsSeries(Time,true);
}


bool CNewBar::CheckNewBar(string pSymbol,ENUM_TIMEFRAMES pTimeframe)
{
        bool firstRun = false, newBar = false;
        CopyTime(pSymbol,pTimeframe, 0,2, Time);
        
        if(LastTime == 0) firstRun = true;
        
        if(Time[0] > LastTime)
        {
                if(firstRun == false) newBar = true;
                LastTime = Time[0];
        }
        
        return(newBar);
 
darlans_aguiar:
preciso de ajuda para desenvolvimento de EA, tenho uma base em teste, mas nao consigo fazer abrir somente barra apos barra, alguem me ajuda?

Olá darlans_aguiar,

Recomendo ir "direto à fonte", e entender o modo de funcionamento do manipulador de eventos "nova barra".

Para isso, por favor dê uma lida nesse artigo: https://www.mql5.com/pt/articles/159

Nesse artigo você também encontra um exemplo de código que pode ser utilizado, não necessitando, necessariamente, de classe.

Abraços,
Malacarne

Handler de evento "nova barra"
Handler de evento "nova barra"
  • 2014.02.06
  • Konstantin Gruzdev
  • www.mql5.com
A linguagem de programação é capaz de resolver problemas em um nível completamente novo. Mesmo as tarefas que já tenham soluções, graças à programação orientada a objeto elas podem atingir um nível ainda maior. Neste artigo, consideramos um exemplo especialmente simples de verificação de uma nova barra em um gráfico, que foi transformado em uma ferramenta bastante poderosa e versátil. Qual ferramenta? Descubra neste artigo.
 
Malacarne:

Olá darlans_aguiar,

Recomendo ir "direto à fonte", e entender o modo de funcionamento do manipulador de eventos "nova barra".

Para isso, por favor dê uma lida nesse artigo: https://www.mql5.com/pt/articles/159

Nesse artigo você também encontra um exemplo de código que pode ser utilizado, não necessitando, necessariamente, de classe.

Abraços,
Malacarne

nossa vc é mestre cara

 
darlans_aguiar:

nossa vc é mestre cara

mas nao consigo adicionar no meu ea
 
darlans_aguiar:
mas nao consigo adicionar no meu ea

Olá darlans_aguiar,

A primeira função do artigo ( isNewBar() ) já basta para simular corretamente o manipulador de eventos "nova barra".

Basta literalmente copiar e colar a função para o seu código.

Abraços,
Malacarne 

 
Malacarne:

Olá darlans_aguiar,

A primeira função do artigo ( isNewBar() ) já basta para simular corretamente o manipulador de eventos "nova barra".

Basta literalmente copiar e colar a função para o seu código.

Abraços,
Malacarne 

Como fazer para que o envento newBar nao atrapalhe a busca pelo melhor timeframe do robo no OnTester?

 

Ex: Range de optimização de Time Frame de M15 a H1.

Como fazer para que o On Tester M15 nao solte 4 entradas consecutivas(uma para cada newbar) no caso TF Optimização H1?

 Obs: nao quero trabalhar com Limitador de Posição.

desde ja grato

 

Att

PH 

 
PH2000:

Como fazer para que o envento newBar nao atrapalhe a busca pelo melhor timeframe do robo no OnTester?

 

Ex: Range de optimização de Time Frame de M15 a H1.

Como fazer para que o On Tester M15 nao solte 4 entradas consecutivas(uma para cada newbar) no caso TF Optimização H1?

 Obs: nao quero trabalhar com Limitador de Posição.

desde ja grato

 

Att

PH 

Se no range de otimização existe a opção de escolha de timeframe basta fazer o mesmo no teste de NewBar, ou seja, fazer ele também levar em contra o timeframe.
Razão: