Trabalhando Com Mais de uma Ativo

 

Bom dia gostaria de saber qual o parametro esta errado, porque ele nao efetua a operacao nos dois ativos.

Muito Obrigado

#include <Trade\Trade.mqh>
#include <Math\Stat\Stat.mqh>
CTrade trade;
MqlRates                      rates[];
MqlRates                      rates2[];
MqlTick                       ultimoTick;
MqlTick                       ultimoTick2;

input string Ativo1 = "EURUSD"; //ATIVO 1
input string Ativo2 = "GBPUSD"; //ATIVO 2
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(CopyRates(Ativo1,_Period,0,30,rates)<0)
     {
      Alert("Erro ao obter as informações de MqlRates: ",GetLastError());
      return;
     }
   if(!SymbolInfoTick(Ativo1,ultimoTick))
     {
      Alert("Erro ao obter informações de preços: ",GetLastError());
      return;

      if(CopyRates(Ativo2,_Period,0,30,rates2)<0)
        {
         Alert("Erro ao obter as informações de MqlRates: ",GetLastError());
         return;
        }

     }
   if(!SymbolInfoTick(Ativo2,ultimoTick2))
     {
      Alert("Erro ao obter informações de preços: ",GetLastError());
      return;
     }



   if(PositionsTotal()==0)
     {
      trade.Buy(0.01,Ativo2,ultimoTick.ask);

     }
   if(PositionsTotal()==1)
     {
      trade.Sell(0.01,Ativo1,ultimoTick.bid);
     }

  }
//+------------------------------------------------------------------+
 
Bruno Gonçalves:

Bom dia gostaria de saber qual o parametro esta errado, porque ele nao efetua a operacao nos dois ativos.

Muito Obrigado

Oi Bruno,

veja na aba <Diario> na janela Caixa de ferramentas qual erro está apresentando.

 
Qual é a melhor estratégia ao usar um EA; concentrar tudo num ativo só, ou dividir o investimento e colocar o EA em múltiplos gráficos ??? E no caso da 2ª opção a VPS que existe na plataforma MT4 é rapida o suficiente para dar bom resultado ???
 
Bruno Gonçalves:

Bom dia gostaria de saber qual o parametro esta errado, porque ele nao efetua a operacao nos dois ativos.

Muito Obrigado

   if(PositionsTotal()==0)
     {
      trade.Buy(0.01,Ativo2,ultimoTick.ask);

     }
   if(PositionsTotal()==1)
     {
      trade.Sell(0.01,Ativo1,ultimoTick.bid);
     }

Você está usando "ultimoTick" como parâmetro pros 2 ativos

   if(PositionsTotal()==0)
     {
      trade.Buy(0.01,Ativo2,ultimoTick2.ask);

     }
   if(PositionsTotal()==1)
     {
      trade.Sell(0.01,Ativo1,ultimoTick.bid);
     }
Razão: