ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

FinRL(2)China_A_share_market_tushare.ipynb

FinRL(2)China_A_share_market_tushare.ipynb

按照教程中的顺序,昨天看了China_A_share_market_tushare.ipynb,花费了大半天时间,真是一言难尽。

全是坑:

  • 上一个例程用的是 FinRL,这一个例程用的又是是 FinRL-Meta。
  • FinRL-Mete/meta/data_processors/tushare.py 这个文件里使用的还是 tushare 老早之前的接口,而不是现行的 pro 接口。
  • 通过 tushare 下载下来的数据集,里面的时间是用 time 字段表示,而不是代码里期望的 date 字段。
  • ......

一整天都在报错、改代码,一直整到最后两个单元格,还是报错,实在绷不住了,最终放弃了。

不明白在教程中创建 China_A_share_market_tushare.ipynb 这个文件的意义何在,其实这个文件的流程和上一篇文章中的 Stock_NeurIPS2018.ipynb 是一样的,只不过是数据源不同而已。

Stock_NeurIPS2018.ipynb 的数据源是 Yahoo Finance,而 China_A_share_market_tushare.ipynb 的数据源是 Tushare。

China_A_share_market_tushare.ipynb 处理的是 A 股市场数据,而 Stock_NeurIPS2018.ipynb 处理的是美股市场数据。

我以为无法通过 Yahoo Finance 获取 A 股市场数据,没想到竟然可以,仅仅只需要修改一下股票代码!

下载A股数据
In[1]:

MY_TICKERS = ["600010.SS"]# 使用YahooDownloader下载数据
df = YahooDownloader(start_date=TRAIN_START_DATE,end_date=TRADE_END_DATE,ticker_list=MY_TICKERS  # 替换为自定义列表
).fetch_data()

Out[1]:

Shape of DataFrame:  (3194, 8)

查看前5行数据
In[2]:

df.head()

Out[2]:

| Price | date       | close   | high    | low     | open    | volume   | tic        | day |
|-------|------------|---------|---------|---------|---------|----------|------------|-----|
| 0     | 2010-01-04 | 1.587533| 1.615262| 1.587533| 1.611796| 87618140 | 600010.SS  | 0   |
| 1     | 2010-01-05 | 1.580600| 1.594465| 1.552871| 1.587533| 96975622 | 600010.SS  | 1   |
| 2     | 2010-01-06 | 1.584066| 1.608329| 1.559802| 1.577134| 101696089| 600010.SS  | 2   |
| 3     | 2010-01-07 | 1.545938| 1.584066| 1.542471| 1.584066| 88698358 | 600010.SS  | 3   |
| 4     | 2010-01-08 | 1.552871| 1.559802| 1.525140| 1.545938| 83714400 | 600010.SS  | 4   |

所以,对于 China_A_share_market_tushare.ipynb 这个文件,直接忽略它就行了,别再去折腾了。

改一下股票代码,就可以直接运行 Stock_NeurIPS2018.ipynb 这个文件来跑A股数据了。

返回列表