def run_analyse(script, codes, start, end): open_time = "09:30:00" close_time = "15:00:00" start_time = "{0} {1}".format(start, open_time) end_time = "{0} {1}".format(end, close_time) sim_params = create_simulation_parameters( start=pd.to_datetime(start_time).tz_localize("Asia/Shanghai").tz_convert("UTC"), end=pd.to_datetime(end_time).tz_localize("Asia/Shanghai").tz_convert("UTC"), data_frequency="daily", emission_rate="daily", sids=codes) with open(script, 'r') as f: algo_text = f.read() zp_algo = zipline.TradingAlgorithm(script=algo_text, namespace={}, capital_base=10e6, sim_params=sim_params) stocks = Market.get_stocks(codes, start, end) d = pd.Panel(stocks) res = zp_algo.run(d) results = {} results['parameters'] = { 'time': datetime.datetime.now(), 'algorithm': script, } results['results'] = res results['report'] = zp_algo.risk_report results['orders'] = zp_algo.blotter.orders results['benchmark'] = zp_algo.perf_tracker.all_benchmark_returns job = get_current_job(connection=Redis()) data.save_result(job.id, results) return results
from zipline.utils.factory import create_simulation_parameters sim_params = create_simulation_parameters( start = pd.to_datetime("2014-01-01 09:30:00").tz_localize("Asia/Shanghai").tz_convert("UTC"), #Bug in code doesn't set tz if these are not specified (finance/trading.py:SimulationParameters.calculate_first_open[close]) end = pd.to_datetime("2014-12-31 15:00:00").tz_localize("Asia/Shanghai").tz_convert("UTC"), data_frequency = "daily", emission_rate = "daily", sids = ["600000"]) prefix = '000666' codes = filter(lambda s: s.startswith(prefix), data.get_basics().index) start = '2014-01-01' end = '2015-04-30' benchmark = data.get_hist('sh') d = Market.get_stocks(codes, start, end) # d[code].prices.index = d[code].prices.index.to_datetime().tz_localize('UTC') # d[code].prices['price'] = d[code].prices['close'] d = pd.Panel(d) with open('/home/leo/Workspace/stock/algorithms/aberration.py', 'r') as f: algo_text = f.read() # d = zipline.data.load_bars_from_yahoo(stocks=['AAPL'], start=start, end=end) algo = zipline.TradingAlgorithm(script=algo_text, namespace={}, capital_base=100000, sim_params=sim_params) # results = algo.run(d, benchmark_return_source=d[code]['close'].pct_change()) results = algo.run(d) fig = plt.figure()
import zipline import data from algorithms import test import pandas as pd import matplotlib.pyplot as plt from analyse import Simulator, BackTester from strategy import TestStrategy from model import Market code = '600000' start = '2014-01-01' end = '2014-12-31' # d = data.get_hist(code, start, end) d = Market.get_stocks([code]) strategy = TestStrategy() analyst = BackTester() sim = Simulator(strategy) sim.add_analyst('backtest', analyst) sim.run(d, start, end) # syms = ["002038.sz"] # d = zipline.data.load_bars_from_yahoo(stocks=syms, start='2014-01-01', end='2014-12-31',) # algo = zipline.TradingAlgorithm(initialize=test.initialize, # handle_data=test.handle_data, # namespace={}, # capital_base=10e6) # results = algo.run(d)