feat: finish calculate_quarter_fund_count

main
jackluson 3 years ago
parent 061799c6d7
commit 31ddf42ce3

@ -17,7 +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,t100_stocks_rank,all_stock_holder_detail
from src.fund_statistic import get_special_fund_code_holder_stock_detail, all_stocks_rank,t100_stocks_rank,all_stock_holder_detail,calculate_quarter_fund_count
from src.fund_strategy import output_high_score_funds
def main():
@ -30,7 +30,8 @@ def main():
6.基金持仓股排名\n \
7.基金重仓股Top100\n \
8.股票持仓基金明细\n \
9.高分基金\n \
9.股票持仓基金汇总\n \
10.高分基金\n \
输入")
if input_value == '1' or input_value == '快照':
page_index = 1
@ -51,7 +52,9 @@ def main():
t100_stocks_rank()
elif input_value == '8' or input_value == "股票持仓基金明细":
all_stock_holder_detail()
elif input_value == '9' or input_value == "高分基金":
elif input_value == '9' or input_value == "股票持仓基金汇总":
calculate_quarter_fund_count()
elif input_value == '10' or input_value == "高分基金":
output_high_score_funds()
else:
print('输入有误')

@ -17,11 +17,7 @@ import pandas as pd
import numpy as np
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
import os
from openpyxl import load_workbook
from utils.file_op import read_dir_all_file
def get_fund_code_pool():
# fund_code_pool = ['000001', '160133', '360014', '420002',
@ -320,22 +316,27 @@ def get_special_fund_code_holder_stock_detail(each_statistic=None, quarter_index
def calculate_quarter_fund_count():
stock_name_code = '600519-贵州茅台'
path = './outcome/数据整理/stocks/A股/上证主板/' + stock_name_code + '.xlsx'
xls = pd.ExcelFile(path, engine='openpyxl')
quarter_list = []
sum_column_name = '总计'
for sheet_name in reversed(xls.sheet_names):
if sheet_name == '总计':
continue
item_quarter_data = [sheet_name]
df_cur_sheet = xls.parse(sheet_name)
item_quarter_data.append(len(df_cur_sheet))
item_quarter_data.append(round(df_cur_sheet['持有市值(亿元)'].sum(),2))
quarter_list.append(item_quarter_data)
columns = ["日期", "持有数量", '持有市值']
df_quarter_list = pd.DataFrame(quarter_list, columns=columns)
update_xlsx_file(path, df_quarter_list, sum_column_name)
stock_markets = ['A股/上证主板', 'A股/创业板', 'A股/科创板', 'A股/深证主板', '港股', '其他']
for market in stock_markets:
dir_path = './outcome/数据整理/stocks/' + market + '/'
files = read_dir_all_file(dir_path)
print(market, "files", len(files))
for file_path in files:
path = dir_path + file_path
xls = pd.ExcelFile(path, engine='openpyxl')
quarter_list = []
sum_column_name = '总计'
for sheet_name in reversed(xls.sheet_names):
if sheet_name == '总计':
continue
item_quarter_data = [sheet_name]
df_cur_sheet = xls.parse(sheet_name)
item_quarter_data.append(len(df_cur_sheet))
item_quarter_data.append(round(df_cur_sheet['持有市值(亿元)'].sum(),2))
quarter_list.append(item_quarter_data)
columns = ["日期", "持有数量", '持有市值']
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"

@ -8,7 +8,6 @@ Author: luxuemin2108@gmail.com
Copyright (c) 2021 Camel Lu
'''
import time
import datetime
import os
@ -24,3 +23,6 @@ def write_fund_json_data(data, filename, file_dir=None):
with open(file_dir + filename, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
f.close()
def read_dir_all_file(path):
return os.listdir(path)

Loading…
Cancel
Save