Foreign Trading System Vb Code


Função de taxa de câmbio no Excel Esta planilha do Excel tem uma função VBA (UDF) que raspa as taxas de câmbio ao vivo do Yahoo Finance. Leia sobre para a planilha de Excel livre e VBA. A função do Excel é perfeita para sempre que você precisar de uma conversão de moeda. Eu uso-o para manter-se a par do valor da libra britânica de uma conta bancária dos EU e do dólar canadense. As taxas são raspadas do Yahoo Finance e são em tempo real (mas atrasadas em 15 ou 20 minutos). O UDF é simples de usar. Aqui é a sintaxe. FXRate (8220currency18221, 8220currency28221,8220close8221, 8220open8221, 8220bid8221, 8220ask8221) Este é um exemplo de como utilizar FXRate () no Excel para uma conversão de moeda entre GBP e USD. Os dois primeiros argumentos são a moeda que você está convertendo ea moeda que você está convertendo para. Estes são códigos de moeda de três letras (por exemplo, GBP para Libras Esterlinas ou CAD para Dólares Canadenses) introduzidos como cadeias de caracteres. O terceiro argumento é um de 8220close8221, 8220open8221, 8220bid8221 ou 8220ask8221 (novamente como uma seqüência de caracteres). O preço próximo é o fechamento anterior. O link para a planilha do Excel está na parte inferior deste post, mas aqui é o VBA. Opção Função Explícita FXRate (moeda1 Como Cadeia, moeda2 Como Cadeia, taxaTipo como Cadeia) Como Dim Duplo str Como Cadeia Dim temp Como Cadeia Dim bidStart Como Long Dim bidEnd As Long Dim askStart Como Long Dim askEnd Como Long Dim openStart Como Long Dim openEnd As Long Dim closeStart Como Longo Dim closeEnd As Long Dim bid Como Double Dim ask Como Duplo Dim ropen Como Duplo Dim rclose Como Double str quotfinance. yahooqsquot amp currency1 amp cn2 amp quotXquot temp ExecuteWebRequest (str) bidStart InStr (temp, quotBid: quot) bidEnd InStr (bidStart, temp, quotquot) bid Meio (temp, bidStart 65, bidEnd - bidStart - 72) askStart InStr (temp, quotAsk: quot) StartStart InStr (temp, quotOpen: quot) openEnd InStr (openStart, temp, quotquot) ropen Mid (temp, openStart 38, openEnd - openStart - 38) closeStart InStr (temp, quotPrev Close: quot) closeEnd InStr (closeStart , Temp, quotquot) rclose Mid (temp, closeStart 4 4, closeEnd - closeStart - 44) If rateType quotaskquot Então FXRate perguntar ElseIf rateType quotbidquot Então FXRate lance ElseIf rateType quotopenquot Então FXRate ropen ElseIf rateType quotclosequot Então FXRate rclose End If End Função Função ExecuteWebRequest (ByVal url Como String) As String Dim oXHTTP As Object Se InStr (1, url, quotquot, 1) ltgt 0 Então url url amp quotampcbquot amp Timer () 100 Else url url amp quotcbquot amp Timer () 100 End If Definir oXHTTP CreateObject (quotMSXML2.XMLHTTPquot) oXHTTP. Open quotGETquot, url, False oXHTTP. send ExecuteWebRequest oXHTTP. responseText Definir oXHTTP Nothing End Function ExecuteWebRequest () foi copiado e modificado a partir daqui. ExecuteWebRequest () recupera o HTML de uma página da Web, enquanto FXRate () processa o HTML para extrair as taxas de câmbio. Tenha em mente que FXRate () raspa os dados do Yahoo Finance com algum processamento de seqüência simples. Assim, se a estrutura dos dados no Yahoo Finance mudar, então esta função pode não funcionar mais. Deixe-me saber se isso acontecer, e I8217ll atualizar o VBA para que ele funciona novamente. Se você quiser taxas de conversão de moeda histórica em um intervalo de datas, então confira esta planilha. Você também pode usar um QueryTable para extrair taxas de câmbio. Deixe um comentário se você tiver dúvidas ou comentários. 22 pensamentos sobre ldquo Taxa de Câmbio Função em Excel rdquo A função é interrompida quando as localizações das pesquisas de substring excedem o valor máximo de 32767 para o tipo de dados Integer. Se você alterar as declarações para bidStart, bidEnd, etc. para Long em vez de Integer, a função funcionará de forma confiável quando o comprimento da variável Temp é extremamente grande. Para uma página devolvida hoje, o comprimento da variável Temp era 76104 com o bidStart igual a 33422. As declarações Long permitem que a função novamente funcione conforme esperado. Obrigado I8217ve mudou o tipo de dados para Long no VBA e planilha. Muito apreciado Obrigado pelo código acima. I8217m tendo problemas com a posição das taxas fx na origem HTML. I8217m tentando recuperar a taxa de fx GBPSGD. Abaixo estão as posições para o 8220bid8221 (o primeiro preço que o código procura na fonte html) bidStart31180 bidEnd 31180 bidStart 65 31245 bidEnd 8211 bidStart 8211 72 -72 Assim, porque o bidStart e BidEnd são os mesmos a função Mid can8217t encontrar a taxa de lance . Por que você a posição bidEnd procurando por 82208221 bidEnd InStr (bidStart, temp, 82208221) I8217ve apenas tentei usar a função FXRate () na planilha para pegar a taxa de câmbio GBPSGD com ele parece funcionar bem 8211 o UDF corretamente raspa o lance Preço de Yahoo Finance. Então, porque o bidStart e BidEnd são os mesmos a função Mid não pode encontrar a taxa de lance Parece encontrar a taxa de lance para mim Eu tentei usar essa conversão, mas não está mais trabalhando ou dando não mais um valor de resultado. Eu usei antes função similar: (veja abaixo). Mas quando eu uso o abaixo e converter de IDR para EUR ele dá 5 euro conversão em vez de 3,5Euro (que eu recebo quando eu ir on-line para o lado conversor de Yahoo) Então eu olhei para uma solução melhor e veio do seu lado, No entanto, nenhum resultado é fornecido: Função YahooCurrencyConverter (ByVal strFromCurrency, ByVal strToCurrency, ByVal opcional strResultType 8220Value8221) Erro GoTo ErrorHandler 8216Init Dim strURL Como Cadeia Dim objXMLHttp como objeto Dim strRes As String, dblRes como conjunto duplo objXMLHttp CreateObject (8220MSXML2.ServerXMLHTTP8221) 8216strURL 8220finance. yahoodquotes. csve. csvampfc4l1amps8221 amp strFromCurrency amp strToCurrency amp 8220X8221 strURL 8220finance. yahooqs8221 amp strFromCurrency amp strToCurrency amp 8221 X8221 8216Send pedido XML Com objXMLHttp. Open 8220GET8221, strURL, False. setRequestHeader 8220Content-Type8221, 8220applicationx-www-form-URLEncoded8221.send strRes. responseText End Com 8216Parse resposta dblRes Val (Split (strRes, 8220,8221) (1)) Sel Ect Caso strResultType Caso 8220Value8221: YahooCurrencyConverter dblRes Caso Else: YahooCurrencyConverter 82201 8221 amp strFromCurrency amp 8221 8221 amp dblRes amp 8221 8221 amplificador strToCurrency End Select CleanExit: Set objXMLHttp Nada Sair Função ErrorHandler: YahooCurrencyConverter 0 GoTo CleanExit Função final Por favor, alguém pode me ajudar Eu Precisa de alguma planilha do Excel para mostrar as taxas de câmbio em uma data específica. Exemplos: Taxa de câmbio de USD para GBP em 10 de outubro de 2014. Taxa de câmbio de USD para BRL em 10 de outubro de 2014. Eu acho que poderia ser uma função, por exemplo: FXRateatDate (currency1, currency2,8221Date8221) Isso é possível A outra coisa é que ele Deve trabalhar com meu laptop brasileiro excel, que usa. Como separador decimal (International Units System) Obrigado antecipadamente VB funciona muito bem. Juntamente com a taxa de câmbio OPEN (que é a única parte que eu estou usando), eu gostaria de também extrair a data de troca em uma célula. Você pode sugerir algo Isso ainda funciona Porque ele doesn8217t parece estar funcionando quando eu usá-lo Eu tentei a seguinte fórmula: FXRate (8220EUR8221,8221USD8221,8221bid8221) e ele retornou 8220VALUE8221. Caros todos, trabalhou muito bem até o fim de dezembro 2016. Parece Yahoo mudou algo em seu local. Alguém poderia por favor olhar para o código e dar uma solução o que precisa ser alterado, obrigado. Este código ajustado parece funcionar. Eu didn8217t testá-lo com todos os possíveis combos, mas funcionou para os poucos que eu fiz teste Função FXRate (currency1 Como String, currency2 Como String, rateType As String) Como Dim Dim str Como Cadeia Dim temp Como Cadeia Dim bidStart As Long Dim bidEnd As Longo Dim askStart Como Longo DimorParar Como Longo DimObjecto Como Longo DimObreEnd Como Longo DimOstoar Como Longo DiminuirDome Como Longo DimObjecto Como Duplo DimOrdenar Como Duplo DimRobar Como Duplo DimRclose ComoDuplo Dim iComo Longo, i1Como Longo, I2 Como Longo Dim myArray () Como variante str 8220finance. yahooqs8221 amp1 currency1 amp2 currency 8220X8221 temp ExecuteWebRequest (str) ReDim myArray (1 para Len (temp) 500) Para i 1 para Len (temp) 500 i1 (i 8211 1) 500 1 i2 i1 500 8211 1 Se (i2 gt Len (temp)) Então i2 Len (temp) myArray (i) Mid (temp, i1, 500) Próxima i 8216ActiveSheet. Range (8220A508221) myArray bidStart InStr (1, 8220Bid: 8221) bidStart InStr (bidStart, temp, 8220x82218221gt8221) 4 bidEnd InStr (bidStart 1, temp, 82208221) 4 askEnd InStr (askSt (OpenStart 1, temp, 82208221) 7 closeEnd InStr (closeStart 1, temp, 8220ltquot) bid Meio (temp, bidStart, bidEnd 8211 bidStart) perguntar Mid (temp, askStart, askEnd 8211 askStart ) Ropen Mid (temp, openStart, openEnd 8211 openStart) rclose Mid (temp, closeStart, closeEnd 8211 closeStart) Se rateType quotaskquot Então FXRate perguntar ElseIf rateType quotbidquot Então FXRate lance ElseIf rateType quotopenquot Então FXRate ropen ElseIf rateType quotclosequot Então FXRate rclose End If Function ExecuteWebRequest (ByVal url como String) As String Dim oXHTTP como objeto Se InStr (1, url, quotquot, 1) 0 Então url url amp 8220ampcb8221 amp Timer () 100 Else url amp 8220cb8221 amp Timer () 100 End If Set oXHTTP CreateObject (8220MSXML2.XMLHTTP8221) oXHTTP. Open 8220GET8221, url, False oXHTTP. send ExecuteWebRequest oXHTTP. responseText Definir oXHTTP Nada Oops 8211 deixado em algum código de depuração. Você pode excluir este material: ReDim myArray (1 Para Len (temp) 500) Para i 1 Para Len (temp) 500 i1 (i 1) 500 1 i2 i1 500 1 Se (i2 gt Len (temp)) Então i2 Len Temp) myArray (i) Mid (temp, i1, 500) Próxima i ActiveSheet. Range (A50) myArray Grrr Moderador 8211 exclua os comentários acima. O corte e colar não funcionou corretamente e deixou algum código fora. Esperemos que o que está abaixo está completo e correto. Obrigado Função FXRate (currency1 Como String, currency2 Como String, rateType Como String) Como Dim Duplo str Como String Dim temp Como String Dim bidStart Como Longo Dim bidEnd como Long Dim askStart Como Long Dim askEnd Como Long Dim openStart Como Long Dim openEnd As Long Dim closeStart Como Long Dim closeEnd As Long Dim bid Como Duplo Dim ask Como Duplo Dim ropen Como Duplo Dim rclose Como Dupla Dim i Como Longo, i1 Como Longo, i2 Como Long temp ExecuteWebRequest (str) ReDim myArray (1 To Len (temp) 500) Para i 1 Para Len (temp) 500 i1 (i 8211 1) 500 1 i2 i1 500 8211 1 Se (i2 gt Len (temp)) Então i2 Len (temp) myArray (i) Mid (temp, i1, 500 ) Próxima i 8216ActiveSheet. Range (8220A508221) myArray bidStart InStr (1, temp, 8220Bid: 8221) bidStart InStr (bidStart, temp, 8220x82218221gt8221) 4 bidEnd InStr (bidStart 1, temp, 82208221) 82208221) 7 openEnd InStr (openStart 1, temp, 82208221) 7 closeEnd InStr (closeStart 1, temp, 8220ltquot) bid Meio (temp, bidStart, bidEnd 8211 bidStart) a Sk Mid (temp, openStart, openEnd 8211 openStart) rclose Mid (temp, closeStart, closeEnd 8211 closeStart) Se rateType quotaskquot Então FXRate perguntar ElseIf rateType quotbidquot Então FXRate lance ElseIf rateType quotopenquot Então FXRate Ropen ElseIf rateType quotclosequot Então FXRate rclose End If Função ExecuteWebRequest (ByVal url Como String) As String Dim oXHTTP Como Objeto Se InStr (1, url, quotquot, 1) 0 Então url url amp 8220ampcb8221 amp Timer () 100 Else url url amp 8220cb8221 Amp Timer () 100 End If Definir oXHTTP CreateObject (8220MSXML2.XMLHTTP8221) oXHTTP. Open 8220GET8221, url, False oXHTTP. send ExecuteWebRequest oXHTTP. responseText Definir oXHTTP Nada como o Free Spreadsheets Master Base de Conhecimento Mensagens recentesHay dos mtodos para aprender ingls: el mtodo Lento y el mtodo Vocatic8230 O Sistema Vocatico é um mtodo sper rpido para dominar o vocabulario, a gramática e o ouvir em ingls. Se baseia-se em estratégias de utilização de um 8220ncleo do lenguaje8221 usando tcnicas como o mouve do refúgio. A eliminação de atividades e mdulos inefica dos cursos convencionais. Esta estratégia começou em 2014 quando um de nossos fundadores, Justin Fox, participam em um estudo da universidade de Stanford que concluy8230 Evitar atividades ineficaces nos permite diminuir o número de classes mas o aumento de tempo o tempo de concentrar-se nos componentes claves do idioma. Isto significa que pode levar a cabo o domínio de uma velocidade impressionante. Es por isso que os nossos filhos são rebeldes: sabem que eles são os únicos responsáveis ​​por dominar a teoria de ingls sem escolas de idiomas, sem aplicativos que distraem e sin tonteras. Este é um de nossas classes de áudio para que voa o cmo trabalhou com vocabulário, escutando e pronunciando todo o tempo. Compra um nível e um nível do sistema Vocatic: 24 euro. O sistema inclui acesso aos cursos Ingls Bsico e Ingls Radical. MultiCharts é uma plataforma de negociação vencedora de prêmios Se você precisa de software de negociação diária ou você investir por períodos mais longos, MultiCharts tem recursos que podem ajudar a atingir seus objetivos de negociação. Gráficos de alta definição, indicadores e estratégias integrados, negociação com um clique do gráfico e DOM, backtesting de alta precisão, otimização da força bruta e genética, execução automatizada e suporte para scripts EasyLanguage são ferramentas-chave à sua disposição. Hoice de corretores e feeds de dados A liberdade de escolha tem sido a idéia motriz por trás de nossos MultiCharts e você pode vê-lo na ampla escolha de feeds de dados suportados e corretores. Escolha o seu método de negociação, testá-lo e começar a negociar com qualquer corretor suportado que você gosta thats a vantagem de MultiCharts.

Comments