Olá pessoal,
eu gostaria de saber se há alguma forma de obter o ajuste diário do Ibovespa através do MQL5?
Abraço.
Evandro Teixeira.
Olá Evandro Teixeira,
De forma nativa, até onde me consta, infelizmente não.
Entretanto já vi alguns programadores emulando a metodologia de cálculo da BM&F Bovespa para antecipar o valor do ajuste via código.
Abraços,
Malacarne
Olá Evandro Teixeira,
De forma nativa, até onde me consta, infelizmente não.
Entretanto já vi alguns programadores emulando a metodologia de cálculo da BM&F Bovespa para antecipar o valor do ajuste via código.
Abraços,
Malacarne
Olá Malacarne,
esse cálculo eu achei bem complicado mas parece que o MQL5 tem uma função que deveria retornar esse valor, porém devido a um bug ou limitação da corretora (acredito mais nessa opção) o valor é sempre zero.
SymbolInfoDouble(_Symbol,SYMBOL_SESSION_PRICE_SETTLEMENT)
Até um tempo atrás eu também conseguia puxar o valor do VWAP com SYMBOL_SESSION_AW porém agora só retorna o valor zero.
Abraço.
Olá, procurei esta mesma informação e não consegui encontrar então usei a função WebRequest para consultar diretamente no site da B3...funcionou legal...após a consulta coloquei uma linha horizontal no gráfico com o valor do ajuste atual. Assim chamando a função com o índice e o vencimento... consultaAjuste("IND","J19");
void consultaAjuste(string indiceBusca,string vencimento){
string url="http://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/Ajustes1.asp";
string cookie=NULL,reference=NULL;
string headers;
int timeout=5000;
char post[];
char conteudo[];
int acesso;
ResetLastError();
acesso=WebRequest("GET",url,cookie,reference,timeout,post,0,conteudo,headers);
if(acesso)Print("Sucesso");else Print("Falha");
int size=ArraySize(conteudo);
string concatena=NULL;
for(int i=0;i<size;i++){
concatena+=CharToString(conteudo[i]);
}
int indexInicio=StringFind(concatena,indiceBusca,0);
int index01=StringFind(concatena,vencimento,indexInicio);
int index02=StringFind(concatena,"right",index01);
int index03=StringFind(concatena,"right",index02+7);
string extraidoAnterior=StringSubstr(concatena,index02,100);
string extraidoAtual=StringSubstr(concatena,index03,100);
string ajusteAnterior=StringSubstr(extraidoAnterior,7,6);
string ajusteAtual=StringSubstr(extraidoAtual,7,6);
StringReplace(ajusteAnterior,".","");
StringReplace(ajusteAtual,".","");
double ajusteAnteriorDouble=StringToDouble(ajusteAnterior);
double ajusteAtualDouble=StringToDouble(ajusteAtual);
Print("Ajuste anterior: ",ajusteAnteriorDouble," Ajuste atual: ",ajusteAtualDouble);
ObjectCreate(0,"AjusteAtual",OBJ_HLINE,0,0,ajusteAtualDouble);
ObjectSetInteger(0,"AjusteAtual",OBJPROP_WIDTH,2);
ObjectSetInteger(0,"AjusteAtual",OBJPROP_COLOR,clrBlack);
}
- www2.bmf.com.br
Olá, procurei esta mesma informação e não consegui encontrar então usei a função WebRequest para consultar diretamente no site da B3...funcionou legal...após a consulta coloquei uma linha horizontal no gráfico com o valor do ajuste atual. Assim chamando a função com o índice e o vencimento... consultaAjuste("IND","J19");
Excelente ideia! Parabéns e obrigado por compartilhar o código!
Olá, procurei esta mesma informação e não consegui encontrar então usei a função WebRequest para consultar diretamente no site da B3...funcionou legal...após a consulta coloquei uma linha horizontal no gráfico com o valor do ajuste atual. Assim chamando a função com o índice e o vencimento... consultaAjuste("IND","J19");
Muito bom mesmo! Percebi que além do ajuste atual, é possível implementar ajustes anteriores, uma vez que a página Ajustes1.asp, pode receber na requisição a variável de data (ex: Ajustes1.asp?txtData=13/05/2019)... Logo que me sobrar um tempo, ainda vou trabalhar nisso. Por hora, obrigado e parabéns!
Olá, procurei esta mesma informação e não consegui encontrar então usei a função WebRequest para consultar diretamente no site da B3...funcionou legal...após a consulta coloquei uma linha horizontal no gráfico com o valor do ajuste atual. Assim chamando a função com o índice e o vencimento... consultaAjuste("IND","J19");
void consultaAjuste(string indiceBusca,string vencimento){
string url="http://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/Ajustes1.asp";
string cookie=NULL,reference=NULL;
string headers;
int timeout=5000;
char post[];
char conteudo[];
int acesso;
ResetLastError();
acesso=WebRequest("GET",url,cookie,reference,timeout,post,0,conteudo,headers);
if(acesso)Print("Sucesso");else Print("Falha");
int size=ArraySize(conteudo);
string concatena=NULL;
for(int i=0;i<size;i++){
concatena+=CharToString(conteudo[i]);
}
int indexInicio=StringFind(concatena,indiceBusca,0);
int index01=StringFind(concatena,vencimento,indexInicio);
int index02=StringFind(concatena,"right",index01);
int index03=StringFind(concatena,"right",index02+7);
string extraidoAnterior=StringSubstr(concatena,index02,100);
string extraidoAtual=StringSubstr(concatena,index03,100);
string ajusteAnterior=StringSubstr(extraidoAnterior,7,6);
string ajusteAtual=StringSubstr(extraidoAtual,7,6);
StringReplace(ajusteAnterior,".","");
StringReplace(ajusteAtual,".","");
double ajusteAnteriorDouble=StringToDouble(ajusteAnterior);
double ajusteAtualDouble=StringToDouble(ajusteAtual);
Print("Ajuste anterior: ",ajusteAnteriorDouble," Ajuste atual: ",ajusteAtualDouble);
ObjectCreate(0,"AjusteAtual",OBJ_HLINE,0,0,ajusteAtualDouble);
ObjectSetInteger(0,"AjusteAtual",OBJPROP_WIDTH,2);
ObjectSetInteger(0,"AjusteAtual",OBJPROP_COLOR,clrBlack);
}
Olá amigos,
alguém sabe se tem o webservice para pegar as Ptax 1, 2, 3, 4 e final ?
Olá amigos,
alguém sabe se tem o webservice para pegar as Ptax 1, 2, 3, 4 e final ?
Olá Claudio, eu utilizo https://ptax.bcb.gov.br/ptax_internet/consultaBoletim.do?method=consultarBoletim&DATAINI="+dataini+"&DATAFIM=----------------------&ChkMoeda=61&RadOpcao=3.
onde dataini é a data que deseja.Prezados,
Desculpem minha ignorância, mas esse código abaixo eu incorporo no metatrader 5 de que forma? Abro o MetaEditor, novo Script, e colo ele para compilar?
Sou novo no assunto, mas fiz exatamente isso (metaeditor > novo > script > colei o código abaixo e compilei) e deu o erro ao compilar:
'consultaAjuste' - function declarations are allowed on global, namespace or class scope only
Ai estou na dúvida sobre o que fiz de errado. Alguém pode me dar um norte, por favor?
Agradecido!
Olá, procurei esta mesma informação e não consegui encontrar então usei a função WebRequest para consultar diretamente no site da B3...funcionou legal...após a consulta coloquei uma linha horizontal no gráfico com o valor do ajuste atual. Assim chamando a função com o índice e o vencimento... consultaAjuste("IND","J19");
void consultaAjuste(string indiceBusca,string vencimento){
string url="http://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/Ajustes1.asp";
string cookie=NULL,reference=NULL;
string headers;
int timeout=5000;
char post[];
char conteudo[];
int acesso;
ResetLastError();
acesso=WebRequest("GET",url,cookie,reference,timeout,post,0,conteudo,headers);
if(acesso)Print("Sucesso");else Print("Falha");
int size=ArraySize(conteudo);
string concatena=NULL;
for(int i=0;i<size;i++){
concatena+=CharToString(conteudo[i]);
}
int indexInicio=StringFind(concatena,indiceBusca,0);
int index01=StringFind(concatena,vencimento,indexInicio);
int index02=StringFind(concatena,"right",index01);
int index03=StringFind(concatena,"right",index02+7);
string extraidoAnterior=StringSubstr(concatena,index02,100);
string extraidoAtual=StringSubstr(concatena,index03,100);
string ajusteAnterior=StringSubstr(extraidoAnterior,7,6);
string ajusteAtual=StringSubstr(extraidoAtual,7,6);
StringReplace(ajusteAnterior,".","");
StringReplace(ajusteAtual,".","");
double ajusteAnteriorDouble=StringToDouble(ajusteAnterior);
double ajusteAtualDouble=StringToDouble(ajusteAtual);
Print("Ajuste anterior: ",ajusteAnteriorDouble," Ajuste atual: ",ajusteAtualDouble);
ObjectCreate(0,"AjusteAtual",OBJ_HLINE,0,0,ajusteAtualDouble);
ObjectSetInteger(0,"AjusteAtual",OBJPROP_WIDTH,2);
ObjectSetInteger(0,"AjusteAtual",OBJPROP_COLOR,clrBlack);
}
Boa noite, Muito bom esse conteúdo. Acabei usando tanto o ajusto como ptax.
Estou precisando agora pegar uma informação que é a quantidade de contratos de gringos no dolar.
Ate achei a informação em ---> http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp
mas nao consegui colocar a data retroativa diretamente no endereço pra fazer a busca e alimentar um BD. Alguem poderia dar uma luz ?
Obrigado !!!
Adiel
Prezados,
Desculpem minha ignorância, mas esse código abaixo eu incorporo no metatrader 5 de que forma? Abro o MetaEditor, novo Script, e colo ele para compilar?
Sou novo no assunto, mas fiz exatamente isso (metaeditor > novo > script > colei o código abaixo e compilei) e deu o erro ao compilar:
'consultaAjuste' - function declarations are allowed on global, namespace or class scope only
Ai estou na dúvida sobre o que fiz de errado. Alguém pode me dar um norte, por favor?
Agradecido!
Boa noite.
Voce abre como falou acima. Script e cola o codigo.
Verifica se vc colou o codigo abaixo da ultima chave que fecha a função OnStart()
E dentro da função OnStart() voce chama a função que vc colou com -->> consultaAjuste("DOL","X19");
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- 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
Olá pessoal,
eu gostaria de saber se há alguma forma de obter o ajuste diário do Ibovespa através do MQL5?
Abraço.
Evandro Teixeira.