feat: add total asset output

main
jackluson 3 years ago
parent f58a15e902
commit 2f93d60253

@ -50,7 +50,7 @@ class FundStatistic:
code_dict = dict()
for result in results:
# print(result)
for index in range(3, len(result), 3):
for index in range(4, len(result), 3):
code = result[index]
name = result[index + 1] # 仅以股票名称为key兼容港股A股
if code == None or name == None:
@ -95,9 +95,11 @@ class FundStatistic:
fund_info = {
'基金代码': result[0],
'基金名称': result[1],
'股票总仓位': result[2],
'基金金额': result[2],
'股票总仓位': result[3],
}
for index in range(3, len(result), 3):
totol_asset = result[2]
for index in range(4, len(result), 3):
code = result[index]
name = result[index + 1] # 仅以股票名称为key兼容港股A股
portion = result[index + 2] # 仅以股票名称为key兼容港股A股
@ -107,11 +109,13 @@ class FundStatistic:
if key == None and code and name:
key = str(code) + '-' + str(name)
#key = str(name)
hold_asset = round(portion * totol_asset / 100, 4) if totol_asset and portion else 0
if(key in code_dict and code != None):
code_dict[key]['count'] = code_dict[key]['count'] + 1
code_dict[key]['fund_list'].append({
**fund_info,
'仓位占比': portion,
'持有市值(亿元)': hold_asset,
'仓位排名': int(index / 3)
})
else:
@ -120,6 +124,7 @@ class FundStatistic:
'fund_list': [{
**fund_info,
'仓位占比': portion,
'持有市值(亿元)': hold_asset,
'仓位排名': int(index / 3)
}]
}

@ -239,13 +239,13 @@ class FundQuery:
return ()
list_str = ', '.join(fund_code_pool)
fund_code_list_sql = "AND t.fund_code IN (" + list_str + ")"
sql_query_quarter = "SELECT t.fund_code, t.fund_name, t.stock_position_total, " + stock_sql_join + \
" FROM fund_morning_stock_info as t WHERE t.quarter_index = %s AND t.stock_position_total > 20 " + \
sql_query_quarter = "SELECT t.fund_code, t.fund_name, u.total_asset, t.stock_position_total, " + stock_sql_join + \
" FROM fund_morning_stock_info as t LEFT JOIN fund_morning_quarter as u ON u.fund_code = t.fund_code WHERE u.quarter_index = %s AND t.quarter_index = %s AND t.stock_position_total > 20 " + \
fund_code_list_sql + \
";" # 大于20%股票持仓基金
if quarter_index == None:
quarter_index = self.quarter_index
self.cursor.execute(sql_query_quarter, [quarter_index]) # 执行sql语句
self.cursor.execute(sql_query_quarter, [quarter_index, quarter_index]) # 执行sql语句
results = self.cursor.fetchall() # 获取查询的所有记录
return results

Loading…
Cancel
Save