一行代码调用您的“黑盒子因子”--如何用真格量化读取策略附件Excel

部分量化交易者觉得一些内容不适合写到策略代码中,他们更希望从策略附件中调用这些内容(比如一些事先由“高深莫测的AI”选定的交易标的列表、一些平台还未提供的数据或其他各种“黑盒子因子”)。我们现在用一个excel文件为例(excel文件比txt和csv都复杂,如果您读取excel文件都没问题,那txt和csv都不在话下),介绍怎么读取附件内容。

首先是上传附件,通过代码编辑框上的“上传附件”按钮即可选择文件上传。真格量化允许您上传总共不超过1G的附件,单个附件的大小不能超过100M。这已经可以包含非常多的数据了。

要检查附件是否上传成功,可以点击“管理附件”按钮,能看到文件,说明上传成功。

为了读取excel文件,我们需要导入xlrd库。为了处理日期,我们需要导入datetime库。

然后,我们要定义两个用来读取excel文件的函数。

首先是打开excel文件的函数:

其次是逐行读取excel文件内容的函数:

比如我们excel文件内容是这样的:

假设我们需要读取的数据在“Sheet1"表:

我们给定附件名称(直接写文件名即可,无需路径),和数据表名(比如”Sheet1“),然后只要一行代码就能把表的内容读出来:

g.tables=excel_table_byname(filename, 0, sheetname)

我们将表的内容以全局变量的形式存在g.tables,这样我们在策略代码的其他地方都能调用表的内容。

因为xlrd直接读取excel的日期会将其转为浮点数,如果有需要,我们可以通过一个循环将excel表第一列的表示日期的浮点数转成datetime形式或者日期字符串形式。

 datestring=datetime.datetime(*xldate_as_tuple(row[0],0))

 row[0]=datestring.strftime('%Y-%m-%d')

根据需要g.tables=excel_table_byname(filename, 0, sheetname)这个语句可以放在OnStart或者OnMarketQuotationInitialEx部分或者您需要读取表内容的任何地方。

我们用

    for item in g.tables:

 

        print item

就可以查看表的内容:

现在您就可以自由地在真格量化调用自己积累的各种外部数据和”黑盒子因子“啦。

— — — — — — E N D — — — — — —

往期文章:

Numpy处理tick级别数据技巧

真正赚钱的期权策略曲线是这样的

多品种历史波动率计算

如何实现全市场自动盯盘

AI是怎样看懂研报的

真格量化策略debug秘籍

真格量化对接实盘交易

常见高频交易策略简介

如何用撤单函数改进套利成交

Deque提高处理队列效率

策略编程选Python还是C++

如何用Python继承机制节约代码量

十大机器学习算法

真格量化可访问:

https://quant.pobo.net.cn

真格量化微信公众号,长按关注:

遇到了技术问题?欢迎加入真格量化Python技术交流QQ群  726895887

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值