Alguma duvida sobre Book de ofertas? Pergunte aqui!

 

Winter,

Estou tentando implementar a leitura do book e não está retornando nenhuma informação nesse trecho:

MqlBookInfo aLongBookInfo[];
MarketBookGet("PETR4", aLongBookInfo);
   
   if(ArraySize(aLongBookInfo) == 0)
   {
      Comment("Não foi possível retornar o book para o ativo de compra");
      return;
   }

Sempre entrando no IF. Estou testando na Modal, em dados reais e no histórico, ocorrendo o mesmo erro em ambos.

Sabe o pq?



Obrigado!

 

Boa noite,


Como não postou o código fica meio complicado entender, mas pra min vc não setou o symbolo no OnInit()


MarketBookAdd(m_symbol);



como disse analisar apenas um if dentro de um contexto fica meio complicado.

 
Jonathan Pereira:

Boa noite,


Como não postou o código fica meio complicado entender, mas pra min vc não setou o symbolo no OnInit()




como disse analisar apenas um if dentro de um contexto fica meio complicado.

Jonathan, bom dia.


Estou iniciando a codificação desse robo. Implementei a função MarketBookAdd e mesma assim não funcionou.

Segue o código conforme está hoje.


input string sAtivo1 = "ELET3", sAtivo2 = "ELET6";
double dSaldoDisponivel = 0;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60);
   
   MarketBookAdd(sAtivo1);
   MarketBookAdd(sAtivo2);
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
   
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---

  
   MqlBookInfo aBookAtivo1[];
   MarketBookGet(sAtivo1, aBookAtivo1);
   
   if(ArraySize(aBookAtivo1) == 0)
   {
      Comment("Não foi possível retornar o book para o ativo 1");
      return;
   }
   
   MqlBookInfo aBookAtivo2[];
   MarketBookGet(sAtivo2, aBookAtivo1);
   
   if(ArraySize(aBookAtivo2) == 0)
   {
      Comment("Não foi possível retornar o book para o ativo 2");
      return;
   }

 }

Obrigado pela ajuda!

 

Olá Winter Martins e demais membros da comunidade,

Estamos desencorajando tópicos concentrados em um assunto especifico do tipo "Pergunte Aqui"...

Estamos desabilitando um "Pergunte Aqui" geral do fórum em português, e, provavelmente, esse aqui também será.

O ideal é que todas as perguntas sejam feitas em seu próprio tópico, com texto descritivo específico, aberto pelo usuário com a dúvida específica.

Além disso, não existe tópico para que uma pessoa o responda...

Todos os tópicos do fórum são abertos para que qualquer um pergunte e responda.

Atenciosamente,
Malacarne

 
LeandroCD:

Jonathan, bom dia.


Estou iniciando a codificação desse robo. Implementei a função MarketBookAdd e mesma assim não funcionou.

Segue o código conforme está hoje.


Obrigado pela ajuda!


Fiz um código aqui tenta usar ele como exemplo


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   MarketBookAdd(Symbol());
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Desinicialização da função Expert                                |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   MarketBookRelease("USDJPY");
  }
//+------------------------------------------------------------------+
//| Função BookEvent                                                 |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
   //printf("Depth of Market " + symbol +  " changed"); 
   MqlBookInfo book[];
   MarketBookGet(symbol, book);
   if(ArraySize(book) == 0)
   {
      printf("Failed load market book price. Reason: " + (string)GetLastError());
      return;
   }
   string line = "Price: " + DoubleToString(book[0].price, Digits()) + "; ";
   line += "Volume: " + (string)book[0].volume + "; ";
   line += "Type: " + EnumToString(book[0].type);
   printf(line);
 
Rodrigo Malacarne:

Olá Winter Martins e demais membros da comunidade,

Estamos desencorajando tópicos concentrados em um assunto especifico do tipo "Pergunte Aqui"...

Estamos desabilitando um "Pergunte Aqui" geral do fórum em português, e, provavelmente, esse aqui também será.

O ideal é que todas as perguntas sejam feitas em seu próprio tópico, com texto descritivo específico, aberto pelo usuário com a dúvida específica.

Além disso, não existe tópico para que uma pessoa o responda...

Todos os tópicos do fórum são abertos para que qualquer um pergunte e responda.

Atenciosamente,
Malacarne

OK.

 
Olá gostaria de saber como faço para configurar minha aba de observação do mercado para colocar o Bovespa acabei de baixar o Meta e está tudo no padrão ainda mas não estou achando o Bovespa só aparece outros mercados extrangeiro?