Exemplo n.º 1
0
def api_panorama_dynamic_valuation_chg():
    date = request.values.get('date')
    result = {'industry_name': [], 'chg': []}
    date_list = get_offset_open_date_list(date, 2)
    chg_data = {}
    chg_data_sorted = {}
    chg_result = {}
    for i in range(0, len(date_list)):
        data = Stock_Industry_Basic.query.join(Stock_Industry_CSRC_1,
                                               Stock_Industry_Basic.industry_code == Stock_Industry_CSRC_1.industry_csrc_1_code).add_columns(
            Stock_Industry_CSRC_1.industry_csrc_1_name).filter(Stock_Industry_Basic.trade_date == date_list[i]).all()
        if i == 0:
            for j in data:
                chg_data[j.industry_csrc_1_name] = []
                chg_data[j.industry_csrc_1_name].append(j.Stock_Industry_Basic.pe_ttm_overall)
        else:
            for j in data:
                chg_data[j.industry_csrc_1_name].append(j.Stock_Industry_Basic.pe_ttm_overall)
    for i in chg_data:
        chg_data_sorted[i] = round((chg_data[i][1] - chg_data[i][0]) / chg_data[i][0], 3)
    sum_result = sorted(chg_data_sorted.items(), key=lambda x: x[1], reverse=True)
    for i in sum_result:
        industry = i[0][4:]
        result['industry_name'].append(industry)
        result['chg'].append(i[1])
    return jsonify(result)
Exemplo n.º 2
0
def api_panorama_dynamic_valuation_n():
    date = request.values.get('date')
    days=request.values.get('days')
    result={'industry_name':[],'amount':[]}
    date_list=get_offset_open_date_list(date,int(days))
    sum_data={}
    sum_data_sorted={}
    sum_result={}
    for i in range(0,len(date_list)):
        data=Stock_Industry_Basic.query.join(Stock_Industry_CSRC_1,Stock_Industry_Basic.industry_code==Stock_Industry_CSRC_1.industry_csrc_1_code).add_columns(Stock_Industry_CSRC_1.industry_csrc_1_name).filter(Stock_Industry_Basic.trade_date==date_list[i]).all()
        if i==0:
            for j in data:
                sum_data[j.industry_csrc_1_name]=[]
                sum_data[j.industry_csrc_1_name].append(j.Stock_Industry_Basic.pe_ttm_overall)
        else:
            for j in data:
                sum_data[j.industry_csrc_1_name].append(j.Stock_Industry_Basic.pe_ttm_overall)
    for i in sum_data:
        sum = 0
        for a in sum_data[i]:
            if a is None:
                a = 0
            sum += a
        sum_data_sorted[i] = int(sum)
    sum_result = sorted(sum_data_sorted.items(), key=lambda x: x[1], reverse=True)
    for i in sum_result:
        industry=i[0][4:]
        result['industry_name'].append(industry)
        result['amount'].append(i[1])
    return jsonify(result)
Exemplo n.º 3
0
def api_trading_point_sorting_steady():
    date = request.args.get('date')
    date_list = get_offset_open_date_list(date)
    buy_count_data = []
    sell_count_data = []
    category_data = []
    for i in date_list:
        buy_count_data.append(
            Model_Trading_Point.query.filter_by(trade_date=i,
                                                steady_buy_point=1).count())
        sell_count_data.append(
            Model_Trading_Point.query.filter_by(trade_date=i,
                                                steady_sell_point=1).count())
        category_data.append(i[0:4] + '/' + i[4:6] + '/' + i[6:8])
    model_result = Model_Trading_Point.query.filter_by(
        trade_date=date, steady_buy_point=1).all()
    model_data = []
    for i in model_result:
        code = i.ts_code
        stock_basic = Stock_Basic.query.filter_by(ts_code=code).first()
        stock_bar_result = Stock_Daily_Bar.query.filter(
            Stock_Daily_Bar.ts_code == code,
            Stock_Daily_Bar.trade_date <= date,
            Stock_Daily_Bar.trade_date >= get_offset_date(
                date, -365)).order_by(Stock_Daily_Bar.trade_date.asc()).all()
        close = []
        for j in stock_bar_result:
            close.append(j.close)
        basic_data = Stock_Daily_Basic.query.filter_by(
            ts_code=code, trade_date=date).first()
        model_data.append({
            'symbol': stock_basic.symbol,
            'name': stock_basic.name,
            'bar': close[-60:],
            'close': close[-1],
            'min': min(close),
            'max': max(close),
            'turnover_rate': basic_data.turnover_rate
        })
    return jsonify({
        'chart': {
            'category': category_data,
            'buy': buy_count_data,
            'sell': sell_count_data
        },
        'table': model_data
    })
Exemplo n.º 4
0
def api_panorama_capital_flow_table():
    date = request.values.get('date')
    date_list = get_offset_open_date_list(date, 30)
    data_list = {}
    chg_list={}
    cur_pcg_list={}
    data_sorted = {}
    flag=0
    result = {'industry':[],'data':[],'chg':[],'cur_chg':[]}
    for i in range(0, len(date_list)):
        data = Stock_Industry_Basic.query.join(Stock_Industry_CSRC_1,
                                               Stock_Industry_Basic.industry_code == Stock_Industry_CSRC_1.industry_csrc_1_code).add_columns(
            Stock_Industry_CSRC_1.industry_csrc_1_name).filter(Stock_Industry_Basic.trade_date == date_list[i]).all()
        if len(data)>0:
            if i == flag:
                for j in data:
                    data_list[j.industry_csrc_1_name] = []
                    data_list[j.industry_csrc_1_name].append(j.Stock_Industry_Basic.amount_sum/100000000)
            else:
                for j in data:
                    data_list[j.industry_csrc_1_name].append(j.Stock_Industry_Basic.amount_sum/100000000)
        else:
            flag+=1
    for i in data_list:
        chg_list[i]=[]
        for j in range(1,len(data_list[i])):
            if j == (len(data_list[i]) - 1):
                k=(data_list[i][j]-data_list[i][j-1])/data_list[i][j-1]
                cur_pcg_list[i]=k
                chg_list[i].append(k)
            else:
                k = (data_list[i][j] - data_list[i][j - 1]) / data_list[i][j - 1]
                chg_list[i].append(k)
    data_sorted = sorted(cur_pcg_list.items(), key=lambda x: x[1], reverse=True)
    for i in data_sorted:
        result['industry'].append(i[0][4:])
        result['data'].append(data_list[i[0]])
        result['chg'].append(chg_list[i[0]])
        result['cur_chg'].append(i[1])
    return jsonify(result)
Exemplo n.º 5
0
def api_trading_point_sorting_comprehensive():
    date = request.args.get('date')
    date_list = get_offset_open_date_list(date)
    buy_count_data = []
    sell_count_data = []
    category_data = []
    for i in date_list:
        buy_count_data.append(
            Model_Trading_Point.query.filter_by(
                trade_date=i, aggressive_buy_point=1).count() +
            Model_Trading_Point.query.filter_by(trade_date=i,
                                                steady_buy_point=1).count())
        sell_count_data.append(
            Model_Trading_Point.query.filter_by(
                trade_date=i, aggressive_sell_point=1).count() +
            Model_Trading_Point.query.filter_by(trade_date=i,
                                                steady_sell_point=1).count())
        category_data.append(i[0:4] + '/' + i[4:6] + '/' + i[6:8])
    model_aggressive_result = Model_Trading_Point.query.filter_by(
        trade_date=date, aggressive_buy_point=1).all()
    model_steady_result = Model_Trading_Point.query.filter_by(
        trade_date=date, steady_buy_point=1).all()
    aggressive_code_list = []
    steady_code_list = []
    for i in model_aggressive_result:
        aggressive_code_list.append(i.ts_code)
    for i in model_steady_result:
        steady_code_list.append(i.ts_code)
    model_common_data = []
    model_aggressive_data = []
    model_steady_data = []
    for i in list(
            set(aggressive_code_list).intersection(set(steady_code_list))):
        stock_basic = Stock_Basic.query.filter_by(ts_code=i).first()
        bar_data = Stock_Daily_Bar.query.filter_by(ts_code=i,
                                                   trade_date=date).first()
        basic_data = Stock_Daily_Basic.query.filter_by(
            ts_code=i, trade_date=date).first()
        model_common_data.append({
            'symbol': stock_basic.symbol,
            'name': stock_basic.name,
            'pct_chg': bar_data.pct_chg,
            'turnover_rate': basic_data.turnover_rate
        })
    for i in list(set(aggressive_code_list).difference(set(steady_code_list))):
        stock_basic = Stock_Basic.query.filter_by(ts_code=i).first()
        bar_data = Stock_Daily_Bar.query.filter_by(ts_code=i,
                                                   trade_date=date).first()
        basic_data = Stock_Daily_Basic.query.filter_by(
            ts_code=i, trade_date=date).first()
        model_aggressive_data.append({
            'symbol': stock_basic.symbol,
            'name': stock_basic.name,
            'pct_chg': bar_data.pct_chg,
            'turnover_rate': basic_data.turnover_rate
        })
    for i in list(set(steady_code_list).difference(set(aggressive_code_list))):
        stock_basic = Stock_Basic.query.filter_by(ts_code=i).first()
        bar_data = Stock_Daily_Bar.query.filter_by(ts_code=i,
                                                   trade_date=date).first()
        basic_data = Stock_Daily_Basic.query.filter_by(
            ts_code=i, trade_date=date).first()
        model_steady_data.append({
            'symbol': stock_basic.symbol,
            'name': stock_basic.name,
            'pct_chg': bar_data.pct_chg,
            'turnover_rate': basic_data.turnover_rate
        })
    return jsonify({
        'chart': {
            'category': category_data,
            'buy': buy_count_data,
            'sell': sell_count_data
        },
        'table': {
            'common': model_common_data,
            'aggressive': model_aggressive_data,
            'steady': model_steady_data
        }
    })