Ejemplo n.º 1
0
def position():
    nav = 'position'
    today = (datetime.utcnow() + timedelta(hours=8)).strftime('%Y-%m-%d')
    user = current_user._id
    num_collections = Position.num_collections(user)
    average_increase = Position.average_increase(user)
    market_value = Position.market_value(user)
    realized_profit = Position.realized_profit(user)
    unrealized_profit = Position.unrealized_profit(user)
    annual_profit = Position.annual_profit(user)
    position = Position.user_position(user)

    # charts
    pfs = ProfitLog.profits(user)
    pldates = [pf['date'].strftime('%Y-%m-%d') for pf in pfs]
    plvalues = [int(pf['profit']) for pf in pfs]

    exchanges = [{'value': n, 'text': n}
                 for n in sorted(ABBRS)]
    total_transactions = Transaction.user_total_transactions(user)
    transactions = Transaction.user_recent_transactions(
        user)
    for t in transactions:
        t.typecn = '买入' if t.type_ == 'buy' else '卖出'
    return render_template('user/position.html', **locals())
Ejemplo n.º 2
0
Archivo: cli.py Proyecto: maocis/ybk
def do_cron(parser, args):
    setup_config(args)
    lockfile = '/tmp/ybk.cron.lock'
    path = pathlib.Path(lockfile)

    class doing(object):

        def __enter__(self):
            path.open('w').write('')

        def __exit__(self, type, value, traceback):
            if value:
                crawl_log.exception('出错啦')
            path.unlink()
            return True

    if not path.exists():
        with doing():
            crawl_all()

        now = datetime.utcnow() + timedelta(hours=8)
        with doing():
            if 9 <= now.hour <= 20:
                realtime_all()

        with doing():
            if now.hour == 6 and now.minute < 5:
                history_all()

        with doing():
            if 9 <= now.hour <= 20:
                # 生成所有人的历史收益记录
                ProfitLog.ensure_all_profits()

        # 更新所有交易账号的状态
        if now.hour == 22 and 30 <= now.minute <= 35:
            trade_account_all()
    else:
        crawl_log.info('已有cron在跑, 直接退出')