使用MATLAB通过Web服务获取货币汇率

3

如何在matlab中获取两种给定货币的当前汇率?

我尝试了这个方法,但似乎该网络服务已不再可用。

是否有其他简单的方法可以通过网络服务在matlab中获取最新的货币汇率?

2个回答

3
使用CREATECLASSFROMWSDL从货币转换Web服务构建本地类。您可以使用Web服务的操作,使用类方法进行转换。一个货币转换Web服务(有很多)可在http://www.webservicex.net/CurrencyConvertor.asmx?WSDL找到。以下是其使用示例:
>> converter = createClassFromWsdl('http://www.webservicex.net/CurrencyConvertor.asmx?WSDL');
检索文档 'http://www.webservicex.net/CurrencyConvertor.asmx?WSDL'
>> converter = CurrencyConvertor
    端点: 'http://www.webservicex.net/CurrencyConvertor.asmx'
        wsdl: 'http://www.webservicex.net/CurrencyConvertor.asmx?WSDL'
>> ConversionRate(converter, 'CAD', 'EUR')
ans =
0.7059
>> ConversionRate(converter, 'USD', 'CAD')
ans =
0.953

请注意,ConversionRate返回一个字符数组,即如果您想使用汇率进行计算,则仍需使用str2double将结果转换为数字。

货币缩写列表可在http://www.webservicex.net/ws/wsdetails.aspx?wsid=10找到。


0
这是一个旧问题,但我想更新答案。我在MATLAB中制作了这个货币转换器函数(exchangerate.m),它利用了openexchangerates.org API,该API得到更好的支持并包括历史数据。以下是它的工作原理描述(非常简单):
此函数使用openexchangerates.org API返回汇率。为了正确工作,必须连接到互联网。默认的app_id来自免费账户openexchangerates.org,每月有1000个API请求限制。为了获得更大的灵活性,请注册您自己的免费或付费账户,并将app_id值替换为您自己的id号码。 输入: 1)base:一个字符串,表示基础货币,其值设置为1。如果提供了空字符串'',则使用默认值'USD'。请参见下面的有效货币缩写列表。
2)curr:一个字符串或字符串单元数组,表示要与基础货币进行比较的货币缩写。如果输入'all'或'',则返回所有可用货币。请参见下面的有效货币缩写列表。
3)date:一个可选字符串,包含所需的汇率日期(历史数据可能不总是可用)。输入应为'YYYY-MM-DD'格式。要获取最新的汇率数据,请使用date='latest'或'',这是默认值。从1999年开始的历史数据。 输出: 1)汇率:一个数字或向量,指示所需货币(货币)curr与基础货币base之间的汇率。

2)货币:rates中相应货币缩写的单元格数组。

3)rate_struct:一个结构体,其字段名称等于货币缩写,相关值为汇率。此输出仅为方便起见将汇率和货币组合在一起。

示例:

1)获取比特币与美元之间的最新汇率(注意:所有国家缩写均列在m文件中)

[rates,currencies,rates_struct] = exchangerate('USD','BTC'); 
>> rates = 1.614e-3 
>> currencies = 'BTC' 
>> rates_struct = 
       BTC: 1.614e-3

2) 获取所有可用货币的最新汇率

[rates,currencies,rates_struct] = exchangerate();

3) 在2013年6月5日,使用美元作为基础货币,获取比特币、印度卢比和欧元的汇率

[rates,currencies,rates_struct] = exchangerate('USD',{'BTC','INR','EUR'},'2013-06-05'); 
>> rates = [8.246e-3; 5.672e1; 7.642e-1] 
>> currencies = {'BTC';'INR';'EUR'} 
>> rates_struct = 
      BTC: 8.246e-3 
      INR: 5.672e1 
      EUR: 7.642e-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接