Exemple #1
0
                    'b10j', 'b10k', 'b10l', 'b10m', 'b10n', 'b10o', 'b10p', 'b10q', 'b10r',\
                    'b10s', 'b10t']
Now_Index = "zz800"
Now_Range = "zz800"
'''
***获取每日指数成分股和全部A股的代码***
'''
if Now_Range == "all":
    components_dict = db_data_pre_treat.get_normal_stocklist_dict(start_date,
                                                                  end_date,
                                                                  year=0,
                                                                  month=6)
else:
    where = Now_Range + " = 1"
    components_dict = db_interaction.get_data_commonly(
        "daily_index_components", ["stock_id"], ["curr_date"],
        one_to_one=0,
        where=where)

all_daily_date_list = xyk_common_wind_db_interaction.get_calendar(
    start_date, end_date, 0)
daily_date_list = all_daily_date_list[:-1]
index_date_list = all_daily_date_list[1:]
a_stock_no_st_dict = db_data_pre_treat.get_a_stock_no_st_dict(
    start_date, end_date, 0, 6, 1, 0)
total_stock_list = xyk_common_data_processing.get_all_element_from_dict(
    a_stock_no_st_dict)
'''
***获取行业数据并构建行业哑变量***
'''
citics_data = db_interaction.get_data_commonly(
    "stock_citics_industry", ["entry_date", "remove_date", "citics_code"],
Exemple #2
0
Output_Table_Name = 'daily_stock_factors_size_residual_' + Now_Index

daily_date_list = xyk_common_wind_db_interaction.get_calendar(
    start_date, end_date, 0)
'''
***获取成分股数据***
'''
if Now_Index == "all":
    components_dict = db_data_pre_treat.get_normal_stocklist_dict(start_date,
                                                                  end_date,
                                                                  year=0,
                                                                  month=6)
else:
    where = Now_Index + " = 1"
    components_dict = db_interaction.get_data_commonly(
        "daily_index_components", ["stock_id"], ["curr_date"],
        one_to_one=0,
        where=where)
'''
***从因子表中获取我们需要的几列数据***
'''
descriptor_data_dict = db_interaction.get_daily_data_dict_1_key(
    start_date,
    end_date,
    Factor_Table_Name,
    change_factor_list + keep_value_list,
    date_for_key=1,
    to_df=1)
'''
***根据Index篮子做OLS***
'''
output_data_dict = {}
start_date = "20051010"
cal_start_date = "20070115"
end_date = "20180320"

Now_Index = "zz800"

After_date = 0

cal_daily_date_list = xyk_common_wind_db_interaction.get_calendar(
    cal_start_date, end_date, 0)
daily_date_list = xyk_common_wind_db_interaction.get_calendar(
    start_date, end_date, 0)
SHIBOR_dict = xyk_common_wind_db_interaction.get_IBOR_dict(
    "SHIBOR", "SHIBORON.IR")
index_return_dict = db_interaction.get_data_commonly(
    "daily_index_performance", ["cap_weighted_return"],
    ["index_name", "curr_date"])
'''
***首先选出计算的股票篮子,然后从行情数据中查询我们需要的部分***
'''
a_stock_normal_dict = db_data_pre_treat.get_normal_stocklist_dict(start_date,
                                                                  end_date,
                                                                  year=0,
                                                                  month=3)
total_stock_list = xyk_common_data_processing.get_all_element_from_dict(
    a_stock_normal_dict)
hq_dict = db_interaction.get_daily_data_dict_1_key(start_date, end_date,
                                                   "daily_stock_technical",
                                                   ['liquid_MV', 'close'],
                                                   total_stock_list, 0)
import datetime as dt
import db_interaction
import xyk_common_data_processing
import xyk_common_wind_db_interaction
import db_data_pre_treat
import statsmodels.api as sm

start_date = "20070115"
end_date = "20171231"
Now_Index = "zz500"
factor_list = ['Size', 'Beta', 'Volatility', 'sqrt_liquid']
'''
***获取成分股数据***
'''
components_dict = db_interaction.get_data_commonly(
    "daily_index_components_" + Now_Index, ["stock_id"], ["curr_date"], 1, 0,
    0)
for date in components_dict.keys():
    components_dict[date] = xyk_common_data_processing.change_stock_format(
        "no_tail", "with_tail", components_dict[date], 1)
daily_date_list = xyk_common_wind_db_interaction.get_calendar(
    start_date, end_date, 0)
'''
***获得全部股票代码序列,用于查询行情和描述量值***
'''
a_stock_no_st_dict = db_data_pre_treat.get_a_stock_no_st_dict(
    start_date, end_date, 0, 6, 1, 0)
total_stock_list = xyk_common_data_processing.get_all_element_from_dict(
    a_stock_no_st_dict)
'''
***从因子表中获取我们需要的几列数据***
Exemple #5
0
import datetime as dt
import db_interaction
import xyk_common_data_processing
import xyk_common_wind_db_interaction
import db_data_pre_treat

start_date = "20050101"
cal_start_date = "20070115"
end_date = "20171231"

Now_Index = "zz500"

cal_daily_date_list = xyk_common_wind_db_interaction.get_calendar(cal_start_date, end_date, 0)
daily_date_list = xyk_common_wind_db_interaction.get_calendar(start_date, end_date, 0)
SHIBOR_dict = xyk_common_wind_db_interaction.get_IBOR_dict("SHIBOR", "SHIBORON.IR")
index_return_dict = db_interaction.get_data_commonly("daily_index_performance", ["cap_weighted_return"], ["index_name", "curr_date"])

'''
***首先选出计算的股票篮子,然后从行情数据中查询我们需要的部分***
'''
a_stock_normal_dict = db_data_pre_treat.get_normal_stocklist_dict(start_date, end_date, year = 0, month = 3)
total_stock_list = xyk_common_data_processing.get_all_element_from_dict(a_stock_normal_dict)
hq_dict = db_interaction.get_daily_data_dict_1_key(start_date, end_date, "daily_stock_technical", ['liquid_MV', 'close'], total_stock_list, 0)

stock_suspension_dict = db_data_pre_treat.get_stock_suspension_dict_by_stock(total_stock_list, start_date, end_date, sus_type = 1)
hq_dict_no_suspension = xyk_common_data_processing.get_dict_difference(hq_dict, stock_suspension_dict, list_order = 0)

LN_SHIBOR_dict = {}
for date in SHIBOR_dict.keys():
    LN_SHIBOR_dict[date] = math.log(1.0 + SHIBOR_dict[date])