chore: details

main
jackluson 3 years ago
parent c303cd9dc7
commit 9647fc2829

@ -17,6 +17,7 @@ from src.acquire_fund_snapshot import get_fund_list
from src.acquire_fund_base import acquire_fund_base
from src.fund_info.supplement import FundSupplement
from src.acquire_fund_quarter import acquire_fund_quarter
from src.fund_statistic import get_special_fund_code_holder_stock_detail, all_stocks_rank,all_stock_holder_detail
def main():
@ -25,6 +26,10 @@ def main():
2.新基入库\n \
3.季度信息\n \
4.基金状态归档\n \
5.组合持仓明细\n \
6.基金持仓股排名\n \
7.基金重仓股Top100\n \
8.股票持仓基金明细\n \
输入")
if input_value == '1' or input_value == '快照':
page_index = 1
@ -37,6 +42,16 @@ def main():
fund_supplement = FundSupplement()
# 补充基金清算维度信息
fund_supplement.update_archive_status()
elif input_value == '5' or input_value == "组合持仓明细":
get_special_fund_code_holder_stock_detail()
elif input_value == '6' or input_value == "基金持仓股排名":
all_stocks_rank()
elif input_value == '7' or input_value == "基金重仓股Top100":
all_stocks_rank()
elif input_value == '8' or input_value == "股票持仓基金明细":
all_stock_holder_detail()
else:
print('输入有误')
if __name__ == '__main__':

@ -18,7 +18,7 @@ def connect():
def connect_dict():
load_dotenv()
env_db_host = os.getenv('db_host')
env_db_name = os.getenv('db_name')
env_db_name = os.getenv('db_stock_name')
env_db_user = os.getenv('db_user')
env_db_password = os.getenv('db_password')
connect = pymysql.connect(

@ -8,7 +8,6 @@ Author: luxuemin2108@gmail.com
Copyright (c) 2021 Camel Lu
'''
import time
from utils.index import get_last_quarter_str
from sql_model.fund_query import FundQuery
from sql_model.fund_update import FundUpdate
@ -23,7 +22,7 @@ class FundSupplement:
def update_archive_status(self):
fund_query = FundQuery()
each_fund_update = FundUpdate()
funds = fund_query.select_quarter_fund(0, 10000)
funds = fund_query.select_quarter_fund(0, 15000)
for fund_item in funds:
fund_code = fund_item[0]
fund_api = FundApier(fund_code, platform='zh_fund')

@ -52,7 +52,7 @@ def stocks_compare(stock_list, *, market=None, quarter_index=None, fund_code_poo
"""
if quarter_index == None:
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/' + \
quarter_index + '.xlsx'
@ -122,10 +122,9 @@ def stocks_compare(stock_list, *, market=None, quarter_index=None, fund_code_poo
# print(item_tuple)
return filter_list
# T100权重股排名
def t100_stocks_rank(quarter_index=None, *, each_statistic):
# T100权重股排名
if quarter_index == None:
quarter_index = get_last_quarter_str(1)
last_quarter_index = get_last_quarter_str(2)
@ -145,13 +144,14 @@ def t100_stocks_rank(quarter_index=None, *, each_statistic):
# df_filter_list.to_excel(output_file, sheet_name=sheet_name)
def all_stocks_rank(each_statistic):
def all_stocks_rank(each_statistic=None):
if each_statistic == None:
each_statistic = FundStatistic()
"""所有股票排名
"""
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)
sheet_name = last_quarter_index + '基金重仓股T100'
columns = ['代码',
'名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比', '持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
output_file = './outcome/数据整理/strategy/all_stock_rank/' + quarter_index + '.xlsx'
@ -159,7 +159,6 @@ def all_stocks_rank(each_statistic):
stock_top_list = each_statistic.all_stock_fund_count(
quarter_index=quarter_index,
filter_count=0)
#print("stock_top_list", stock_top_list)
all_a_stocks_industry_info_list = each_statistic.query_all_stock_industry_info()
a_stock_list = []
hk_stock_list = []
@ -203,6 +202,7 @@ def all_stocks_rank(each_statistic):
a_columns = [*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_other_list = pd.DataFrame(other_stock_compare_list, columns=columns)
@ -216,7 +216,7 @@ def all_stocks_rank(each_statistic):
writer.save()
def all_stock_holder_detail(each_statistic, *, quarter_index=None, threshold=0):
def all_stock_holder_detail(each_statistic=None, *, quarter_index=None, threshold=0):
""" 所有股票的基金持仓细节
Args:
@ -224,6 +224,8 @@ def all_stock_holder_detail(each_statistic, *, quarter_index=None, threshold=0):
quarter_index (str, optional): 季度字符串. Defaults to None.
threshold (int, optional): 输出门槛. Defaults to 0.
"""
if each_statistic == None:
each_statistic = FundStatistic()
if quarter_index == None:
quarter_index = get_last_quarter_str()
stock_list = each_statistic.all_stock_fund_count_and_details(
@ -261,9 +263,11 @@ def all_stock_holder_detail(each_statistic, *, quarter_index=None, threshold=0):
update_xlsx_file(path, df_list, quarter_index)
def get_special_fund_code_holder_stock_detail(each_statistic, quarter_index=None):
def get_special_fund_code_holder_stock_detail(each_statistic=None, quarter_index=None):
""" 获取某些基金的十大持仓股票信息
"""
if each_statistic == None:
each_statistic = FundStatistic()
if quarter_index == None:
quarter_index = get_last_quarter_str()
print("quarter_index", quarter_index)
@ -333,13 +337,13 @@ def get_special_fund_code_holder_stock_detail(each_statistic, quarter_index=None
fund_code_pool = list(fund_portfolio.keys())
holder_stock_industry_list = each_statistic.summary_special_funds_stock_detail(
fund_code_pool, quarter_index)
path = './outcome/数据整理/funds/高分权益基金组合十大持仓明细-加工.xlsx'
path = './outcome/数据整理/funds/高分权益基金组合十大持仓明细.xlsx'
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)
update_xlsx_file(path, df_a_list, sheet_name='十大持仓明细--' + '2021-08-28')
update_xlsx_file(path, df_a_list, sheet_name='十大持仓明细--' + quarter_index)
if __name__ == '__main__':

Loading…
Cancel
Save