有时想记录策略运行过程中的数据到研究中去?有时想从研究读数据到策略中?然而不知道怎么做?本文将会告诉你方法。
摘要:
导入模块
存取list和dict型数据
存取dataframe型数据
策略中的存取
策略与研究间数据存取¶
摘要:
导入模块
存取list和dict型数据
存取dataframe型数据
策略中的存取
导入模块¶
# 策略与研究数据互通时往往需要导入这些模块import jsonimport pandas as pdfrom six import StringIO
存取list和dict型数据¶
读写list和dict型数据方法相同,该方法支持策略与研究间存取,也支持研究内存取。
准备list和dict型数据样例¶
从例子中可以看到,list和dict的值可以是字符也可以是数字,所以字符和数字都可以通过转成list或dict进行存取。
# list型scu = ['000001.XSHE',123]# dict型ab={'a':123,'b':'apple'}
存数据——write_file + json.dumps¶
变量其实不光是数据,还包括结构(变量名,对应关系等),所以不能直接存,还要把结构保存下来,json.dumps
的作用是把变量转成一种可存储的状态,write_file
则是把数据保存成个人研究空间中的一个文件。用法如下:
write_file("school\test.json", json.dumps(scu))
取数据——read_file + json.loads¶
json.loads
是把经过json.dumps
处理后的数据转成原来的状态,即是其逆运算。read_file
则是把个人研究空间中的文件读取出来。用法如下:
temp= json.loads(read_file('school\test.json'))temp # 输出出来看看
[u'000001.XSHE', 123]
对dict型数据方法是一样的¶
write_file("school\test.json", json.dumps(ab))temp= json.loads(read_file('school\test.json'))temp
{u'a': 123, u'b': u'apple'}
存取dataframe型数据¶
该方法支持策略与研究间存取,也支持研究内存取。
准备dataframe型数据样例¶
df=get_price(security='000001.XSHE', start_date='2015-11-26', end_date='2015-11-27',fields=['open','close'])df
| open | close |
---|
2015-11-26 | 10.00 | 9.90 |
---|
2015-11-27 | 9.86 | 9.49 |
---|
存数据——write_file+df.to_csv¶
write_file
上文说过了。dataframe类型不能用json.dumps
,要用.to_csv
,其作用是将dataframe转成可存储的csv格式。方法如下:
write_file("df.csv", df.to_csv())
取数据——pd.read_csv+StringIO+read_file¶
取dataframe数据的方法解释复杂,直接按格式写也基本够用了。
temp= pd.read_csv(StringIO(read_file('df.csv')),index_col=[0]) temp
| open | close |
---|
2015-11-26 | 10.00 | 9.90 |
---|
2015-11-27 | 9.86 | 9.49 |
---|
策略中的存取¶
方法跟在研究中一样,先导入模块,就可以正常使用。研究中存的文件策略中可以读取,策略中存的文件,研究中可以读取。例子如下:
(运行过本notebook到这里时,研究里已经有刚存的temp.json和df.csv两个文件了。)