feat: add select_condition_stocks_rank

main
jackluson 3 years ago
parent f48afbb329
commit de0be6a692

@ -19,12 +19,8 @@ from fund_info.statistic import FundStatistic
from utils.index import get_last_quarter_str, get_stock_market, find_from_list_of_dict, update_xlsx_file
from utils.file_op import read_dir_all_file
def get_fund_code_pool():
# fund_code_pool = ['000001', '160133', '360014', '420002',
# '420102', '000409', '000418', '000746',
# '000751', '000884', '000991', '001043',
# '001054', '001104', '001410', '001473',
# '519714', '000003', '000011', '000029']
def get_fund_code_pool(condition_dict):
each_statistic = FundStatistic()
morning_star_rating_5_condition = {
'value': 4,
'operator': '>='
@ -33,19 +29,15 @@ def get_fund_code_pool():
'value': 5,
'operator': '='
}
last_year_time = time.localtime(time.time() - 365 * 24 * 3600)
# last_year_time = time.localtime(time.time() - 365 * 24 * 3600)
# last_year_date = time.strftime('%Y-%m-%d', last_year_time)
condition_dict = {
'morning_star_rating_5': morning_star_rating_5_condition,
'morning_star_rating_3': morning_star_rating_3_condition,
}
fund_code_pool = each_statistic.select_fund_pool(
**condition_dict,
)
return fund_code_pool
def stocks_compare(stock_list, *, market=None, quarter_index=None, fund_code_pool=None, is_A_stock=None):
def stocks_compare(stock_list, *, market=None, quarter_index=None, is_A_stock=None):
"""与某个季度数据进行比较
"""
if quarter_index == None:
@ -104,6 +96,41 @@ def stocks_compare(stock_list, *, market=None, quarter_index=None, fund_code_poo
return filter_list
def select_condition_stocks_rank(each_statistic=None, *, quarter_index=None):
if each_statistic == None:
each_statistic = FundStatistic()
if quarter_index == None:
quarter_index = get_last_quarter_str(1)
columns = ['代码','名称', '持有数量(只)', '持有市值(亿元)']
company = '广发基金管理有限公司'
company_condition = {
'value': company,
'operator': '='
}
output_file = './outcome/数据整理/stocks/condition/'+ company +'.xlsx'
condition_dict = {
# 'morning_star_rating_5': morning_star_rating_5_condition,
# 'morning_star_rating_3': morning_star_rating_3_condition,
'company': company_condition
}
fund_pool = get_fund_code_pool(condition_dict)
stock_top_list = each_statistic.all_stock_fund_count(
quarter_index=quarter_index,
fund_code_pool=fund_pool,
filter_count=0)
stock_rank_list = []
for stock_name_code in stock_top_list:
stock_code = stock_name_code[0].split('-', 1)[0]
stock_name = stock_name_code[0].split('-', 1)[1]
stock_count = stock_name_code[1]['count']
stock_holder_asset = stock_name_code[1]['holder_asset']
stock_rank_item = [stock_code, stock_name, stock_count, stock_holder_asset]
stock_rank_list.append(stock_rank_item)
df_stock_top_list = pd.DataFrame(stock_rank_list, columns=columns)
print(df_stock_top_list)
update_xlsx_file(output_file, df_stock_top_list, quarter_index)
def t100_stocks_rank(each_statistic=None, *, quarter_index=None):
# T100权重股排名
if each_statistic == None:
@ -114,7 +141,7 @@ def t100_stocks_rank(each_statistic=None, *, quarter_index=None):
output_file = './outcome/数据整理/strategy/top100_rank.xlsx'
sheet_name = quarter_index + '基金重仓股T100'
columns = ['代码','名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比', '持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
stock_top_list = each_statistic.all_stock_fund_count(
quarter_index=quarter_index,
filter_count=80)
@ -195,7 +222,6 @@ def all_stocks_rank(each_statistic=None):
def all_stock_holder_detail(each_statistic=None, *, quarter_index=None, threshold=0):
""" 所有股票的基金持仓细节
Args:
each_statistic (class): 统计类
quarter_index (str, optional): 季度字符串. Defaults to None.
@ -338,10 +364,6 @@ def calculate_quarter_fund_count():
df_quarter_list = pd.DataFrame(quarter_list, columns=columns)
update_xlsx_file(path, df_quarter_list, sum_column_name)
if __name__ == '__main__':
each_statistic = FundStatistic()
# quarter_index = "2021-Q2"
# read_excel(path, 'A股', '601888', '2021-Q1持有市值亿元')
# 所有股票的基金持仓细节
# all_stock_holder_detail(each_statistic)
@ -354,4 +376,5 @@ if __name__ == '__main__':
# 获取某些基金的十大持仓股票信息
# get_special_fund_code_holder_stock_detail(each_statistic)
calculate_quarter_fund_count()
# calculate_quarter_fund_count()
select_condition_stocks_rank()

Loading…
Cancel
Save