Exemplo n.º 1
0
                                                       _bms_used,
                                                       _freq,
                                                       statistic_date,
                                                       fund,
                                                       bms,
                                                       tbond,
                                                       with_func_names=True)
            result_return.extend(res_return)
            result_risk.extend(res_risk)
            result_sub.extend(res_sub)
        df_return = pd.DataFrame(result_return)
        df_risk = pd.DataFrame(result_risk)
        df_sub = pd.DataFrame(result_sub)

        cols_return = cal.format_cols_mutual(
            _funcs_return_sorted,
            _freq,
            prefix=["fund_id", "fund_name", "statistic_date", "benchmark"])
        cols_risk = cal.format_cols_mutual(
            _funcs_risk_sorted,
            _freq,
            prefix=["fund_id", "fund_name", "statistic_date", "benchmark"])
        cols_sub = cal.format_cols_mutual(
            _funcs_sub_sorted,
            _freq,
            prefix=["fund_id", "fund_name", "statistic_date", "benchmark"])

        df_return.columns = cols_return
        df_risk.columns = cols_risk
        df_sub.columns = cols_sub
        try:
            io.to_sql("fund_daily_return",
Exemplo n.º 2
0
Arquivo: test001.py Projeto: dxcv/fund
def cal_by_date(statistic_date, fund_ids):
    """

    :param statistic_date: datetime.date
    :param fund_ids: list
    :return:
    """
    print("STATISTIC_DATE:{sd}, LENGTH:{l}".format(sd=statistic_date,
                                                   l=len(fund_ids)))
    result_1 = []
    result_2 = []
    result_3 = []
    data = pre.ProcessedData(statistic_date,
                             fund_ids,
                             _freq,
                             pe=[],
                             conn=engine_rd,
                             conn_mkt=engine_mkt,
                             weekday=True)
    bms = {
        index_name: cal.Benchmark(attr_dict, index_name)
        for index_name, attr_dict in data.index.items()
    }
    tbond = cal.Tbond(data.index["y1_treasury_rate"], "y1_treasury_rate")
    for fid, attrs in data.funds.items():
        fund = cal.Fund(attrs)
        res_1, _funcs_1_sourted = cal.calculate(_funcs_1,
                                                _intervals,
                                                _bms_used,
                                                _freq,
                                                statistic_date,
                                                fund,
                                                bms,
                                                tbond,
                                                with_func_names=True)
        res_2, _funcs_2_sorted = cal.calculate(_funcs_2,
                                               _intervals,
                                               _bms_used,
                                               _freq,
                                               statistic_date,
                                               fund,
                                               bms,
                                               tbond,
                                               with_func_names=True)
        res_3, _funcs_3_sorted = cal.calculate(_funcs_3,
                                               _intervals,
                                               _bms_used,
                                               _freq,
                                               statistic_date,
                                               fund,
                                               bms,
                                               tbond,
                                               with_func_names=True)
        result_1.extend(res_1)
        result_2.extend(res_2)
        result_3.extend(res_3)

    df_1 = pd.DataFrame(result_1)
    df_2 = pd.DataFrame(result_2)
    df_3 = pd.DataFrame(result_3)

    # 删除空行
    df_1.dropna(how='all', inplace=True)
    df_2.dropna(how='all', inplace=True)
    df_3.dropna(how='all', inplace=True)

    cols_1 = cal.format_cols_mutual(
        _funcs_1_sourted,
        _freq,
        prefix=["fund_id", "fund_name", "statistic_date", "benchmark"])
    cols_2 = cal.format_cols_mutual(
        _funcs_2_sorted,
        _freq,
        prefix=["fund_id", "fund_name", "statistic_date", "benchmark"])
    cols_3 = cal.format_cols_mutual(
        _funcs_3_sorted,
        _freq,
        prefix=["fund_id", "fund_name", "statistic_date", "benchmark"])
    if len(df_1):
        df_1.columns = cols_1
        io.to_sql("fund_daily_return",
                  conn=engine_wt,
                  dataframe=df_1,
                  chunksize=500)
    if len(df_2):
        df_2.columns = cols_2
        io.to_sql("fund_daily_risk",
                  conn=engine_wt,
                  dataframe=df_2,
                  chunksize=500)
    if len(df_3):
        df_3.columns = cols_3
        io.to_sql("fund_daily_subsidiary",
                  conn=engine_wt,
                  dataframe=df_3,
                  chunksize=500)
Exemplo n.º 3
0
                                                   _freq,
                                                   statistic_date,
                                                   fund,
                                                   bms,
                                                   tbond,
                                                   with_func_names=True)
            result_1.extend(res_1)
            result_2.extend(res_2)
            result_3.extend(res_3)

        df_1 = pd.DataFrame(result_1)
        df_2 = pd.DataFrame(result_2)
        df_3 = pd.DataFrame(result_3)

        cols_1 = cal.format_cols_mutual(
            _funcs_1_sorted,
            _freq,
            prefix=["fund_id", "fund_name", "statistic_date", "benchmark"])
        cols_2 = cal.format_cols_mutual(
            _funcs_2_sorted,
            _freq,
            prefix=["fund_id", "fund_name", "statistic_date", "benchmark"])
        cols_3 = cal.format_cols_mutual(
            _funcs_3_sorted,
            _freq,
            prefix=["fund_id", "fund_name", "statistic_date", "benchmark"])

        df_1.columns = cols_1
        df_2.columns = cols_2
        df_3.columns = cols_3
        try:
            io.to_sql("fund_daily_risk2",