PUBLICIDADE
Este código tem nota
5,5

Autor

gabriel

Gabriel Fróes

membro deste junho de 2006

Compartilhe e guarde

  • Rec6
  • StumbleUpon
  • ueba
  • linkk
  • dihitt
  • linkloko
  • linkto
  • Technorati
  • Simpy
  • del.icio.us
  • Faves: Fave It!

PUBLICIDADE

Enquete

Google Chrome OS ameaça a liderança do Windows da Microsoft?

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.
<%
'=======================================================
'CLASSE DOS INDICADORES FINANCEIROS
'=======================================================
Class IndicadoresFinanceiros
	'-----------------------------------------------------
	'Funcao: getIndicadoresFinanceiros()
	'Sinopse: Retorna Lista de Indicadores Financeiros
	'		  Indicadores (BOLSAS):
	'			- Bovespa (ID: BOVESPA)
	'			- Dow Jones (ID: DOWJONES)
	'			- Nasdaq (ID: NASDAQ)
	'			- Merval (ID: MERVAL)
	'			- Londres (ID: LONDRES)
	'			- Paris (ID: PARIS)
	'			- Tóquio (ID: TOQUIO)
	'			- Frankfurt (ID: FRANKFURT)
	'		  Indicadores (MOEDAS):
	'			- Dólar Comercial (ID: DOLARCOMERCIAL)
	'			- Dólar Médio Venda (ID: DOLARMEDIOVENDA)
	'			- Dólar Paralelo (ID: DOLARPARALELO)
	'			- Dólar Turismo (ID: DOLARTURISMO)
	'			- Euro x Dólar (ID: EURODOLAR)
	'			- Euro x Real (ID: EUROREAL)
	'			- Dólar Futuro (ID: DOLARFUTURO)
	'		  Indicadores (RISCO):
	'			- Risco Brasil (ID: RISCOBRASIL)
	'Retorno: Coleção (Scripting.Dictionary)
	'Autor: Gabriel Fróes - www.codigofonte.com.br
	'Ultima Atualização: 23 / 02 / 2008
	'-----------------------------------------------------
	Function getIndicadoresFinanceiros()
		'Declaração das variáveis/objetos
	    Dim Retorno
	    Dim URL
	    Dim posInicio
	    Dim posFim
	    Dim htmlInicioPadrao
	    Dim htmlFimPadrao
	    Dim htmlInicio
	    Dim htmlFim
	    Dim Indicador
	    Dim Nome
	    Dim Valor
	    Dim Percentual
	    Dim Hora
	    Dim Data
	    Dim objXmlHttp
	    Dim objColecao
	    'Inicialização dos objetos/variáveis
	    Set objXmlHttp	= Server.CreateObject("MSXML2.XMLHTTP")
	    Set objColecao	= Server.CreateObject("Scripting.Dictionary")
	    htmlInicioPadrao= "align=right class=""conteudo"">"
	    htmlFimPadrao	= "</td>"
	    posInicio		= 1
	    posFim			= 1
	    'Consulta ao site com os indicadores
	    URL = "http://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	= "<a href=""javascript:trocapapel('012/IBOV')"" style=""color: black"">Bovespa</a>"
	    htmlFim		= "<form name = ""consulta"" action=""javascript:consulta();"">"
	    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	= "<a href=""javascript:trocapapel('012/IBOV')"" style=""color: black"">Bovespa</a>"
	    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	= "<td width=""72"" class=""TitConteudo"">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	= "<a href=""javascript:trocapapel('025/CCO')"" style=""color: black"">Nasdaq</a>"
	    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	= "<a href=""javascript:trocapapel('013/MER VAL')"" style=""color: black"">Merval</a>"
	    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	= "<a href=""javascript:trocapapel('096/FTSE&GB')"" style=""color: black"">Londres</a>"
	    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	= "<a href=""javascript:trocapapel('096/CAC&FR')"" style=""color: black"">Paris</a>"
	    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	= "<a href=""javascript:trocapapel('096/INJN&GB')"""
	    htmlFim		= ""
	    posInicio	= Instr(1, Retorno, htmlInicio)
	    Indicador	= "TOQUIO"
	    Nome		= "Tóquio"
	    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))
	    'F R A N K F U R T
	    htmlInicio	= "<a href=""javascript:trocapapel('096/DAX')"" style=""color: black"">Frankfurt</a>"
	    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	= "<a href=""javascript:trocapapel('08/DOLCM')"""
	    htmlFim		= ""
	    posInicio	= Instr(1, Retorno, htmlInicio)
	    Indicador	= "DOLARCOMERCIAL"
	    Nome		= "Dólar Comercial"
	    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  M E D I O  V E N D A
	    htmlInicio	= "<a href=""javascript:trocapapel('62/PTAX850')"""
	    htmlFim		= ""
	    posInicio	= Instr(1, Retorno, htmlInicio)
	    Indicador	= "DOLARMEDIOVENDA"
	    Nome		= "Dólar Médio Venda"
	    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  P A R A L E L O
	    htmlInicio	= "<a href=""javascript:trocapapel('08/DOLPR')"""
	    htmlFim		= ""
	    posInicio	= Instr(1, Retorno, htmlInicio)
	    Indicador	= "DOLARPARALELO"
	    Nome		= "Dólar Paralelo"
	    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  T U R I S M O
	    htmlInicio	= "<a href=""javascript:trocapapel('08/DOLTR')"""
	    htmlFim		= ""
	    posInicio	= Instr(1, Retorno, htmlInicio)
	    Indicador	= "DOLARTURISMO"
	    Nome		= "Dólar Turismo"
	    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))
		'E U R O  x  D O L A R
	    htmlInicio	= "<a href=""javascript:trocapapel('34/EURUSD')"""
	    htmlFim		= ""
	    posInicio	= Instr(1, Retorno, htmlInicio)
	    Indicador	= "EURODOLAR"
	    Nome		= "Euro x Dólar"
	    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))
	    
	 	'E U R O  x  R E A L
	    htmlInicio	= "<a href=""javascript:trocapapel('62/BCUME-RS EUR')"""
	    htmlFim		= ""
	    posInicio	= Instr(1, Retorno, htmlInicio)
	    Indicador	= "EUROREAL"
	    Nome		= "Euro x Real"
	    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  F U T U R O
	    htmlInicio	= "trocapapel('9/DRH8')"
	    htmlFim		= ""
	    posInicio	= Instr(1, Retorno, htmlInicio)
	    Indicador	= "DOLARFUTURO"
	    Nome		= "Dólar Futuro"
	    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))
	   	'R I S C O   B R A S I L
	    htmlInicio	= "<td width=""64"" class=""TitConteudo"">Brasil</td>"
	    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: <b>" & objCol("RISCOBRASIL").Nome & "</b><br>"
Response.Write "Valor: <b>" & objCol("RISCOBRASIL").Valor & "</b><br>"
Response.Write "<hr>"
Response.Write "Indice: <b>" & objCol("DOLARFUTURO").Nome & "</b><br>"
Response.Write "Valor: <b>" & objCol("DOLARFUTURO").Valor & "</b><br>"
Set objCol		= Nothing
Set objIndFin	= Nothing
%>

Sim   Não   Este código foi útil para você?
NotaComentário
10
leobemfica comentou em 21/2/2008

Erro no codigo

Amigão é muito bom a sua iniciativa e o trabalho, mas ta dando ume rro no codigo mesmo.
Teria como postar o arquivo funcionado ae não!?
Novamente ta de parabéns!
1
fabio comentou em 13/11/2007

Erro no codigo !!

Esta retornando o seguinte erro :
Tipo de erro:
Erro de tempo de execução do Microsoft VBScript (0x800A0005)
Chamada de procedimento ou argumento inválido: 'Instr'
/mercado.asp, line 293
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

R&W Consulting - Soluções Web Hospedagem UOL HOST PagSeguro - solução para pagamentos online
© 2006-2009 R&W Informática Ltda. - Todos os direitos reservados.