JoinQuant 心得——数据存取
by 庸俗神父
聚宽使用两个月,分享些心得,方便后来人。
若朋友们觉得有帮助,回复一下,权当鼓励。
当然,若觉得有疑问或建议,也请告知。
API文档已有一定的说明,故只写重点,但附上API连接,请自行查阅。
- JoinQuant 心得——股票行情数据
- JoinQuant 心得——时间持仓资金数据
- JoinQuant 心得——基本面数据
- JoinQuant 心得——订单
- JoinQuant 心得——回测功能性完善
- JoinQuant 心得——数据存取
存取数据
- API原文 read_file
- API原文 write_file
- 策略和研究中都能用。
- 文件内容只能是 str或者unicode。
- List与Dict等常规非字符数据,写入需
json.dumps()
,读取需json.loads()
,所以需导入相应模块import json
。
- DataFrame类型数据 写入需
.to_csv
,读取需pd.read_csv
,StringIO
。所以需导入相应模块import pandas as pd
,from six import StringIO
- DataFrame类型数据在研究中有更简单的写法,不用
read_file
和write_file
即直接.to_csv
和pd.read_csv
,但不能在策略中用,具体说明待更新。
样例(输出结果插入到相应代码后了)
import pandas as pd
import numpy as np
import json
from six import StringIO
def initialize(context):
g.security = ['000001.XSHE','000002.XSHE']
set_universe(g.security)
def handle_data(context, data):
security = ['000001.XSHE','000002.XSHE']
tb={'a':1,'b':2}
df=get_price(security=security, start_date='2015-11-26'
, end_date='2015-11-27'
, frequency='1d'
, fields=['open','high','low','close'])
print df['close']
write_file('test.json',json.dumps(security))
temp= json.loads(read_file('test.json'))
print temp
write_file('test.json',json.dumps(tb))
temp= json.loads(read_file('test.json'))
print temp
write_file('test.csv', df['close'].to_csv(), append=False)
close= pd.read_csv(StringIO( read_file('test.csv')),index_col=[0])
print close