コード例 #1
0
ファイル: stock.py プロジェクト: myfreshcity/mystock
def result_list_to_array(data):
    sdata = []

    def fixBadData(x):
        return '-' if math.isnan(x) else x

    for index, row in data.iterrows():
        sdata.append(
            {'name': row['name'],
             'code': row.code,
             'industry': row.industry,
             'tag': row.tag if hasattr(row, 'tag') else '',
             'ncode': fn.code_to_ncode(row.code),
             'pcode': row['code'] + ('01' if row['code'][:2] == '60'else '02'),
             'price': fixBadData(row.close),
             'mvalue': fixBadData(round(row.t_cap / (10000 * 10000), 2)),
             'pe': fixBadData(round(row.t_cap / (row.jlr_ttm * 10000), 2)),
             'ps': fixBadData(round(row.t_cap / (row.zyysr_ttm * 10000), 2)),
             'pcf': fixBadData(round(row.t_cap / (row.jyjxjl_ttm * 10000), 2)),
             'pb': fixBadData(round(row.t_cap / (row.gdqy * 10000), 2)),
             'roe': fixBadData(round(row.jlr_ttm * 100.0 / row.gdqy, 2)),
             'dar': fixBadData(round(row.zfz * 100.0 / (row.zzc), 2)),
             'jlr_rate': fixBadData(round(row['jlr_rate'] * 100.0, 2)),
             'cash_rate': fixBadData(round(row.jyjxjl_ttm * 1.0 / row.jlr_ttm, 2)),  # 现金净利润比
             'report_type': '-' if pd.isnull(row.report_type) else row.report_type
             }
        )
    return sdata
コード例 #2
0
ファイル: stock.py プロジェクト: myfreshcity/mystock
def query():
    query = request.args.get('query')

    df = ds.get_global_basic_data()
    df = df[(df['name'].str.contains(query)) | (df.index.str.contains(query))]
    result = []
    for index, row in df.iterrows():
        result.append(
            {'id': index, 'name': row['name'], 'ncode': fn.code_to_ncode(index)}
        )

    return jsonify(result=result)
コード例 #3
0
ファイル: holder.py プロジェクト: KrisTSE/mystock
def findStockJson():
    skey = request.args.get('skey')

    result = []
    st_result = dts.findStocksByHolder(skey)

    def fixBadData(x):
        import math
        return '-' if math.isnan(x) else round(x, 2)

    for r in st_result:
        report_date = r['report_date'].strftime('%Y-%m-%d')
        df = r['data']
        tableData = []
        for index, row in df.iterrows():
            tableData.append({
                'name':
                row['name'],
                'code':
                row.code,
                'holder_name':
                row.holder_name,
                'holder_code':
                row.holder_code,
                'hold_length':
                row.hold_length,
                'stock_industry':
                row.industry,
                'ncode':
                fn.code_to_ncode(row.code),
                'pcode':
                row['code'] + ('01' if row['code'][:2] == '60' else '02'),
                'price':
                fixBadData(row.close),
                'rate':
                fixBadData(row.rate),
                'mvalue':
                fixBadData(round(row.hold_amt / (10000 * 10000), 2)),
                'pe':
                fixBadData(row.pe),
                'ps':
                fixBadData(row.ps),
                'pcf':
                fixBadData(row.pcf),
                'pb':
                fixBadData(row.pb),
                'report_type':
                row.report_date.strftime('%Y-%m-%d')
            })
        result.append({"r_date": report_date, "data": tableData})

    return jsonify(data=result)
コード例 #4
0
ファイル: stock.py プロジェクト: myfreshcity/mystock
def person_stockholder_rank():
    data = hs.getStockHolderRank()
    sdata = []
    for index, row in data.iterrows():
        sdata.append({
            'name': row['name'],
            'code': row.code,
            'ncode': fn.code_to_ncode(row.code),
            'sum': row['sum'],
            'size': int(row['count']),
            'avg': round(row['avg'],3),
            'launch_date': row.launch_date
        })
    return render_template('stock/stockholder_rank.html', title='自然人持股排行', stocks=sdata)
コード例 #5
0
def query():
    query = request.args.get('query')

    df = ds.get_global_basic_data()
    df = df[(df['name'].str.contains(query)) | (df.index.str.contains(query))]
    result = []
    for index, row in df.iterrows():
        result.append({
            'id': index,
            'name': row['name'],
            'ncode': fn.code_to_ncode(index)
        })

    return jsonify(result=result)
コード例 #6
0
def person_stockholder_rank():
    data = hs.getStockHolderRank()
    sdata = []
    for index, row in data.iterrows():
        sdata.append({
            'name': row['name'],
            'code': row.code,
            'ncode': fn.code_to_ncode(row.code),
            'sum': row['sum'],
            'size': int(row['count']),
            'avg': round(row['avg'], 3),
            'launch_date': row.launch_date
        })
    return render_template('stock/stockholder_rank.html',
                           title='自然人持股排行',
                           stocks=sdata)
コード例 #7
0
ファイル: stock.py プロジェクト: lehuwu/mystock
def result_list_to_array(data):
    sdata = []

    def fixBadData(x):
        return '-' if math.isnan(x) else x

    for index, row in data.iterrows():
        sdata.append({
            'name':
            row['name'],
            'code':
            row.code,
            'industry':
            row.industry,
            'tag':
            row.tag if hasattr(row, 'tag') else '',
            'ncode':
            fn.code_to_ncode(row.code),
            'pcode':
            row['code'] + ('01' if row['code'][:2] == '60' else '02'),
            'price':
            fixBadData(row.close),
            'mvalue':
            fixBadData(round(row.t_cap / (10000 * 10000), 2)),
            'pe':
            fixBadData(round(row.t_cap / (row.jlr_ttm * 10000), 2)),
            'ps':
            fixBadData(round(row.t_cap / (row.zyysr_ttm * 10000), 2)),
            'pcf':
            fixBadData(round(row.t_cap / (row.jyjxjl_ttm * 10000), 2)),
            'pb':
            fixBadData(round(row.t_cap / (row.gdqy * 10000), 2)),
            'roe':
            fixBadData(round(row.jlr_ttm * 100.0 / row.gdqy, 2)),
            'dar':
            fixBadData(round(row.zfz * 100.0 / (row.zzc), 2)),
            'jlr_rate':
            fixBadData(round(row['jlr_rate'] * 100.0, 2)),
            'sh_rate':
            fixBadData(row['count']),
            'cash_rate':
            fixBadData(round(row.jyjxjl_ttm * 1.0 / row.jlr_ttm, 2)),  # 现金净利润比
            'report_type':
            '-' if pd.isnull(row.report_type) else row.report_type
        })
    return sdata
コード例 #8
0
ファイル: db_service.py プロジェクト: myfreshcity/mystock
def queryComment(uid,code,page=1):
    pageSize = 10
    if code.strip() == '':
        totalPage = db.session.query(Comment).filter_by(user_id=uid).count()
        comments = db.session.query(Comment). \
            filter_by(user_id=uid).order_by(Comment.created_time.desc()).offset(
            (page - 1) * pageSize).limit(pageSize)

    else:
        code = fn.code_to_ncode(code) if len(code) <= 6 else code
        totalPage = db.session.query(Comment).filter_by(stock=code, user_id=uid).count()

        comments = db.session.query(Comment). \
            filter_by(stock=code, user_id=uid).order_by(Comment.created_time.desc()).offset(
            (page - 1) * pageSize).limit(pageSize)
        # group_by(Comment.parent_id,Comment.created_time,Comment.id).all()

    return totalPage,comments
コード例 #9
0
ファイル: db_service.py プロジェクト: lehuwu/mystock
def queryComment(uid, code, page=1):
    pageSize = 10
    if code.strip() == '':
        totalPage = db.session.query(Comment).filter_by(user_id=uid).count()
        comments = db.session.query(Comment). \
            filter_by(user_id=uid).order_by(Comment.created_time.desc()).offset(
            (page - 1) * pageSize).limit(pageSize)

    else:
        code = fn.code_to_ncode(code) if len(code) <= 6 else code
        totalPage = db.session.query(Comment).filter_by(stock=code,
                                                        user_id=uid).count()

        comments = db.session.query(Comment). \
            filter_by(stock=code, user_id=uid).order_by(Comment.created_time.desc()).offset(
            (page - 1) * pageSize).limit(pageSize)
        # group_by(Comment.parent_id,Comment.created_time,Comment.id).all()

    return totalPage, comments
コード例 #10
0
def stockList(pageNum=None):

    pageSize = 200
    page = 0 if pageNum is None else int(pageNum)
    df = ds.get_global_basic_data()
    totalPages = int(df.index.size / pageSize);

    df = df[(page*pageSize+1):(page+1)*pageSize]

    data = []
    for index, row in df.iterrows():
        data.append({
            'code': index,
            'name': row['name'],
            'ncode': fn.code_to_ncode(index)
        })

    cuPage = 1 if page==0 else page

    return render_template('stock_list.html',title="股票清单",stocks=data,currentPage=cuPage,totalPages=totalPages)
コード例 #11
0
ファイル: holder.py プロジェクト: myfreshcity/mystock
def findStockJson():
    skey = request.args.get('skey')

    result = []
    st_result = dts.findStocksByHolder(skey)

    def fixBadData(x):
        import math
        return '-' if math.isnan(x) else round(x,2)

    for r in st_result:
        report_date = r['report_date'].strftime('%Y-%m-%d')
        df = r['data']
        tableData = []
        for index, row in df.iterrows():
            tableData.append(
                {'name': row['name'],
                 'code': row.code,
                 'holder_name': row.holder_name,
                 'holder_code': row.holder_code,
                 'hold_length': row.hold_length,
                 'stock_industry': row.industry,
                 'ncode': fn.code_to_ncode(row.code),
                 'pcode': row['code'] + ('01' if row['code'][:2] == '60'else '02'),
                 'price': fixBadData(row.close),
                 'rate': fixBadData(row.rate),
                 'mvalue': fixBadData(round(row.hold_amt / (10000 * 10000), 2)),
                 'pe': fixBadData(row.pe),
                 'ps': fixBadData(row.ps),
                 'pcf': fixBadData(row.pcf),
                 'pb': fixBadData(row.pb),
                 'report_type': row.report_date.strftime('%Y-%m-%d')
                 }
            )
        result.append({"r_date": report_date, "data": tableData})

    return jsonify(data=result)