Esempio n. 1
0
File: account.py Progetto: rlcjj/zvt
def get_account(trader_name=None,
                model_name=None,
                return_type='df',
                start_timestamp=None,
                end_timestamp=None,
                filters=None,
                session=None,
                order=None,
                limit=None):
    try:
        data_schema = SimAccount
        query = session.query(data_schema)

        query = query.filter(data_schema.trader_name == trader_name,
                             data_schema.model_name == model_name)

        query = common_filter(query,
                              data_schema=data_schema,
                              start_timestamp=start_timestamp,
                              end_timestamp=end_timestamp,
                              filters=filters,
                              order=order,
                              limit=limit)
        if return_type == 'df':
            return pd.read_sql(query.statement, query.session.bind)
        elif return_type == 'domain':
            return query.all()
        elif return_type == 'dict':
            return [item.as_dict() for item in query.all()]
    except Exception:
        raise
Esempio n. 2
0
def get_securities(security_type='stock',
                   exchanges=None,
                   codes=None,
                   columns=None,
                   return_type='df',
                   session=None,
                   start_timestamp=None,
                   end_timestamp=None,
                   filters=None,
                   order=None,
                   limit=None,
                   provider='eastmoney'):
    local_session = False

    data_schema = get_security_schema(security_type)
    store_category = get_store_category(data_schema=data_schema)

    if not session:
        session = get_db_session(provider=provider,
                                 store_category=store_category)
        local_session = True

    if not order:
        order = data_schema.code.asc()

    try:
        if columns:
            query = session.query(*columns)
        else:
            query = session.query(data_schema)

        # filters
        if exchanges:
            query = query.filter(data_schema.exchange.in_(exchanges))
        if codes:
            query = query.filter(data_schema.code.in_(codes))

        query = common_filter(query,
                              data_schema=data_schema,
                              start_timestamp=start_timestamp,
                              end_timestamp=end_timestamp,
                              filters=filters,
                              order=order,
                              limit=limit)

        if return_type == 'df':
            # TODO:add indices info
            return pd.read_sql(query.statement, query.session.bind)
        elif return_type == 'domain':
            return query.all()
        elif return_type == 'dict':
            return [item.to_json() for item in query.all()]
    except Exception as e:

        raise
    finally:
        if local_session:
            session.close()