请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3364707 新帖:28

使用pickle模块将数据对象保存到文件并在回测中读取

SCSDV_d发表于:5 月 10 日 00:07回复(1)

注意:若要在回测中读取研究中的pkl文件,请使用研究中的Python2环境创建pkl文件。

在回测中调用下面研究中生成的pkl方法如下:

import cPickle as pickle
from six import StringIO

# 导入文件
pkl_file_read = read_file('research.pkl')
result = pickle.load(StringIO(pkl_file_read))

# 打印结果
print result

效果如下图
1e8010564bd5166ceeb4533d46419019.png

使用pickle模块将数据对象保存到文件¶

import pandas as pd
from pandas import Series, DataFrame
import numpy as np


a = ['a','b','c']
b = ['o','p','q']
result = {}
score_df = DataFrame(np.zeros(len(a)*len(b)).reshape(len(a),len(b)),index = a,columns = b)

result['2017-04-17'] = score_df
score_df = score_df + 1
result['2017-04-18'] = score_df
score_df = score_df + 1
result['2017-04-19'] = score_df

result
{'2017-04-17':    o  p  q
 a  0  0  0
 b  0  0  0
 c  0  0  0, '2017-04-18':    o  p  q
 a  1  1  1
 b  1  1  1
 c  1  1  1, '2017-04-19':    o  p  q
 a  2  2  2
 b  2  2  2
 c  2  2  2}
#使用pickle模块将数据对象保存到文件
import pickle
pkl_file = open('research.pkl', 'wb')
pickle.dump(result, pkl_file, 0)
pkl_file.close()
#使用pickle模块从文件中重构python对象
import pickle

pkl_file = open('research.pkl', 'rb')
temp = pickle.load(pkl_file)
pkl_file.close()
temp
{'2017-04-17':    o  p  q
 a  0  0  0
 b  0  0  0
 c  0  0  0, '2017-04-18':    o  p  q
 a  1  1  1
 b  1  1  1
 c  1  1  1, '2017-04-19':    o  p  q
 a  2  2  2
 b  2  2  2
 c  2  2  2}
 

全部回复

0/140

量化课程

    移动端课程