示例#1
0
文件: jobs.py 项目: zhoubug/stock
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
示例#2
0
文件: zptest.py 项目: zhoubug/stock
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()
示例#3
0
文件: test.py 项目: zhoubug/stock
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)