1. 数据整理(DataProcess.py)
1.1 数据源
本项目采用的数据均来自天天基金网(https://fund.eastmoney.com/)的官方API。
(1)单个基金当前净值:http://fundgz.1234567.com.cn/js/014243.js ,数据格式如下。
| fundcode | name | jzrq | dwjz | gsz | gszzl | gztime |
|---|---|---|---|---|---|---|
| 基金代码 | 基金名称 | 净值日期 | 单位净值 | 估计净值 | 估计涨幅 | 估计时间 |
(2)单个基金全部信息:https://fund.eastmoney.com/pingzhongdata/001186.js,数据格式如下:
-
基金基础信息(用于低费率筛选)
var fS_name = "华泰柏瑞港股通医疗精选混合发起式C"; var fS_code = "019127"; var fund_sourceRate="0.00"; // 原费率 var fund_Rate="0.00"; // 现费率 var fund_minsg="10"; // 最小申购金额 -
持仓信息(判断基金类型偏股or偏债、判断基金是否高仓位运作)
var stockCodes = [...]; // 股票代码 var zqCodes = ""; // 债券代码 var stockCodesNew = [...]; // 新市场格式股票代码 var Data_fundSharesPositions = [ // 每个时间点的股票仓位比例 [时间戳, 股票仓位%], ... ]; var Data_assetAllocation = { "series":[ {"name":"股票占净比","data":[81.61,94.5]}, {"name":"债券占净比","data":[0,0]}, {"name":"现金占净比","data":[31.05,9.69]}, {"name":"净资产","data":[0.1521,9.2566]} ] }; -
收益率表现
-
阶段收益:量化多因子分析,筛选基金涨幅
var syl_1n=""; // 近一年收益率 var syl_6y="8.51"; // 近6月收益率 var syl_3y="-5.03";// 近3月收益率 var syl_1y="2.13"; // 近1月收益率 -
走势数据:
-
单位净值走势 (
Data_netWorthTrend):计算最大回撤,绘制净值曲线var Data_netWorthTrend = [ { x: 时间戳, y: 单位净值, equityReturn: 当日涨跌幅, unitMoney: 分红 } ]; -
累计净值走势:可直接用于计算累计收益率
var Data_ACWorthTrend = [ [时间戳, 累计净值] ]; -
累计收益率走势对比:判断是否跑赢同类 / 大盘
var Data_grandTotal = [ { name: "本基金", data: [...] }, { name: "同类平均", data: [...] }, { name: "沪深300", data: [...] } ]; -
同类排名走势:同类前 10% / 20% 筛选;评估基金长期相对表现
var Data_rateInSimilarType = [ { x: 时间, y: 排名, sc: 同类总数 } ]; var Data_rateInSimilarPersent = [ [时间, 百分比] ];
-
-
-
基金规模变动:筛选“规模过小 / 过大”的基金
var Data_fluctuationScale = { categories: ["2025-06-18","2025-06-30","2025-09-30"], series: [ {"y":0.00,"mom":"--"}, {"y":0.01,"mom":"3053.93%"}, {"y":8.52,"mom":"62042.09%"} ] }; -
持有人结构:判断是否机构看好
var Data_holderStructure = { "series":[ {"name":"机构持有比例","data":[0.0]}, {"name":"个人持有比例","data":[100.0]}, {"name":"内部持有比例","data":[0.0735]} ] }; -
基金综合评价:构建多因子打分模型
var Data_performanceEvaluation = { "categories":["选证能力","收益率","抗风险","稳定性","择时能力"], "data":[null,null,null,null,null] }; -
基金经理信息与评价:基金经理星级,能力量化分析
var Data_currentFundManager = [{ "name":"张弘", "star":4, "workTime":"5年又14天", "fundSize":"22.38亿(9只基金)", "power":{ "categories":["经验值","收益率","抗风险","稳定性","择时能力"], "data":[79.80,89.30,62.60,61.70,66.20] }, "profit":{ "series":[ {"data":[ {"y":14.11}, // 任期收益 {"y":28.3}, // 同类平均 {"y":23.61} // 沪深300 ]} ] } }]; -
资金流:识别是否“被资金追捧”
var Data_buySedemption = { "series":[ {"name":"期间申购","data":[...]}, {"name":"期间赎回","data":[...]}, {"name":"总份额","data":[...]} ] }; -
同类基金涨幅榜:
var swithSameType = [ ['022364_永赢科技智选混合发起_235.49', ...], ... ];
(3)基金基础信息列表:http://fund.eastmoney.com/js/fundcode_search.js ,格式如下:
格式:["000001","HXCZ","华夏成长","混合型","HUAXIACHENGZHANG"]
1.2 核心函数解释
-
get_fund_basic_info(fund_code)
- 功能:获取基金综合信息,包括实时估值、基本资料等
- 输入:基金代码
- 输出:基金最近一个交易日的单位净值(dwjz)、基金名称(name)、净值日期(jzrq)、估计净值(gsz)、估计增长率%(gszzl)、估计日期(gztime)等
-
get_fund_net_worth_history(fund_code, years=None)
- 功能:获取基金历史净值数据
- 输入:基金代码;显示最近多少年的数据(None表示显示全部)
- 输出:包含日期和净值的DataFrame
-
calculate_max_drawdown(net_worth_series)
- 功能:计算最大回撤
- 输入:净值序列
- 输出:包含最大回撤信息的字典
-
calculate_technical_indicators(df, window=20)
- 功能:计算技术指标,包含20日均值,累计收益率等
-
plot_fund_vector_graph(fund_code, years=None, save_path=None)
- 功能:绘制基金历史表现矢量图
- fund_code (str): 基金代码
- years (int, optional): 显示最近多少年的数据,None表示显示全部数据,1表示最近1年的数据,依此类推
- save_path (str, optional): 保存路径,例如 'fund_plot.svg';默认为 None (直接显示图表)
预测策略
LSTM方法
- 回溯 :滑动窗口的长度,表示我们回溯过去的周期数。
- 前瞻 :我们想要预测未来的周期数。