跨市场选股条件能通用吗:先检查字段,再分别执行
同一句选股要求可以在含义上适用于多个市场,却不一定能在当前每条数据连接上执行。先核字段定义、币种、财务期间和覆盖,再对A股、港股、美股分别运行,交付能力表和各市场结果,包括部分完成或被阻断的池。不能把未完成市场混进一张看似全球完整通过的清单。
本文给三个市场池提供合成能力约定,故意关闭其中一条连接的增长字段,实际检查能力并分池执行,不代表任何供应商当前真实覆盖。CoTrading跨市场筛选仍为规划或待核实。参考工具存在或拥有预置股票池,也不等于已经实现可用的全球一键选股器。
把原要求拆成必需字段
样例要求正滚动市盈率低于20、年度收入增长至少10%,并满足本地流动性门槛。字段表写清PE盈利口径、收入比较的两个期间与成交金额窗口。“增长”一列可能指收入、利润、季度或全年,名称相同不能替代含义核对。目标期间与观测可获得时间也要分别记录。
SEC EDGAR接口说明展示财务事实需要保留单位和报告期间,是上下文随数字一起交付的官方示例,不提供对应A股或港股完整覆盖。真实任务应分别从适用披露或授权数据来源取得字段,再核对是否真正匹配请求。美股接口有一项,不表示另外两个市场自动具备相同定义。
比较字段前先确定证券身份。OpenFIGI文档展示带交易所上下文的标识映射。本地短代码、普通股与同发行人的另一上市线,不必然是同一筛选对象。本例使用明确虚构标识,没有调用映射服务,也没有解决跨上市证券经济等价关系;真实多地上市应保留股份类别与具体交易线。
建立条件乘市场的能力表
每条连接只有支持字段且定义符合请求时,才标可执行。整项能力不可用,与单只股票缺观测分开:支持字段但某行空,可以进补数队列;连接没有该字段,重复相同请求不能自动完成全池条件。能力判断本身也要有来源和版本,不能由一次空响应反推。
| 条件 | A股样例 | 港股样例 | 美股样例 |
|---|---|---|---|
| 可比滚动PE | 支持 | 支持 | 支持 |
| 指定年度收入增长 | 支持 | 不支持 | 支持 |
| 成交金额币种 | CNY | HKD | USD |
| 完整请求 | 可执行 | 仅部分 | 可执行 |
这是样例给定能力,不是对这些市场所有数据的断言。港股增长字段故意关闭,不表示港股公司不披露收入;换一条已授权连接,经过定义与覆盖核对后可能改变能力状态。不得将合成故障写成某个市场永久不可研究的产品结论。
共同数值子集只有PE条件,其输出命名为“共同PE条件通过”,不能叫完整请求通过。保留部分计算有价值,前提是读者清楚它省略哪些原要求。若界面只显示一个绿色通过标签,会把能力缺口隐藏成投资筛选结论,应在数据结构阶段就避免这种歧义。
绝对金额条件作为本地政策保留
本例各池流动性阈值均写本币两千万,这是三条明确提供的本地政策,不是经济等价的共同金额门槛。两千万CNY、HKD、USD价值不同;在配置中重复数字20,不会自动归一购买力或可交易性。阈值来源和目的分别记录,不能用数值相等冒充口径统一。
若确实需要共同货币门槛,应另定义带日期汇率来源、换算方法和市场时点,再执行。本例没有汇率层,不生成跨币种绝对成交金额排名,而是保留本地币种分池运行。换汇取数与研究比较也不等于回测记账已具备完整FX能力,不能跨功能推断。
无量纲比例也可能不可比。PE盈利定义、增长财年和合并范围都可能不同。不能因为比例没有货币单位,就忽略会计和期间差异。只有明确接受可比的条件才进入共同子集;仍需本地处理的项目单列,不以另一个更容易取得的指标替代。
显式执行完整与部分分支
if not contract["growth"]:
output[market] = {"status": "partial",
"common_pe_pass": common,
"full_pass": None,
"blocked_field": "growth"}
else:
passed = [symbol for symbol, pe, growth, turnover in rows[market]
if 0 < pe < 20 and growth is not None
and growth >= .10 and turnover >= 20]
下载完整示例。使用Python 3.12+、标准库和合成能力表,运行python R527.py。作者文件为docs/growth/research/round-5/examples/R527.py。
实际输出A池完整规则选A1,美股池选U1。A2通过PE和增长,却未过本地成交金额;U2通过PE和成交金额,却未过增长。港股池H1保留在共同PE子集,状态部分完成,完整通过字段为空,阻挡字段为增长。断言分别检查这些路径,没有把港股整池删除或当作没有合格股票。
空值是有意设计。若写完整列表为空数组,容易让人以为全规则已经运行,只是没有匹配;事实上该分支没有执行完整请求。表与说明都应保留区别,读者才能判断该补数据连接,还是研究条件真的没有候选。能力状态变化以后再运行,不覆盖此前部分结果的证据。
用混币种排序反例检查合流边界
样例还尝试把A1的30百万CNY与U1的30百万USD按绝对成交金额排序,检查器拒绝mixed_currency_ranking。数字相等,数量却不在共同尺度。转换前平均、排序或赋全球名次,都会制造不存在的可比性。用字符串保留币种还不够,下游运算也要实际检查它。
增长能力缺失是另一种故障。改用价格动量会执行另一条规则,填零会断言不存在的观测。正确部分分支保留PE计算,同时挡住完整入选主张。修复能力需要适用来源和定义,不是换个容易得到、名字相似的指标。用户若接受替代要求,应新建规则变体并明确命名。
某市场未通过能力检查,也不能让请求股票从报告中消失。每个池给完整、部分或阻断状态,附输入数量。共同状态表可以汇总执行情况,却不是共同经济排名。报告覆盖百分比时保留每池分母,避免成功市场数量较多就掩盖另一个市场全部未执行。
合并研究队列前再做可比性审阅
交付请求、字段字典、能力矩阵、各池规则变体、输入快照和结果,分别标共同子集与本地条件。让审阅者追A2成交金额失败、U2增长失败和H1完整请求未执行三条路径。这些具体例子证明没有静默跳过市场,也没有拿替代指标冒充通过。
团队以后合并阅读队列,应明确跨市场精力分配方法,不暗示本地成交金额共享尺度。可以保留市场分组、另建有依据的优先级,或等待标准化;不能让通用排序默认生成全球顺序。研究清单合流也不能自动变成可执行投资组合,两者还需要其他约束与市场规则。
供应商、字段定义、市场连接或币种政策变化后,重新打开能力检查,只对受影响池执行并保留旧版本。这样条件能否迁移成为具体可验收的决定:哪些字段能算、哪些输出有支持、哪些请求还没完成,而不是一个笼统的“支持全球市场”口号。
能力证据也需要版本
能力表每个可执行单元格,保留来源字段名、定义、单位、期间覆盖与映射依据。只有一个勾号,可能掩盖实际用了替代指标。阻断单元格则写清限制属于连接、请求期间,还是某只证券。这样来源能力变化时,可以精确定位该重开哪条条件,而不是重新猜全部市场是否支持。
引入新来源时,先用一条已接受记录和一条故意不相容记录试跑,再启用整池。确认财年错配仍阻挡,缺字段不会变数值零。它们检查适配器解释,不保证供应商普遍完整覆盖;如果特定来源新增字段,也要核实历史深度和定义,不能因为字段今天出现就默认过去日期可得。
市场完成数与股票完成数分别报告。一个市场完整请求无法执行,同时其中几只股票的PE观测仍有效。只报成功行数会隐藏不支持条件,只报部分市场标签又会隐藏可用成果。成对输出保留这两个事实,但不把部分结果升级成完整筛选通过。下游合并时也应继承状态,不能导出后丢掉缺口字段。
最终报告可以列出让完整请求继续所需的明确输入,而不是泛称待更多数据。例如需要目标年度收入字段与其定义确认,或需要一致货币政策。下一步针对能力缺口设计,才能避免不断增加已有PE记录,却一直没有解除原任务的真正阻挡。
常见问题
样例港股增长不可用代表整个市场吗?
不代表,只描述给定连接。真实覆盖应查实际来源。
相同本币门槛能叫全球统一门槛吗?
不能,共同货币基础需要明确换算方法和带日期输入。