def optimizer(strategyclass,portfolioclass,feed,params_generator,pkl_name=None):
log = {}
if pkl_name is None:
pkl_name = 'optimizer_log'
pkl_path = os.path.join(sys.path[0],'%s.pkl' % pkl_name)
pd.to_pickle(log, pkl_path)
while True:
try:
p_list = params_generator.next()
except:
break
else:
backup = copy.deepcopy(feed)
data = backup
strategy = strategyclass(data,p_list)
portfolio = portfolioclass(data)
go = OnePiece(data, strategy, portfolio)
def combine():
go.sunny()
print p_list
log = pd.read_pickle(pkl_path)
log[p_list] = go.get_all_holdings().iat[-1,-1]
pd.to_pickle(log, pkl_path)
p = multiprocessing.Process(target=combine)
p.daemon=True
p.start()
p.join()
评论列表
文章目录