Ajuste Diario do Ibovespa - página 2

 
adielruiz:

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");

Boa noite, 

Tentei fazer o mesmo,mas não deu certo.

É preciso preencher os parametros? Quais seriam? não sei com se faz.

Fui compilar e apareceram varios erros tbm.

Poderia explicar como fazer corretamente, 

Obrigado

 
valterblande:

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);

   

   

   }

Bom dia! Valter, executei o código, está retornando sucesso, mas com o valor 0.0 para os ajustes, o seu ainda está funcionando?

 
edsonfranca:

Bom dia! Valter, executei o código, está retornando sucesso, mas com o valor 0.0 para os ajustes, o seu ainda está funcionando?

O meu também está com valor 0.0 para ajuste anterior e atual. Alguém conseguiu resolver?
 
Aqui a mesma coisa :/ votando 0.0
 
Coloquei num script e funcionou. Mas em indicador sem sucesso. Queria fazer em um indicador. Alguém conseguiu?
 
adielruiz:

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 

Poxa se vc conseguir poste o code aqui pra nois :)

 
Kl_ Urt:


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!

Esse code aceita uma data especifica. Vou trabalhar nele pra pegar uma quantidade x anteriores.

//+------------------------------------------------------------------+
//|                                                       Ajuste.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlDateTime data;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() {
   consultaAjuste("WDO", "N20", 5);

   double Ajuste = SymbolInfoDouble(_Symbol, SYMBOL_SESSION_CLOSE);
   double VWAP = SymbolInfoDouble(_Symbol, SYMBOL_SESSION_AW);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void consultaAjuste(string indiceBusca, string vencimento, int days) {

   TimeToStruct(TimeCurrent(), data);
   int dt = data.day - days;
   int mt = data.mon;
   int yt = data.year;

   string dt_, mt_;
   if(dt < 10)
      dt_ = "0" + dt;
   else
      dt_ = data.day;
   if(mt < 10)
      mt_ = "0" + mt;
   else
      mt_ = data.mon;

   //https://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/Ajustes1.asp?txtData=05/06/2020
   string url_ajd = "https://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/Ajustes1.asp?txtData=" + dt_ + "/" + mt_ + "/" + (string)yt;
//string rrl_ptx = "https://ptax.bcb.gov.br/ptax_internet/consultaBoletim.do?method=consultarBoletim&DATAINI="+dataini+"&DATAFIM=----------------------&ChkMoeda=61&RadOpcao=3.";
//string url_vol = "http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp";
   string cookie = NULL, reference = NULL, headers;
   int timeout = 5000, acesso;
   char post[], conteudo[];

   ResetLastError();
   acesso = WebRequest("GET", url_ajd, 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, "ajusteAnterior", OBJ_HLINE, 0, 0, ajusteAnteriorDouble);
   ObjectSetInteger(0, "ajusteAnterior", OBJPROP_WIDTH, 2);
   ObjectSetInteger(0, "ajusteAnterior", OBJPROP_COLOR, clrWhite);

   ObjectCreate(0, "ajusteAtual", OBJ_HLINE, 0, 0, ajusteAtualDouble);
   ObjectSetInteger(0, "ajusteAtual", OBJPROP_WIDTH, 2);
   ObjectSetInteger(0, "ajusteAtual", OBJPROP_COLOR, clrWhite);
}
//+------------------------------------------------------------------+
Descubra novos recursos para o MetaTrader 5 com a comunidade e os serviços MQL5
Descubra novos recursos para o MetaTrader 5 com a comunidade e os serviços MQL5
  • www.mql5.com
Tire dúvidas sobre análise técnica, fale com outros traders sobre sistemas de negociação e melhore suas habilidades de programação de estratégias em linguagem MQL5. Participe do fórum, compartilhe ideias com traders de todo o mundo e ajude com feedback os novatos — nossa comunidade está crescendo junto com você. Robô para gerenciar carteira de...
 

Pessoal, o meu só estava retornando 0. Porém tem um detalhe que ninguém comentou, tem uma nota na documentação do MQL5 que diz:

Para usar a função WebRequest(), adicione os endereços dos servidores necessários na lista de URLs permitidos na guia "Expert Advisors" da janela "Options".

Só depois que eu incluí https://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/Ajustes1.asp no quadro das URL´s foi que funcionou.

Obrigado a todos pelas dicas.


Ajustes relativos ao Pregão
  • www2.bmf.com.br
(*) O PREÇO ANTERIOR JÁ ESTÁ CORRIGIDO PELA TAXA CETIP PARA DI1; PELA DIFERENÇA ENTRE TAXA CETIP E VARIAÇÃO DO DÓLAR PARA DDI; PELA DIFERENÇA ENTRE TAXA CETIP E VARIAÇÃO DO IGP-M; PARA DDM; PELA DIFERENÇA ENTRE TAXA CETIP E VARIAÇÃO...
 

Galera, fiz um script aqui para pegar os ajustes do dolar para 20 períodos anteriores.

É o meu primeiro script, portanto é possível não estar feito da melhor forma possível.

Esta funcional e já resolveu meu problema aqui.

Funcionalidades do script:

- Pega os dados de ajuste  BMF Bovespa

- Formata os dados para um objeto MqlRates para facilitar a formatação e uso.

- Salva os dados em um arquivo csv para não ter que importar os dados do site toda vez que é executado.
(O arquivo é gerado dentro da pasta MQL5/Files)

- Depois carrega os dados de ajuste para o gráfico em linhas horizontais

Esta funcionando no meu MetaTrader v5 build 2981

Para utilizar é colocar na pasta MQL5/Scripts

e depois arrastar para o gráfico do dolar


Bom uso! 

\o/

Arquivos anexados:
 

Bom, usei o script do amigo @valterblande durante um bom tempo, com muito sucesso! Abria um instrumento, rodava o script e lá estavam os ajustes atual e anterior atualizados. :-)

Infelizmente, recentemente parece que a B3 resolveu acabar com a graça - leia-se, alterou algumas de suas páginas, então a página anterior (http://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/Ajustes1.asp) não está mais disponível.

A URL de obtenção dos valores agora está em uma nova página que, no momento, parece também não funcionar: https://www.b3.com.br/pt_br/market-data-e-indices/servicos-de-dados/market-data/historico/derivativos/ajustes-do-pregao/

Alguém já obteve sucesso em atualizar o modo de obter os ajustes automaticamente?

P.S.: continuo investigando, se obtiver alguma atualização, posto aqui

Ajustes do pregão | B3
  • www.b3.com.br
S_AjusPreg_Des
Razão: