Python中的外汇历史数据

2024-05-15 01:45:46 发布

您现在位置:Python中文网/ 问答频道 /正文

已经找了好几个小时了,所以请友好一点。

需要用Python获取历史外汇数据的解决方案。

对于股票来说,这很简单:

import pandas as pd
import pandas_datareader as pdr

start = dt.date.today() - dt.timedelta(days=30)
end = dt.date.today()

df = pdr.DataReader('AAPL', 'google', start, end)
print(df.head())

曾尝试过谷歌、雅虎、弗雷德和奥兰达。似乎什么都没用。

请给出一个如何请求数据的代码示例。(在大多数情况下,一行就可以了)。

谢谢你。


Tags: 数据importpandasdftodaydateasdt
3条回答

也许你看起来不够认真:)几个月前,一个很帅的家伙发表了这篇文章。诚然,这不是最好的代码(第一个开源项目),但是,它目前正在开发和不断改进中。下一个版本将更加高效和干净。

fx_collect

设计用于将所有FXCM的历史数据本地存储在Mariadb中。

    +---------------------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+--------+
    | date                | bidopen   | bidhigh   | bidlow    | bidclose  | askopen   | askhigh   | asklow    | askclose  | volume |
    +---------------------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+--------+
    | 2017-04-27 10:01:00 | 17.294000 | 17.296000 | 17.289000 | 17.290000 | 17.340000 | 17.340000 | 17.334000 | 17.335000 |    113 |
    | 2017-04-27 10:02:00 | 17.290000 | 17.298000 | 17.285000 | 17.295000 | 17.335000 | 17.342000 | 17.330000 | 17.340000 |    114 |
    | 2017-04-27 10:03:00 | 17.295000 | 17.301000 | 17.289000 | 17.299000 | 17.340000 | 17.347000 | 17.340000 | 17.344000 |     98 |
    | 2017-04-27 10:04:00 | 17.299000 | 17.300000 | 17.286000 | 17.295000 | 17.344000 | 17.345000 | 17.330000 | 17.340000 |    124 |
    | 2017-04-27 10:05:00 | 17.295000 | 17.295000 | 17.285000 | 17.292000 | 17.340000 | 17.340000 | 17.330000 | 17.336000 |    130 |
    | 2017-04-27 10:06:00 | 17.292000 | 17.292000 | 17.279000 | 17.292000 | 17.336000 | 17.336000 | 17.328000 | 17.332000 |     65 |
    | 2017-04-27 10:07:00 | 17.292000 | 17.304000 | 17.287000 | 17.298000 | 17.332000 | 17.348000 | 17.332000 | 17.345000 |    144 |
    | 2017-04-27 10:08:00 | 17.298000 | 17.306000 | 17.297000 | 17.302000 | 17.345000 | 17.350000 | 17.343000 | 17.346000 |     96 |
    | 2017-04-27 10:09:00 | 17.302000 | 17.303000 | 17.294000 | 17.294000 | 17.346000 | 17.346000 | 17.338000 | 17.338000 |     50 |
    | 2017-04-27 10:10:00 | 17.294000 | 17.296000 | 17.281000 | 17.291000 | 17.338000 | 17.338000 | 17.328000 | 17.333000 |     50 |

或者,如果你只是想让基本的工具让你开始并建立自己的。

python-forexconnect

需要演示或实时FXCM帐户才能获取数据。他们在不同的时间段(fxcm)提供免费的10年历史数据。

零售经纪feed总是有偏差,但我不同意没有好的历史feed。FX的行业标准是EBSfeed。然而,这是一个昂贵的选择。FXMarketAPI提供的提要与此非常匹配。它不隶属于任何经纪人。API有一个pandas端点,可以帮助您提取数据。尽管对免费用户有1000个请求的限制。你可以在下面看到一个例子。

URL = "https://fxmarketapi.com/apipandas"
params = {'currency' : 'EURUSD',
'start_date' : '2018-07-02',
'end_date':'2018-12-06',
'api_key':'**************'}

response = requests.get("https://fxmarketapi.com/apipandas", params=params)
df= pd.read_json(response.text)

你只需要历史货币价值吗?

尝试将forex_python模块与datetime类(来自datetime模块)一起使用。我正在使用python 3,但我怀疑这是否太重要了。

这些汇率是欧洲中央银行自1999年以来下午3点的数据。

>>> from datetime import datetime
>>> from forex_python.converter import get_rate

>>> t = datetime(2001, 10, 18)  # the 18th of October, 2001
>>> get_rate("USD", "GBP", t)
0.69233
>>> get_rate("GBP", "USD", t)
1.4444
>>> 1 / 1.4444   # check
0.6923289947382997 

>>> t = datetime(2006, 6, 26)  # June 26th, 2006
>>> get_rate("GBP", "USD", t)
1.8202

所以
2001年10月18日,1美元=0.69英镑,
2006年6月26日,1英镑=1.82美元。

相关问题 更多 >

    热门问题