背景
螃蟹之前发现了一个开源的股票分析工具,它设计的比较好,通过引入不同角色来分析标的物

问题
但是对于新股来讲,是没有行情数据的,因为还没有上市交易。所以螃蟹之前就屏蔽这个市场分析角色。
分析
但是二婚股由于在A股已经上市,所以A股的价格某种程度上会影响IPO参与的决定。
那么最好是有一个功能具备如下能力:
1、自动计算A股/港股的折价率
2、根据A股的行情数据协助判断参与IPO的决定
实现
系统的完善都是助理实现,螃蟹只负责提需求:
增加二婚股的分析能力
之前系统并不能识别分析的股份是否是二婚股,鉴于从招股说明书上提取相对麻烦点,所以选择先在分析页面是设置:
当母股份代码有值时就认为是二婚股

提示1:
系统中有一个港股IPO记录的管理页面,
VUE代码位于:/Users/jim/Documents/AI/TradingAgents-CN/frontend/src/views/HkIpoRecord/index.vue。
服务层的代码位于:/Users/jim/Documents/AI/TradingAgents-CN/app/services/hk_ipo_record_service.py。
提示2:
系统中有一个港股新股申购分析页面,
VUE代码位于:/Users/jim/Documents/AI/TradingAgents-CN/frontend/src/views/IPO/HKSingleAnalysis.vue。
服务层的代码位于:/Users/jim/Documents/AI/TradingAgents-CN/app/routers/analysis_ipo.py。
服务层接口名称:submit_single_analysis。
提示3:
系统中有一个通过lang-graph构建的AI工作流,代码位置:/Users/jim/Documents/AI/TradingAgents-CN/tradingagents/graph/setup_ipo.py
它的主要逻辑是分析指定的港股IPO是否值得参与。
现在需要在已有的功能基本上做如下变更:
需求1:港股IPO记录管理页面改动:
1、在港股IPO记录管理的创建、编辑的表单页中增加一个新的字段,中文名称叫母股份代码,英文名称叫parent_stock_code,并完善前后台的代码功能。
需求2:港股新股申购分析页面改动:
1、在港股新股申购分析页面中找到股票代码对应的表单项,在其右侧增加一个新的表单项,名称叫母股份代码,文本框类型,非必填。
2、在接口参数对象SingleAnalysisRequest中增加新的表示母股份代码的属性:parent_stock_code。
3、AI工作流的上下文对象AgentStateIpo增加母股份代码的属性,名称为parent_stock_code。
4、在初始化AI工作流时,将SingleAnalysisRequest中的parent_stock_code传入到AgentStateIpo对应的属性上
需求3:AI工作流改动:
系统中有一个市场分析的节点,代码位于:/Users/jim/Documents/AI/TradingAgents-CN/tradingagents/agents/analysts/market_analyst_ipo.py。之前由于新股并没有行情数据,所以做了一个跳过逻辑:当分析的股票是香港股票时直接跳过此节点。现在需要从上下文中获取parent_stock_code,如果不为空则说明分析的股票是一个二婚股,此时可以对它所属的母公司进行市场分析。将变量ticker的值改成从上下文中取parent_stock_code,取到值之后继续后面的分析。根据母公司的行情数据来判断是否应该参加对应香港股票的IPO。
注意:以上所有的代码改动,需要你做单元测试,确保写的逻辑正确
增加二婚股的股价提取能力
A股/港股的折价需要知道2个数据:
AI工作流的节点逻辑需要增强:
节点1:市场分析节点
代码位于:/Users/jim/Documents/AI/TradingAgents-CN/tradingagents/agents/analysts/market_analyst_ipo.py
1、AI工作流的上下文对象AgentStateIpo增加母股份股价的属性,名称为parent_stock_price
2、market_analyst_node增加母股份股份的提取
由于在分析时会调用工具get_stock_market_data_unified获取股票数据,所以需要从结果中提取股票的最新价格,并返回给上下文的属性parent_stock_price
3、当AI工作流包含市场分析节点时增加判断:在执行完市场分析节点后,在执行下一个分析节点前判断分析的股份是否是二婚股,如果是再判断上下文中的parent_stock_price是否大于0,如果<=0,此时结束整个分析流程并提示二婚股获取母股份股份错误;如果不是二婚股继续后面的分析,如果AI工作流中不包含市场分析继续后面的分析。
节点2:分析记录保存节点
代码位于:/Users/jim/Documents/AI/TradingAgents-CN/tradingagents/agents/savers/ipo_record_saver.py。从上下文对象中获取母股份股份并赋值给对应的属性上。
注意:以上所有的代码改动,需要你做单元测试,确保写的逻辑正确。
效果展示
市场分析概要:

折价率信息:

综合分析概要:

总结
本次新增加的功能: