chore: remove comment

main
jackluson 3 years ago
parent e9cc424ca2
commit f5315450b5

@ -12,7 +12,6 @@ Copyright (c) 2020 Camel Lu
import time import time
import re import re
import decimal import decimal
import os
from pprint import pprint from pprint import pprint
import pandas as pd import pandas as pd
import numpy as np import numpy as np
@ -35,11 +34,10 @@ def get_fund_code_pool():
'operator': '=' '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) # last_year_date = time.strftime('%Y-%m-%d', last_year_time)
condition_dict = { condition_dict = {
'morning_star_rating_5': morning_star_rating_5_condition, 'morning_star_rating_5': morning_star_rating_5_condition,
'morning_star_rating_3': morning_star_rating_3_condition, 'morning_star_rating_3': morning_star_rating_3_condition,
# 'manager_start_date': '2020-05-25'
} }
fund_code_pool = each_statistic.select_fund_pool( fund_code_pool = each_statistic.select_fund_pool(
**condition_dict, **condition_dict,
@ -54,16 +52,12 @@ def stocks_compare(stock_list, *, market=None, quarter_index=None, fund_code_poo
quarter_index = get_last_quarter_str(2) quarter_index = get_last_quarter_str(2)
print("比较-->quarter_index", quarter_index) print("比较-->quarter_index", quarter_index)
last_quarter_input_file = './outcome/数据整理/strategy/all_stock_rank/' + \ last_quarter_input_file = './outcome/数据整理/strategy/all_stock_rank/' + quarter_index + '.xlsx'
quarter_index + '.xlsx' data_last_quarter = pd.read_excel(io=last_quarter_input_file, engine="openpyxl", dtype={"代码": np.str}, sheet_name=None)
data_last_quarter = pd.read_excel(io=last_quarter_input_file, engine="openpyxl", dtype={
"代码": np.str}, sheet_name=None)
if market: if market:
df_data_target_market = data_last_quarter.get(market) df_data_target_market = data_last_quarter.get(market)
df_data_target_market[quarter_index + '持有数量(只)'] = df_data_target_market[quarter_index + '持有数量(只)'].astype( df_data_target_market[quarter_index + '持有数量(只)'] = df_data_target_market[quarter_index + '持有数量(只)'].astype(int)
int)
each_statistic = FundStatistic()
filter_list = [] filter_list = []
for stock in stock_list: for stock in stock_list:
@ -76,7 +70,6 @@ def stocks_compare(stock_list, *, market=None, quarter_index=None, fund_code_poo
holder_asset = stock_holder_detail.get('holder_asset') holder_asset = stock_holder_detail.get('holder_asset')
if not market: if not market:
target_market = get_stock_market(stock_code) target_market = get_stock_market(stock_code)
print("target_market", target_market)
df_data_target_market = data_last_quarter.get(target_market) df_data_target_market = data_last_quarter.get(target_market)
target_loc = df_data_target_market[df_data_target_market['代码'] == stock_code] target_loc = df_data_target_market[df_data_target_market['代码'] == stock_code]
last_holder_count = 0 last_holder_count = 0
@ -89,33 +82,21 @@ def stocks_compare(stock_list, *, market=None, quarter_index=None, fund_code_poo
target_loc[col_target].iloc[0]), 4) target_loc[col_target].iloc[0]), 4)
diff_holder_count = holder_count - last_holder_count diff_holder_count = holder_count - last_holder_count
diff_holder_asset = holder_asset - last_holder_asset diff_holder_asset = holder_asset - last_holder_asset
diff_holder_count_percent = '{:.2%}'.format(diff_holder_count / last_holder_count) if last_holder_count != 0 else "+∞"
diff_holder_count_percent = '{:.2%}'.format( diff_holder_asset_percent = '{:.2%}'.format(diff_holder_asset / last_holder_asset) if last_holder_asset != 0 else "+∞"
diff_holder_count / last_holder_count) if last_holder_count != 0 else "+∞"
diff_holder_asset_percent = '{:.2%}'.format(
diff_holder_asset / last_holder_asset) if last_holder_asset != 0 else "+∞"
# flag = '📈' if diff_holder_count > 0 else '📉' # flag = '📈' if diff_holder_count > 0 else '📉'
# if diff_holder_count == 0: # if diff_holder_count == 0:
# flag = '⏸' # flag = '⏸'
flag_count = 'up' if diff_holder_count > 0 else 'down' flag_count = 'up' if diff_holder_count > 0 else 'down'
if diff_holder_count == 0:
flag = '='
flag_asset = 'up' if diff_holder_asset > 0 else 'down' flag_asset = 'up' if diff_holder_asset > 0 else 'down'
if diff_holder_asset == 0:
flag = '='
item_tuple = [stock_code, stock_name, holder_count, last_holder_count, item_tuple = [stock_code, stock_name, holder_count, last_holder_count,
diff_holder_count, diff_holder_count_percent, flag_count, holder_asset, last_holder_asset, diff_holder_asset, diff_holder_asset_percent, flag_asset] diff_holder_count, diff_holder_count_percent, flag_count, holder_asset, last_holder_asset, diff_holder_asset, diff_holder_asset_percent, flag_asset]
if is_A_stock: if is_A_stock:
industry_name_third = stock_holder_detail.get( industry_name_third = stock_holder_detail.get('industry_name_third')
'industry_name_third') industry_name_second = stock_holder_detail.get('industry_name_second')
industry_name_second = stock_holder_detail.get( industry_name_first = stock_holder_detail.get('industry_name_first')
'industry_name_second') item_tuple = [*item_tuple, industry_name_third,industry_name_second, industry_name_first]
industry_name_first = stock_holder_detail.get(
'industry_name_first')
item_tuple = [*item_tuple, industry_name_third,
industry_name_second, industry_name_first]
# if diff_percent == "+∞" or not float(diff_percent.rstrip('%')) < -20: # if diff_percent == "+∞" or not float(diff_percent.rstrip('%')) < -20:
filter_list.append(item_tuple) filter_list.append(item_tuple)
@ -132,14 +113,12 @@ def t100_stocks_rank(each_statistic=None, *, quarter_index=None):
last_quarter_index = get_last_quarter_str(2) last_quarter_index = get_last_quarter_str(2)
output_file = './outcome/数据整理/strategy/top100_rank.xlsx' output_file = './outcome/数据整理/strategy/top100_rank.xlsx'
sheet_name = quarter_index + '基金重仓股T100' sheet_name = quarter_index + '基金重仓股T100'
columns = ['代码', columns = ['代码','名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比', '持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
'名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比', '持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
stock_top_list = each_statistic.all_stock_fund_count( stock_top_list = each_statistic.all_stock_fund_count(
quarter_index=quarter_index, quarter_index=quarter_index,
filter_count=80) filter_count=80)
stock_top_list = stock_top_list[:100] # 获取top100权重股 stock_top_list = stock_top_list[:100] # 获取top100权重股
# pprint(stock_top_list)
filter_list = stocks_compare(stock_top_list) filter_list = stocks_compare(stock_top_list)
df_filter_list = pd.DataFrame(filter_list, columns=columns) df_filter_list = pd.DataFrame(filter_list, columns=columns)
update_xlsx_file(output_file, df_filter_list, sheet_name) update_xlsx_file(output_file, df_filter_list, sheet_name)
@ -154,8 +133,7 @@ def all_stocks_rank(each_statistic=None):
quarter_index = get_last_quarter_str(1) quarter_index = get_last_quarter_str(1)
print("该quarter_index为", quarter_index) print("该quarter_index为", quarter_index)
last_quarter_index = get_last_quarter_str(2) last_quarter_index = get_last_quarter_str(2)
columns = ['代码', columns = ['代码','名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比', '持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
'名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比', '持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
output_file = './outcome/数据整理/strategy/all_stock_rank/' + quarter_index + '.xlsx' output_file = './outcome/数据整理/strategy/all_stock_rank/' + quarter_index + '.xlsx'
stock_top_list = each_statistic.all_stock_fund_count( stock_top_list = each_statistic.all_stock_fund_count(
@ -167,7 +145,6 @@ def all_stocks_rank(each_statistic=None):
other_stock_list = [] other_stock_list = []
for stock_name_code in stock_top_list: for stock_name_code in stock_top_list:
stock_code = stock_name_code[0].split('-', 1)[0] stock_code = stock_name_code[0].split('-', 1)[0]
#path = 'other' #path = 'other'
if bool(re.search("^\d{5}$", stock_code)): if bool(re.search("^\d{5}$", stock_code)):
#path = '港股' #path = '港股'
@ -176,8 +153,7 @@ def all_stocks_rank(each_statistic=None):
# 'A股/深证主板'、'A股/创业板'、'A股/上证主板'、'A股/科创板' # 'A股/深证主板'、'A股/创业板'、'A股/上证主板'、'A股/科创板'
a_condition = bool(re.search( a_condition = bool(re.search(
"^(00(0|1|2|3)\d{3})|(30(0|1)\d{3})|(60(0|1|2|3|5)\d{3})|68(8|9)\d{3}$", stock_code)) "^(00(0|1|2|3)\d{3})|(30(0|1)\d{3})|(60(0|1|2|3|5)\d{3})|68(8|9)\d{3}$", stock_code))
target_item = find_from_list_of_dict( target_item = find_from_list_of_dict(all_a_stocks_industry_info_list, 'stock_code', stock_code)
all_a_stocks_industry_info_list, 'stock_code', stock_code)
if a_condition and target_item: if a_condition and target_item:
stock_name_code[1]['industry_name_first'] = target_item.get( stock_name_code[1]['industry_name_first'] = target_item.get(
'industry_name_first') 'industry_name_first')
@ -204,7 +180,6 @@ def all_stocks_rank(each_statistic=None):
a_columns = [*columns, '三级行业', '二级行业', '一级行业'] a_columns = [*columns, '三级行业', '二级行业', '一级行业']
df_a_list = pd.DataFrame(a_stock_compare_list, columns=a_columns) df_a_list = pd.DataFrame(a_stock_compare_list, columns=a_columns)
print("df_a_list", df_a_list)
df_hk_list = pd.DataFrame(hk_stock_compare_list, columns=columns) df_hk_list = pd.DataFrame(hk_stock_compare_list, columns=columns)
df_other_list = pd.DataFrame(other_stock_compare_list, columns=columns) df_other_list = pd.DataFrame(other_stock_compare_list, columns=columns)
@ -251,22 +226,16 @@ def all_stock_holder_detail(each_statistic=None, *, quarter_index=None, threshol
path = 'A股/科创板' path = 'A股/科创板'
else: else:
print('stock_name_code', stock_name_code) print('stock_name_code', stock_name_code)
hold_fund_count = stock[1]['count'] hold_fund_list = sorted(stock[1]['fund_list'], key=lambda x: x['持有市值(亿元)'], reverse=True)
hold_fund_list = sorted(
stock[1]['fund_list'], key=lambda x: x['持有市值(亿元)'], reverse=True)
df_list = pd.DataFrame(hold_fund_list) df_list = pd.DataFrame(hold_fund_list)
# if stock_code == 'NTES':
# print('stock_code', df_list)
stock_name_code = stock_name_code.replace('-*', '-').replace('/', '-') stock_name_code = stock_name_code.replace('-*', '-').replace('/', '-')
path = './outcome/数据整理/stocks/' + path + '/' + stock_name_code + '.xlsx' path = './outcome/数据整理/stocks/' + path + '/' + stock_name_code + '.xlsx'
path = path.replace('\/', '-') path = path.replace('\/', '-')
print("path", path)
update_xlsx_file(path, df_list, quarter_index) update_xlsx_file(path, df_list, quarter_index)
def get_special_fund_code_holder_stock_detail(each_statistic=None, quarter_index=None): def get_special_fund_code_holder_stock_detail(each_statistic=None, quarter_index=None):
""" 获取某些基金的十大持仓股票信息 """获取某些基金的十大持仓股票信息
""" """
if each_statistic == None: if each_statistic == None:
each_statistic = FundStatistic() each_statistic = FundStatistic()
@ -337,11 +306,9 @@ def get_special_fund_code_holder_stock_detail(each_statistic=None, quarter_index
# 基金组合信息 # 基金组合信息
fund_portfolio = holder_history_list[1] fund_portfolio = holder_history_list[1]
fund_code_pool = list(fund_portfolio.keys()) fund_code_pool = list(fund_portfolio.keys())
holder_stock_industry_list = each_statistic.summary_special_funds_stock_detail( holder_stock_industry_list = each_statistic.summary_special_funds_stock_detail(fund_code_pool, quarter_index)
fund_code_pool, quarter_index)
path = './outcome/数据整理/funds/高分权益基金组合十大持仓明细.xlsx' path = './outcome/数据整理/funds/高分权益基金组合十大持仓明细.xlsx'
columns = ['基金代码', '基金名称', '基金类型', '基金经理', '基金总资产(亿元)', '基金股票总仓位', columns = ['基金代码', '基金名称', '基金类型', '基金经理', '基金总资产(亿元)', '基金股票总仓位', '十大股票仓位', '股票代码', '股票名称', '所占仓位', '所处仓位排名', '三级行业', '二级行业', '一级行业']
'十大股票仓位', '股票代码', '股票名称', '所占仓位', '所处仓位排名', '三级行业', '二级行业', '一级行业']
df_a_list = pd.DataFrame(holder_stock_industry_list, columns=columns) df_a_list = pd.DataFrame(holder_stock_industry_list, columns=columns)
# print("df_a_list", df_a_list) # print("df_a_list", df_a_list)

Loading…
Cancel
Save