Pessoal,
Estou tentando obter do book de ofertas as informações de preço de venda e preço de compras e suas respectivas quantidades e não estou conseguindo.
Alguem poderia me ajudar? Quais as funções devo usar?
Tentei usar a SymbolInfoDouble("PETR4", SYMBOL_SESSION_SEEL_ORDERS_VOLUME) / SymbolInfoDouble("PETR4", SYMBOL_SESSION_BUY_ORDERS_VOLUME), sem sucesso, e para pegar a quantidade e as
SymbolInfoDouble("PETR4", SYMBOL_SYMBOL_ASK) /SymbolInfoDouble("PETR4", SYMBOL_SYMBOL_BID) .
Para exemplificar, gostaria de obter as informações da primeira linha da imagem do book abaixo
para venda: qtde 1.100 e preço 25.50
para compra: qtde 11.400 e preço 25.55.
PETR4 | |||
Qtde | Compra | Venda | Qtde |
1100 | 25,50 | 25,55 | 11400 |
3500 | 25,45 | 25,56 | 1200 |
2500 | 25,42 | 25,57 | 900 |
2100 | 25,41 | 25,58 | 500 |
36300 | 25,40 | 25,59 | 1800 |
Obrigado!
Fala man,
Veja se este artigo te ajuda.
[ ]'s
- www.mql5.com
Joscelino, obrigado pelo artigo.
Estou tentando implementar 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?
Vlw!!!
Joscelino, obrigado pelo artigo.
Estou tentando implementar e não está retornando nenhuma informação nesse trecho:
Sempre entrando no IF. Estou testando na Modal, em dados reais e no histórico, ocorrendo o mesmo erro em ambos.
Sabe o pq?
Vlw!!!
Fala Leandro,
Não tenho experiência com isso. Busque esclarecer suas dúvidas neste link: https://www.mql5.com/pt/forum/301258/unread#unread
[ ]´s
Fala Leandro,
Não tenho experiência com isso. Busque esclarecer suas dúvidas neste link: https://www.mql5.com/pt/forum/301258/unread#unread
[ ]´s
Ola,
Fiz um codigo de exemplo aqui acho que da pra seguir com esse 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);
Ola,
Fiz um codigo de exemplo aqui acho que da pra seguir com esse exemplo
Jonathan, Obrigado pelo exemplo.
Testei seu código aqui e deu o seguinte erro:
Failed load market book price. Reason: 4903
O erro 4903, pelo que eu achei na documentação é:
ERR_BOOKS_CANNOT_GET |
4903 |
Os dados da Profundidade de Mercado não podem ser obtidos |
Alguma idéia do que pode ser?
Obrigado!
Jonathan, Obrigado pelo exemplo.
Testei seu código aqui e deu o seguinte erro:
Failed load market book price. Reason: 4903
O erro 4903, pelo que eu achei na documentação é:
ERR_BOOKS_CANNOT_GET | 4903 | Os dados da Profundidade de Mercado não podem ser obtidos |
Alguma idéia do que pode ser?
Obrigado!
Se você simplesmente copiou e colou o código acima, o código possui um erro: Está inicializando o código corrente do gráfico e desinicializando com o USDJPY. Primeiro os dados do book não estão disponíveis no forex. Segundo, deve inicializar e desinicializar o mesmo simbolo.
Se você simplesmente copiou e colou o código acima, o código possui um erro: Está inicializando o código corrente do gráfico e desinicializando com o USDJPY. Primeiro os dados do book não estão disponíveis no forex. Segundo, deve inicializar e desinicializar o mesmo simbolo.
Exatamente, eu fiz esse código as pressas e me conectei a uma corretora de Forex usando o par USDJPY por isso pra mim não deu erro em momento algum.
O correto é transformar isso em Classe e delegar as funções de implementação a classe e não no robô em si.
Então pessoal eu corrigi o código do ativo, compilei todo código e debuguei sobre dados históricos (que não funcionou) e sobre dados reais (que funcionou).
Acredito que o problema tava porque eu estava tentando fazer o debug sobre dados históricos. Sabem se tem como usar essa função em dados históricos?
Obrigado!
Então pessoal eu corrigi o código do ativo, compilei todo código e debuguei sobre dados históricos (que não funcionou) e sobre dados reais (que funcionou).
Acredito que o problema tava porque eu estava tentando fazer o debug sobre dados históricos. Sabem se tem como usar essa função em dados históricos?
Obrigado!
Não. O dados do Book só podem ser acessados em tempo real. Você pode gravar os dados em uma tabela csv e rodar o programa com esses dados para testes. Inclusive vou fazer isso também. Porque não pensei nisso antes? kkk
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Pessoal,
Estou tentando obter do book de ofertas as informações de preço de venda e preço de compras e suas respectivas quantidades e não estou conseguindo.
Alguem poderia me ajudar? Quais as funções devo usar?
Tentei usar a SymbolInfoDouble("PETR4", SYMBOL_SESSION_SEEL_ORDERS_VOLUME) / SymbolInfoDouble("PETR4", SYMBOL_SESSION_BUY_ORDERS_VOLUME), sem sucesso, e para pegar a quantidade e as
SymbolInfoDouble("PETR4", SYMBOL_SYMBOL_ASK) /SymbolInfoDouble("PETR4", SYMBOL_SYMBOL_BID) .Para exemplificar, gostaria de obter as informações da primeira linha da imagem do book abaixo
para venda: qtde 1.100 e preço 25.50
para compra: qtde 11.400 e preço 25.55.
Obrigado!