feat: 2021-q4 data

main
jackluson 3 years ago
parent 94bb3802e4
commit edd2b90dba

@ -1,25 +1 @@
代码,晨星专属号,名称,类型,页码,备注
159803, 0P0001J3E8, 易方达中证浙江新动能ETFQDII, 大中华区股票, 116, 页面跳转有问题
159809, 0P0001JIPA, 博时恒生沪深港通大湾区综合ETF, 沪港深股票型基金, 116, 页面跳转有问题
159963, 0P0001F572, 富国恒生中国企业ETF, 普通股票型, 116, 页面跳转有问题
160136, 0P000162QH, 南方中证国有企业改革指数LOFA, 普通股票型, 116, 页面跳转有问题
160142, 0P0001DI3W, 南方3年封闭运作战略配售灵活配置混合(LOF), 灵活配置型基金(封闭), 116, 页面跳转有问题
160522, 0P0001CQTS, 博时睿益事件驱动灵活配置混合LOF, 灵活配置型基金, 116, 页面跳转有问题
001620, 0P00016DLQ, 嘉实新机遇灵活配置混合, 灵活配置型基金, 30, 页面跳转有问题
001683, 0P00016DLP, 华夏新经济灵活配置混合, 灵活配置型基金, 30, 页面跳转有问题
161131, 0P0001DI3T, 易方达3年封闭运作战略配售灵活配置混合LOF), 灵活配置型基金(封闭), 126, 页面跳转有问题
161629, 0P00016C35, 融通中证精准医疗主题指数LOF, 行业股票 - 医药, 126, 页面跳转有问题
161714, 0P0000S1IT, 招商标普金砖四国指数(QDII-LOF), 新兴市场股票, 126, 页面跳转有问题
161728, 0P0001DI3Y, 招商3年封闭运作战略配售灵活配置混合(LOF), 灵活配置型基金(封闭), 126, 页面跳转有问题
001769, 0P00016GJM, 易方达瑞惠灵活配置混合, 灵活配置型基金, 30, 页面跳转有问题
001773, 0P00016GJL, 招商丰庆灵活配置混合A, 灵活配置型基金, 30, 页面跳转有问题
167705, 0P0001CPEH, 德邦量化新锐股票(LOF) A, 普通股票型, 136, 页面跳转有问题
168103, 0P00018B3N, 九泰锐益定增灵活配置混合, 灵活配置型基金(封闭), 136, 页面跳转有问题
168105, 0P00018JGP, 九泰泰富定增主题灵活配置混合型, 灵活配置型基金(封闭), 136, 页面跳转有问题
501186, 0P0001DI3X, 华夏3年封闭运作战略配售灵活配置混合(LOF), 灵活配置型基金(封闭), 146, 页面跳转有问题
501188, 0P0001DI3U, 汇添富3年封闭运作战略配售灵活配置混合LOF, 灵活配置型基金(封闭), 146, 页面跳转有问题
501189, 0P0001DI3V, 嘉实3年封闭运作战略配售灵活配置混合(LOF), 灵活配置型基金(封闭), 146, 页面跳转有问题
512270, 0P0001F68Q, 华安沪深300行业中性低波动ETF, 普通股票型, 156, 页面跳转有问题
512340, 0P00015KX3, 南方中证500原材料指数ETF, 普通股票型, 156, 页面跳转有问题
512860, 0P0001E1FC, 华安MSCI中国A股国际ETF, 普通股票型, 156, 页面跳转有问题
515620, 0P0001JF1J, 建信中证800ETF, 普通股票型, 166, 页面跳转有问题

1 代码 晨星专属号 名称 类型 页码 备注
159803 0P0001J3E8 易方达中证浙江新动能ETF(QDII) 大中华区股票 116 页面跳转有问题
159809 0P0001JIPA 博时恒生沪深港通大湾区综合ETF 沪港深股票型基金 116 页面跳转有问题
159963 0P0001F572 富国恒生中国企业ETF 普通股票型 116 页面跳转有问题
160136 0P000162QH 南方中证国有企业改革指数(LOF)A 普通股票型 116 页面跳转有问题
160142 0P0001DI3W 南方3年封闭运作战略配售灵活配置混合(LOF) 灵活配置型基金(封闭) 116 页面跳转有问题
160522 0P0001CQTS 博时睿益事件驱动灵活配置混合(LOF) 灵活配置型基金 116 页面跳转有问题
001620 0P00016DLQ 嘉实新机遇灵活配置混合 灵活配置型基金 30 页面跳转有问题
001683 0P00016DLP 华夏新经济灵活配置混合 灵活配置型基金 30 页面跳转有问题
161131 0P0001DI3T 易方达3年封闭运作战略配售灵活配置混合(LOF) 灵活配置型基金(封闭) 126 页面跳转有问题
161629 0P00016C35 融通中证精准医疗主题指数(LOF) 行业股票 - 医药 126 页面跳转有问题
161714 0P0000S1IT 招商标普金砖四国指数(QDII-LOF) 新兴市场股票 126 页面跳转有问题
161728 0P0001DI3Y 招商3年封闭运作战略配售灵活配置混合(LOF) 灵活配置型基金(封闭) 126 页面跳转有问题
001769 0P00016GJM 易方达瑞惠灵活配置混合 灵活配置型基金 30 页面跳转有问题
001773 0P00016GJL 招商丰庆灵活配置混合A 灵活配置型基金 30 页面跳转有问题
167705 0P0001CPEH 德邦量化新锐股票(LOF) A 普通股票型 136 页面跳转有问题
168103 0P00018B3N 九泰锐益定增灵活配置混合 灵活配置型基金(封闭) 136 页面跳转有问题
168105 0P00018JGP 九泰泰富定增主题灵活配置混合型 灵活配置型基金(封闭) 136 页面跳转有问题
501186 0P0001DI3X 华夏3年封闭运作战略配售灵活配置混合(LOF) 灵活配置型基金(封闭) 146 页面跳转有问题
501188 0P0001DI3U 汇添富3年封闭运作战略配售灵活配置混合(LOF) 灵活配置型基金(封闭) 146 页面跳转有问题
501189 0P0001DI3V 嘉实3年封闭运作战略配售灵活配置混合(LOF) 灵活配置型基金(封闭) 146 页面跳转有问题
512270 0P0001F68Q 华安沪深300行业中性低波动ETF 普通股票型 156 页面跳转有问题
512340 0P00015KX3 南方中证500原材料指数ETF 普通股票型 156 页面跳转有问题
512860 0P0001E1FC 华安MSCI中国A股国际ETF 普通股票型 156 页面跳转有问题
515620 0P0001JF1J 建信中证800ETF 普通股票型 166 页面跳转有问题

@ -1,4 +1 @@
代码,晨星专属号,名称,类型,股票总仓位,页码,备注
003244, 0P00018PZQ, 上投摩根中国世纪灵活配置混合美元现钞QDII, 大中华区股债混合, 77.90, 50, li[16]
003245, 0P00018PZR, 上投摩根中国世纪灵活配置混合美元现汇QDII, 大中华区股债混合, 77.90, 50, li[16]
011347, 0P0001LRDK, 易方达宁易一年持有期混合A, 沪港深保守混合型, 13.10, 186, li[16]

1 代码 晨星专属号 名称 类型 股票总仓位 页码 备注
003244 0P00018PZQ 上投摩根中国世纪灵活配置混合美元现钞(QDII) 大中华区股债混合 77.90 50 li[16]
003245 0P00018PZR 上投摩根中国世纪灵活配置混合美元现汇(QDII) 大中华区股债混合 77.90 50 li[16]
011347 0P0001LRDK 易方达宁易一年持有期混合A 沪港深保守混合型 13.10 186 li[16]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -38,7 +38,7 @@ def get_total_asset(fund_code, platform):
def acquire_fund_quarter():
lock = Lock()
each_fund_query = FundQuery()
record_total = each_fund_query.get_crawler_quarter_fund_total() # 获取记录条数
record_total = each_fund_query.select_quarter_fund_total() # 获取记录条数
print('record_total', record_total)
idWorker = IdWorker()
result_dir = './output/'
@ -135,7 +135,6 @@ def acquire_fund_quarter():
'morning_star_rating_5': each_fund.morning_star_rating.get(5),
'morning_star_rating_10': each_fund.morning_star_rating.get(10),
}
print('fund_code', each_fund.fund_code)
fund_insert.fund_quarterly_info(quarterly_dict)
# 入库十大股票持仓
stock_position_total = each_fund.stock_position.get(
@ -185,7 +184,7 @@ def acquire_fund_quarter():
sleep(3)
chrome_driver.close()
bootstrap_thread(crawlData, record_total, 4)
bootstrap_thread(crawlData, record_total, 8)
exit()
if __name__ == '__main__':

@ -23,15 +23,16 @@ class FundSupplement:
fund_query = FundQuery()
each_fund_update = FundUpdate()
funds = fund_query.select_quarter_fund(0, 15000)
print("funds's len", len(funds))
for fund_item in funds:
fund_code = fund_item[0]
fund_api = FundApier(fund_code, platform='zh_fund')
fund_api.get_analyse_info_zh()
buy_status = fund_api.buy_status
if buy_status == '已清盘':
if buy_status == '已清盘' or buy_status == '终止上市' :
each_fund_update.update_archive_status(1, fund_code=fund_code)
continue
print('fund_api', fund_api.buy_status, fund_api.sell_status)
print('没有归档基金状态:', fund_code, fund_api.buy_status, fund_api.sell_status)
def update_fund_total_asset(self):
fund_query = FundQuery()

@ -9,7 +9,6 @@ Author: luxuemin2108@gmail.com
-----
Copyright (c) 2020 Camel Lu
'''
import time
import re
import decimal
from pprint import pprint
@ -19,6 +18,7 @@ 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(condition_dict):
each_statistic = FundStatistic()
morning_star_rating_5_condition = {
@ -44,12 +44,15 @@ def stocks_compare(stock_list, *, market=None, quarter_index=None, is_A_stock=No
quarter_index = get_last_quarter_str(2)
print("比较-->quarter_index", quarter_index)
last_quarter_input_file = './outcome/数据整理/strategy/all_stock_rank/' + quarter_index + '.xlsx'
data_last_quarter = pd.read_excel(io=last_quarter_input_file, engine="openpyxl", dtype={"代码": np.str}, sheet_name=None)
last_quarter_input_file = './outcome/数据整理/strategy/all_stock_rank/' + \
quarter_index + '.xlsx'
data_last_quarter = pd.read_excel(
io=last_quarter_input_file, engine="openpyxl", dtype={"代码": np.str}, sheet_name=None)
if market:
df_data_target_market = data_last_quarter.get(market)
df_data_target_market[quarter_index + '持有数量(只)'] = df_data_target_market[quarter_index + '持有数量(只)'].astype(int)
df_data_target_market[quarter_index +
'持有数量(只)'] = df_data_target_market[quarter_index + '持有数量(只)'].astype(int)
filter_list = []
for stock in stock_list:
@ -74,8 +77,10 @@ def stocks_compare(stock_list, *, market=None, quarter_index=None, is_A_stock=No
target_loc[col_target].iloc[0]), 4)
diff_holder_count = holder_count - last_holder_count
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_asset_percent = '{:.2%}'.format(diff_holder_asset / last_holder_asset) if last_holder_asset != 0 else "+∞"
diff_holder_count_percent = '{:.2%}'.format(
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 '📉'
# if diff_holder_count == 0:
# flag = '⏸'
@ -85,10 +90,14 @@ def stocks_compare(stock_list, *, market=None, quarter_index=None, is_A_stock=No
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]
if is_A_stock:
industry_name_third = stock_holder_detail.get('industry_name_third')
industry_name_second = stock_holder_detail.get('industry_name_second')
industry_name_first = stock_holder_detail.get('industry_name_first')
item_tuple = [*item_tuple, industry_name_third,industry_name_second, industry_name_first]
industry_name_third = stock_holder_detail.get(
'industry_name_third')
industry_name_second = stock_holder_detail.get(
'industry_name_second')
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:
filter_list.append(item_tuple)
@ -124,13 +133,15 @@ def select_condition_stocks_rank(each_statistic=None, *, quarter_index=None):
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_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:
@ -140,7 +151,8 @@ def t100_stocks_rank(each_statistic=None, *, quarter_index=None):
last_quarter_index = get_last_quarter_str(2)
output_file = './outcome/数据整理/strategy/top100_rank.xlsx'
sheet_name = quarter_index + '基金重仓股T100'
columns = ['代码','名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比', '持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
columns = ['代码', '名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比',
'持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
stock_top_list = each_statistic.all_stock_fund_count(
quarter_index=quarter_index,
@ -160,7 +172,8 @@ def all_stocks_rank(each_statistic=None):
quarter_index = get_last_quarter_str(1)
print("该quarter_index为", quarter_index)
last_quarter_index = get_last_quarter_str(2)
columns = ['代码','名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比', '持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
columns = ['代码', '名称', quarter_index + '持有数量(只)', last_quarter_index + '持有数量(只)', '持有数量环比', '持有数量环比百分比',
'持有数量升或降', quarter_index + '持有市值(亿元)', last_quarter_index + '持有市值(亿元)', '持有市值环比', '持有市值环比百分比', '持有市值升或降']
output_file = './outcome/数据整理/strategy/all_stock_rank/' + quarter_index + '.xlsx'
stock_top_list = each_statistic.all_stock_fund_count(
@ -180,7 +193,8 @@ def all_stocks_rank(each_statistic=None):
# 'A股/深证主板'、'A股/创业板'、'A股/上证主板'、'A股/科创板'
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))
target_item = find_from_list_of_dict(all_a_stocks_industry_info_list, 'stock_code', stock_code)
target_item = find_from_list_of_dict(
all_a_stocks_industry_info_list, 'stock_code', stock_code)
if a_condition and target_item:
stock_name_code[1]['industry_name_first'] = target_item.get(
'industry_name_first')
@ -252,7 +266,8 @@ def all_stock_holder_detail(each_statistic=None, *, quarter_index=None, threshol
path = 'A股/科创板'
else:
print('stock_name_code', stock_name_code)
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)
stock_name_code = stock_name_code.replace('-*', '-').replace('/', '-')
path = './outcome/数据整理/stocks/' + path + '/' + stock_name_code + '.xlsx'
@ -266,33 +281,33 @@ def get_special_fund_code_holder_stock_detail(each_statistic=None, quarter_index
if each_statistic == None:
each_statistic = FundStatistic()
if quarter_index == None:
quarter_index = get_last_quarter_str()
quarter_index = get_last_quarter_str(2)
print("quarter_index", quarter_index)
holder_history_list = [
{
'001811': {
'name': '中欧明睿新常态混合A',
'position': 0.2
'radio': 0.2
},
'001705': {
'name': '泓德战略转型股票',
'position': 0.2
'radio': 0.2
},
'163415': {
'name': '兴全商业模式优选混合',
'position': 0.2
'radio': 0.2
},
'001043': {
'name': '工银美丽城镇主题股票A',
'position': 0.1
'radio': 0.1
},
'000547': {
'name': '建信健康民生混合',
'position': 0.1
'radio': 0.1
},
'450001': {
'name': '国富中国收益混合',
'position': 0.2
'radio': 0.2
},
},
# """
@ -305,40 +320,82 @@ def get_special_fund_code_holder_stock_detail(each_statistic=None, quarter_index
{
'001811': {
'name': '中欧明睿新常态混合A',
'position': 0.2
'radio': 0.2
},
'001054': {
'name': '工银新金融股票',
'position': 0.2
'radio': 0.2
},
'000991': {
'name': '工银瑞信战略转型主题股票A',
'position': 0.1
'radio': 0.1
},
'540003': {
'name': '汇丰晋信动态策略混合A',
'position': 0.2
'radio': 0.2
},
'000547': {
'name': '建信健康民生混合',
'position': 0.1
'radio': 0.1
},
'163409': {
'name': '兴全绿色投资混合(LOF)',
'position': 0.2
'radio': 0.2
},
},
[
{
'code': '519002',
'name': '华安安信消费混合',
'radio': 0.2
},
{
'code': '001718',
'name': '工银瑞信物流产业股票',
'radio': 0.2
},
{
'code': '000991',
'name': '工银瑞信战略转型主题股票A',
'radio': 0.1
},
{
'code': '540003',
'name': '汇丰晋信动态策略混合A',
'radio': 0.1
},
{
'code': '450001',
'name': '国富中国收益混合',
'radio': 0.1
},
{
'code': '000547',
'name': '建信健康民生混合',
'radio': 0.1
},
{
'code': '163409',
'name': '兴全绿色投资混合(LOF)',
'radio': 0.2
},
]
]
# 基金组合信息
fund_portfolio = holder_history_list[1]
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'
columns = ['基金代码', '基金名称', '基金类型', '基金经理', '基金总资产(亿元)', '基金股票总仓位', '十大股票仓位', '股票代码', '股票名称', '所占仓位', '所处仓位排名', '三级行业', '二级行业', '一级行业']
fund_portfolio = holder_history_list[2]
fund_code_pool = [] #list(fund_portfolio.keys())
for item in fund_portfolio:
fund_code_pool.append(item.get('code'))
print("fund_code_pool", fund_code_pool)
holder_stock_industry_list = each_statistic.summary_special_funds_stock_detail(
fund_code_pool, quarter_index)
path = './outcome/数据整理/funds/高分权益基金组合十大持仓明细-加工.xlsx'
columns = ['基金代码', '基金名称', '基金类型', '基金经理', '基金总资产(亿元)', '基金股票总仓位',
'十大股票仓位', '股票代码', '股票名称', '所占仓位', '所处仓位排名', '三级行业', '二级行业', '一级行业']
df_a_list = pd.DataFrame(holder_stock_industry_list, columns=columns)
# print("df_a_list", df_a_list)
update_xlsx_file(path, df_a_list, sheet_name='十大持仓明细--' + quarter_index)
update_xlsx_file(path, df_a_list, sheet_name='十大持仓明细--' + '2022-01')
def calculate_quarter_fund_count():
@ -358,11 +415,14 @@ def calculate_quarter_fund_count():
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))
item_quarter_data.append(
round(df_cur_sheet['持有市值(亿元)'].sum(), 2))
quarter_list.append(item_quarter_data)
columns = ["日期", "持有数量", '持有市值']
columns = ["日期", "持有数量(只)", '持有市值(亿元)']
df_quarter_list = pd.DataFrame(quarter_list, columns=columns)
update_xlsx_file(path, df_quarter_list, sum_column_name)
if __name__ == '__main__':
# 所有股票的基金持仓细节
# all_stock_holder_detail(each_statistic)
@ -374,7 +434,7 @@ if __name__ == '__main__':
# t100_stocks_rank(each_statistic=each_statistic)
# 获取某些基金的十大持仓股票信息
# get_special_fund_code_holder_stock_detail(each_statistic)
get_special_fund_code_holder_stock_detail()
# calculate_quarter_fund_count()
select_condition_stocks_rank()

@ -75,19 +75,23 @@ class FundQuery(BaseQuery):
results = self.cursor.fetchall() # 获取查询的所有记录
return results
def get_select_quarter_condition(self):
condition = "WHERE t.fund_cat NOT LIKE '%%货币%%' \
AND t.fund_cat NOT IN ('利率债', '利率债(封闭)', '短债', '短债基金', '短债型', '短债型(封闭)', '短债基金(封闭)',\
'纯债', '纯债基金', '纯债基金(封闭)',\
'普通债券型', '普通债券型(封闭)', '普通债券', '普通债券型基金','普通债券型基金(封闭)', '信用债', '信用债(封闭)','目标日期', '商品 - 其它' ) \
AND t.found_date <= %s \
AND t.is_archive = 0 \
AND t.fund_name NOT LIKE '%%C' \
AND t.fund_name NOT LIKE '%%B' \
AND t.fund_code NOT IN( SELECT fund_code FROM fund_morning_quarter as b \
WHERE b.quarter_index = %s AND b.stock_position_total != 0)"
return condition
# 筛选出要更新的基金季度性信息的基金(B,C类基金除外因为B、C基金大部分信息与A类一致)的总数
def get_crawler_quarter_fund_total(self):
def select_quarter_fund_total(self):
# 过滤没有股票持仓的基金
sql_count = "SELECT COUNT(1) FROM fund_morning_base as a \
WHERE a.fund_cat NOT LIKE '%%货币%%' \
AND a.is_archive = 0 \
AND a.found_date <= %s \
AND a.fund_name NOT LIKE '%%C' \
AND a.fund_name NOT LIKE '%%B' \
AND a.fund_cat NOT IN ('利率债', '短债基金', '短债型', '短债基金(封闭)', '纯债基金', '纯债基金(封闭)', \
'普通债券型', '普通债券型基金','普通债券型基金(封闭)', '信用债', '信用债(封闭)','目标日期' ) \
AND a.fund_code NOT IN( SELECT fund_code FROM fund_morning_quarter as b \
WHERE b.quarter_index = %s);"
sql_count = "SELECT COUNT(1) FROM fund_morning_base as t " + self.get_select_quarter_condition() + ';'
self.cursor.execute(sql_count, [self.quarter_date, self.quarter_index])
count = self.cursor.fetchone()
return count[0]
@ -97,16 +101,7 @@ class FundQuery(BaseQuery):
def select_quarter_fund(self, page_start, page_limit):
sql = "SELECT t.fund_code,\
t.morning_star_code, t.fund_name, t.fund_cat \
FROM fund_morning_base as t \
WHERE t.fund_cat NOT LIKE '%%货币%%' \
AND t.fund_cat NOT IN ('利率债', '短债基金', '短债型', '短债基金(封闭)', '纯债基金', '纯债基金(封闭)', \
'普通债券型', '普通债券型基金','普通债券型基金(封闭)', '信用债', '信用债(封闭)','目标日期' ) \
AND t.found_date <= %s \
AND t.is_archive = 0 \
AND t.fund_name NOT LIKE '%%C' \
AND t.fund_name NOT LIKE '%%B' \
AND t.fund_code NOT IN( SELECT fund_code FROM fund_morning_quarter as b \
WHERE b.quarter_index = %s) LIMIT %s, %s;"
FROM fund_morning_base as t " + self.get_select_quarter_condition() + " LIMIT %s, %s;"
self.cursor.execute(
sql, [self.quarter_date, self.quarter_index, page_start, page_limit]) # 执行sql语句
return self.cursor.fetchall() # 获取查询的所有记录

Loading…
Cancel
Save