Categorias

Informações do Mercado Financeiro em Tempo Real

ultima atualização: 23/02/2008

Com esta classe é possível resgatar os principais indicadores do mercado financeiro em tempo real (online).

A fonte utilizada para os dados é o site www.cma.com.br. Por esta razão as informações a veracidade das infomações são de responsabilidade do mesmo.

As informações do mercado disponíveis neste código são:

Indicadores (BOLSAS):
– Bovespa
– Dow Jones
– Nasdaq
– Merval
– Londres
– Paris
– Tóquio
– Frankfurt
Indicadores (MOEDAS):
– Dólar Comercial
– Dólar Médio Venda
– Dólar Paralelo
– Dólar Turismo
– Euro x Dólar
– Euro x Real
– Dólar Futuro
Indicadores (RISCO):
– Risco Brasil

IMPORTANTE: Pode ocorrer mudanças no site que serve de fonte para a extração dos dados isso acarretará em erro no código.

"
	    htmlFimPadrao	= ""
	    posInicio		= 1
	    posFim			= 1
	    'Consulta ao site com os indicadores
	    URL = "https://www.cma.com.br/mercadofinanceiro.asp"
		objXMLHttp.Open "GET", URL, False
		objXMLHttp.Send
		Retorno	= BinaryToString(objXmlHttp.ResponseBody)
		Set objXmlHttp	= Nothing
	    'Cortando a String para trabalhar com uma variável menor
	    htmlInicio	= "Bovespa"
	    htmlFim		= "
" posInicio = Instr(1, Retorno, htmlInicio) posFim = Instr(posInicio, Retorno, htmlFim) Retorno = Mid(Retorno, posInicio, posFim - posInicio) posInicio = 1 'B O V E S P A htmlInicio = "Bovespa" htmlFim = "" posInicio = Instr(1, Retorno, htmlInicio) Indicador = "BOVESPA" Nome = "Bovespa" htmlInicio = htmlInicioPadrao htmlFim = htmlFimPadrao Valor = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Percentual = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Hora = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Data = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Call objColecao.Add(Indicador, addIndicador(Nome, Valor, Percentual, Hora, Data)) 'D O W J O N E S htmlInicio = "Dow Jones" htmlFim = "" posInicio = Instr(1, Retorno, htmlInicio) Indicador = "DOWJONES" Nome = "Dow Jones" htmlInicio = htmlInicioPadrao htmlFim = htmlFimPadrao Valor = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Percentual = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Hora = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Data = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Call objColecao.Add(Indicador, addIndicador(Nome, Valor, Percentual, Hora, Data)) 'N A S D A Q htmlInicio = "Nasdaq" htmlFim = "" posInicio = Instr(1, Retorno, htmlInicio) Indicador = "NASDAQ" Nome = "Nasdaq" htmlInicio = htmlInicioPadrao htmlFim = htmlFimPadrao Valor = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Percentual = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Hora = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Data = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Call objColecao.Add(Indicador, addIndicador(Nome, Valor, Percentual, Hora, Data)) 'M E R V A L htmlInicio = "Merval" htmlFim = "" posInicio = Instr(1, Retorno, htmlInicio) Indicador = "MERVAL" Nome = "Merval" htmlInicio = htmlInicioPadrao htmlFim = htmlFimPadrao Valor = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Percentual = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Hora = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Data = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Call objColecao.Add(Indicador, addIndicador(Nome, Valor, Percentual, Hora, Data)) 'L O N D R E S htmlInicio = "Londres" htmlFim = "" posInicio = Instr(1, Retorno, htmlInicio) Indicador = "LONDRES" Nome = "Londres" htmlInicio = htmlInicioPadrao htmlFim = htmlFimPadrao Valor = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Percentual = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Hora = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Data = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Call objColecao.Add(Indicador, addIndicador(Nome, Valor, Percentual, Hora, Data)) 'P A R I S htmlInicio = "Paris" htmlFim = "" posInicio = Instr(1, Retorno, htmlInicio) Indicador = "PARIS" Nome = "Paris" htmlInicio = htmlInicioPadrao htmlFim = htmlFimPadrao Valor = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Percentual = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Hora = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Data = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Call objColecao.Add(Indicador, addIndicador(Nome, Valor, Percentual, Hora, Data)) 'T O Q U I O htmlInicio = "Frankfurt" htmlFim = "" posInicio = Instr(1, Retorno, htmlInicio) Indicador = "FRANKFURT" Nome = "Frankfurt" htmlInicio = htmlInicioPadrao htmlFim = htmlFimPadrao Valor = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Percentual = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Hora = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Data = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Call objColecao.Add(Indicador, addIndicador(Nome, Valor, Percentual, Hora, Data)) 'D O L A R C O M E R C I A L htmlInicio = "Brasil" htmlFim = "" posInicio = Instr(1, Retorno, htmlInicio) Indicador = "RISCOBRASIL" Nome = "Risco Brasil" htmlInicio = htmlInicioPadrao htmlFim = htmlFimPadrao Valor = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Percentual = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Hora = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Data = cutIndicador(htmlInicio, htmlFim, posInicio, Retorno) Call objColecao.Add(Indicador, addIndicador(Nome, Valor, Percentual, Hora, Data)) 'Retornando a função Set getIndicadoresFinanceiros = objColecao End Function '----------------------------------------------------- 'Funcao: cutIndicador(ByVal htmlInicio, ByVal htmlFim, ByRef posInicio, ByVal Texto) 'Sinopse: Retorna Lista de Indicadores Financeiros 'Parâmetros: ' htmlInicio: String inicio para o corte ' htmlFim: String fim para o corte ' posInicio: Posição início para o corte ' Texto: Texto que será cortado 'Retorno: String 'Autor: Gabriel Fróes - www.codigofonte.com.br '----------------------------------------------------- Private Function cutIndicador(ByVal htmlInicio, ByVal htmlFim, ByRef posInicio, ByVal Texto) posInicio = Instr(posInicio, Texto, htmlInicio) + Len(htmlInicio) posFim = Instr(posInicio, Texto, htmlFim) cutIndicador= Mid(Texto, posInicio, posFim - posInicio) End Function '----------------------------------------------------- 'Funcao: addIndicador(ByVal Nome, ByRef Valor, ByVal Percentual, ByVal Hora, ByVal Data) 'Sinopse: Gera um novo objeto Indicador 'Parâmetros: ' Nome ' Valor ' Percentual ' Hora ' Data 'Retorno: Indicador 'Autor: Gabriel Fróes - www.codigofonte.com.br '----------------------------------------------------- Private Function addIndicador(ByVal Nome, ByRef Valor, ByVal Percentual, ByVal Hora, ByVal Data) Set addIndicador = New Indicador addIndicador.Nome = Nome addIndicador.Valor = Valor addIndicador.Percentual = Percentual addIndicador.Hora = Hora addIndicador.Data = Data End Function Private Function BinaryToString(xBinary) Dim Binary Dim RS, LBinary If VarType(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary Const adLongVarChar = 201 Set RS = CreateObject("ADODB.Recordset") LBinary = LenB(Binary) If LBinary>0 Then RS.Fields.Append "mBinary", adLongVarChar, LBinary RS.Open RS.AddNew RS("mBinary").AppendChunk Binary RS.Update BinaryToString = RS("mBinary") Else BinaryToString = "" End If Set RS = Nothing End Function Private Function MultiByteToBinary(MultiByte) Dim RS, LMultiByte, Binary Const adLongVarBinary = 205 Set RS = CreateObject("ADODB.Recordset") LMultiByte = LenB(MultiByte) If LMultiByte>0 Then RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte RS.Open RS.AddNew RS("mBinary").AppendChunk MultiByte & ChrB(0) RS.Update Binary = RS("mBinary").GetChunk(LMultiByte) End If Set RS = Nothing MultiByteToBinary = Binary End Function End Class '----------------------------------------------------- 'Classe com os Atributos do Indicador Financeiro '----------------------------------------------------- Class Indicador Public Nome Public Valor Public Percentual Public Hora Public Data End Class '----------------------------------------------------- 'EXEMPLO DE CHAMADA '----------------------------------------------------- Dim objIndFin Dim objCol Set objIndFin = New IndicadoresFinanceiros Set objCol = Server.CreateObject("Scripting.Dictionary") 'Pegando os indicadores financeiros Set objCol = objIndFin.getIndicadoresFinanceiros() Response.Write "Indice: " & objCol("RISCOBRASIL").Nome & "
" Response.Write "Valor: " & objCol("RISCOBRASIL").Valor & "
" Response.Write "
" Response.Write "Indice: " & objCol("DOLARFUTURO").Nome & "
" Response.Write "Valor: " & objCol("DOLARFUTURO").Valor & "
" Set objCol = Nothing Set objIndFin = Nothing %>