def analyse(): form = AnalyseForm(request.form) algorithms = [f for f in os.listdir(app.config['ALGO_DIR'])] form.algorithm.choices = [(f, f) for f in algorithms if f.endswith('py')] if request.method == "POST": prefix = form.symbols.data symbols = filter(lambda s: s.startswith(prefix), data.get_basics().index) start = form.start.data end = form.end.data algo_fname = os.path.join(app.config['ALGO_DIR'], form.algorithm.data) parameters = form.parameters.data kwargs = [ps.split('=') for ps in parameters.split(';')] kwargs = {v[0]: v[1] for v in kwargs if len(v) == 2} job = q.enqueue(run_analyse, algo_fname, symbols, start, end) # job_dict[job.id] = job return render_template("analyse.html", form=form, strategies=strategies.values(), publish_parts=publish_parts)
def get_symbol_list(market=None): if not Market._symbols: Market._symbols = data.get_basics().index Market._symbols.sort() if market: return filter(lambda s: s.startswith(market), Market._symbols) else: return Market._symbols
trading.environment.open_and_closes = pd.DataFrame(index=trading.environment.trading_days, columns=["market_open","market_close"]) trading.environment.open_and_closes.market_open = (trading.environment.open_and_closes.index + pd.to_timedelta(60*9+30,unit="m")).to_pydatetime() trading.environment.open_and_closes.market_close = (trading.environment.open_and_closes.index + pd.to_timedelta(60*15,unit="m")).to_pydatetime() 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={},
def stock(code): stock = data.get_basics(code) regr = capm(code, 'sh', '2015-01-01', '2015-04-21') return render_template('stock.html', code=code, stock=stock, capm=regr)
def stocks(): symbols = data.get_basics() return render_template('home.html', symbols=symbols)