Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
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={},
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
def stocks():
    symbols = data.get_basics()
    return render_template('home.html', symbols=symbols)