Teste de fundo de EA Multimoedas - página 2

 
No meu caso, a solução foi o método IsNewBar() e ligar o método de execução "Every Tick", a menos que minha EA trabalhe apenas com preços abertos...
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
trendick:

Ali, o exemplo que mencionei acima é o EA ao qual você se refere, que é a fonte da função IsNewBar() que você mencionou, e já a utiliza.

Como você explica isso?

Eu estava falando da minha EA que negocia com dois símbolos.um símbolo recebe os dados com ontick()

os outros usos Isnewbar()

quando eu mudo sua maneira de obter dados o resultado é o mesmo. você pode tentar isso e comparar os resultados. eu também tentei obter ambas as citações usando isewbar como a EA discutida acima e tive os mesmos problemas, porém obtendo as citações do símbolo original com ontick() o problema foi resolvido.

Claro que há um problema com o testador que acabei de mostrar como consegui obter meus resultados desejados.

 
kgo:
No meu caso, a solução foi o método IsNewBar() e ligar o método de execução "Every Tick", a menos que minha EA trabalhe apenas com preços abertos...

Você pode elaborar? talvez um trecho de código para demonstrar? Você pode lidar com 3 moedas?
 
trendick:
Você pode elaborar? talvez um trecho de código para demonstrar? Você pode lidar com 3 moedas?

Ok, estou entendendo o que você quer dizer. Um dos pares é usado para acionar uma nova abertura de barra e para o resto você lê instantaneamente os carrapatos.

 

Kgo, mas ainda assim isto não resolve o problema no meu caso. Você poderia mostrar um trecho do que você faz?

Obrigado, trendick

 
Obrigado TheEconmist! (Pensei que vocês se agarrassem à hipótese da caminhada aleatória...:-): estou verificando isso imediatamente.
 
Fiz um novo teste e meu cargo anterior está incorreto. O método IsNewBar() não ajuda. TheEconomist mostra um bom exemplo de como o OnTick() tem que ser implementado para a EA Multi-Currency.
 
Você pode acreditar que eu nem sei onde está esse método IsNewBar()? Qual classe?
 
TheEconomist:
Você pode acreditar que eu nem sei onde está esse método IsNewBar()? Qual classe?

Estamos nos referindo ao Método a partir do artigo 105. Aqui está (apenas o início e o fim são relevantes):

Aqui está:

/+X================================================================X+
//| IsNewBar() function                                              |
//+X================================================================X+
bool IsNewBar(int Number,string symbol,ENUM_TIMEFRAMES timeframe)
  {
//----+
   static datetime Told[];
   datetime Tnew[1];
//----+ Declare variable to store sizes of variables arrays
   static int Size_=0;

//----+ Change size of variables arrays
   if(Number+1>Size_)
     {
      uint size=Number+1;
      //----
      if(ArrayResize(Told,size)==-1)
        {
         string word="";
         StringConcatenate(word,"IsNewBar( ",Number,
                           " ): Error!!! Unable to change sizes of variables arrays!!!");
         Print(word);
         //----          
         int error=GetLastError();
         ResetLastError();
         if(error>4000)
           {
            StringConcatenate(word,"IsNewBar( ",Number," ): Error code ",error);
            Print(word);
           }
         //----                                                                                                                                                                                                  
         Size_=-2;
         return(false);
        }
     }

   CopyTime(symbol,timeframe,0,1,Tnew);
   if(Tnew[0]!=Told[Number])
     {
      Told[Number]=Tnew[0];
      return(true);
     }
//----+
   return(false);
  }