X2STRATEGY000: X2Strategy 单独章节 - Paper-to-Strategy Compiler 与 Quant Research Harness
这一篇正式单独开一个新章节:
1
X2STRATEGY000 -> X2Strategy standalone study
我们之前已经多次提到 X2Strategy,但主要是在这些上下文里:
1
2
3
4
QuantMind vs X2Strategy
HKUDS + LLMQuant + X2Strategy integration
PENGYI_HARNESS_MAP000
LLMQUANT008
那些文章里,X2Strategy 更像一个比较对象或者下游模块。
这一篇开始,把它单独作为一个项目主线来看。
当前判断
一句话:
1
X2Strategy = paper / research idea -> StrategySpec -> code -> backtest -> diagnosis 的 strategy compiler harness.
它不是普通 trading bot。
它更像:
1
quant research compiler
也就是把论文、草稿、研报、策略想法这些非结构化研究输入,转成可以审计、可以实现、可以验证、可以诊断的量化策略产物。
这对我们的 Pengyi Quant Research OS 很关键。
因为我们真正想做的不是:
1
LLM 直接说一个交易观点
而是:
1
2
3
4
5
6
7
8
research input
-> structured strategy spec
-> implementation contract
-> runnable code
-> reproducible backtest
-> diagnosis
-> PM review
-> next research plan
X2Strategy 正好卡在这条链路的中间核心位置。
项目身份
当前公开仓库:
1
2
3
4
repo: ALAGENT-HKU/x2strategy
url: https://github.com/ALAGENT-HKU/x2strategy
default branch: main
visibility: public
我在 2026-07-01 通过 GitHub CLI 确认了当前 repo 仍然公开存在。
README 的核心口号是:
1
Any Research Input -> Strategy Spec -> Executable Code -> Backtest -> Diagnosis
本地路径:
1
E:\2026\B面\project\x2strategy-main\x2strategy-main
为什么要单独看 X2Strategy
因为它补的是我们 Quant Research OS 最容易缺的一环:
1
从想法到实验的可审计转换层
很多 AI quant 系统会停在:
1
idea generation
或者停在:
1
generate some code
但真正的 research production 需要中间层:
1
StrategySpec
这个中间层的价值是:
1
2
3
4
5
6
1. 人可以审
2. 机器可以读
3. 代码可以生成
4. 回测可以复现
5. 错误可以定位
6. 后续可以换 backtest engine
直接 paper-to-code 很危险。
因为论文里的策略通常有:
1
2
3
4
5
6
7
8
ambiguous formula
appendix-only constants
unclear rebalance timing
missing execution assumptions
factor-return input instead of tradable price input
multiple strategy variants
benchmark-only logic
reporting metric vs trading logic confusion
所以 X2Strategy 最重要的思想是:
1
2
不要从论文直接跳到代码。
先从论文变成 StrategySpec。
总 pipeline
X2Strategy 的主链路可以压缩成:
1
2
3
4
5
6
7
8
PDF / MD / DOCX / TXT
-> PaperContent
-> ExtractionResult
-> StrategySpec
-> generated Backtrader code
-> validation
-> backtest
-> diagnosis report
对应模块:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
paper2spec/
parser.py
extractor.py
models.py
prompts.py
operator_pitfall.py
render.py
search.py
spec2code/
models.py
validator.py
config.py
references/
paper2spec.md
spec2code.md
extraction_quality.md
backtrader_patterns.md
indicator_cookbook.md
data_sources.md
schemas/
paper_content.schema.json
strategy_spec.schema.json
examples/
upsa/
tests/
这个结构很清楚:
1
2
3
4
5
6
paper2spec = research document -> structured strategy
spec2code = structured strategy -> executable code / validation
references = domain grounding and anti-hallucination docs
schemas = machine-checkable contracts
examples = reproducible cases
tests = deterministic safety net
paper2spec
paper2spec 是第一阶段。
它把论文或其他研究输入转成结构化内容和策略规格。
输入格式
它支持:
1
2
3
4
5
PDF
Markdown
DOCX
plain text
keyword search
这点很重要。
因为真实 quant research input 不会只有论文。
它可能是:
1
2
3
4
5
6
academic paper
internal research memo
blog
strategy draft
market note
factor idea
PaperContent
第一层输出是 PaperContent。
核心字段包括:
1
2
3
4
5
6
7
8
9
10
title
abstract
methodology
data_description
signal_logic
results
tables
formulas
references
full_text
这里的关键不是摘要。
关键是把论文拆成和策略实现相关的三个核心部分:
1
2
3
methodology
data_description
signal_logic
这三个部分分别回答:
1
2
3
方法是什么?
数据是什么?
信号和执行逻辑是什么?
Parser 的两种模式
X2Strategy 的 parser 有两个模式。
Mode A: 直接全文上下文
适合普通长度论文。
流程:
1
2
3
4
5
PDF
-> pymupdf4llm text extraction
-> full text / truncated context
-> 3 parallel LLM calls
-> methodology / data_description / signal_logic
它的优点是:
1
2
3
fast
simple dependencies
good for most normal papers
Mode B: FAISS semantic retrieval
适合超长论文或细节埋得很深的情况。
流程:
1
2
3
4
5
6
PDF
-> chunking
-> embedding
-> FAISS index
-> section-specific retrieval
-> LLM extraction
它不是 GraphRAG。
更准确地说,它是:
1
semantic retrieval assisted paper parsing
它的价值是避免长论文上下文限制,同时提高 buried detail 的召回。
5-layer extraction
X2Strategy 的 extractor 使用 5 层 LLM extraction。
这是整个项目最值得学的地方之一。
1
2
3
4
5
Layer 0: Strategy Detection
Layer 1: Metadata + Data Requirements
Layer 2: Indicators
Layer 3: Logic Pipeline
Layer 4: Execution Plan + Risk Management
Layer 0: Strategy Detection
先判断论文里到底有几个独立策略。
这一步很关键。
因为很多论文里会有:
1
2
3
4
5
6
main strategy
appendix variant
robustness variant
benchmark
theoretical procedure
reporting-only experiment
如果不先识别,LLM 很容易把多个策略混成一个四不像。
Layer 1: Metadata + Data Requirements
这一层提取:
1
2
3
4
5
6
7
8
9
strategy_name
strategy_type
asset_class
data_source
lookback_period
data_frequency
time_period
universe_assets
expected_performance
这相当于策略的外部 contract。
如果这里错了,后面代码再漂亮也没用。
Layer 2: Indicators
这一层提取上游指标和输入对象:
1
2
3
4
5
6
7
8
9
indicator_id
name
category
formula
inputs
parameters
scope
output_type
data_semantics
一个重要设计原则:
1
2
indicators 只放上游输入和数据对象。
真正 executable formula 应该进入 logic_pipeline。
这可以避免指标层和逻辑层互相打架。
Layer 3: Logic Pipeline
这是策略的核心算法。
字段包括:
1
2
3
4
5
6
7
8
9
10
11
step_id
description
function
scope
group_by
inputs
parameters
expression
output
output_type
executable_explanation
它要回答:
1
2
3
4
5
先算什么?
再筛什么?
怎么排名?
怎么组合?
怎么生成 trade_signal 或 portfolio_weights?
Layer 4: Execution Plan + Risk Management
这一层把策略逻辑落到执行:
1
2
3
4
5
6
7
trigger
frequency
delay_bars
price_type
signal_source
position_sizing
risk_management
这很重要。
因为 quant research 里最常见的问题就是:
1
信号在 t 时刻生成,但用了 t+1 才知道的信息。
所以 X2Strategy 把 timing 和 execution delay 写进 spec,是正确的工程习惯。
StrategySpec
StrategySpec 是 X2Strategy 的核心中间产物。
它不是普通 markdown。
它是机器可读的策略对象。
核心字段:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
strategy_name
strategy_type
asset_class
description
price_data
volume_data
fundamental_data
alternative_data
lookback_period
data_frequency
data_source
time_period
universe_assets
expected_performance
indicators
logic_pipeline
execution_plan
risk_management
needs_human_review
我认为最关键的字段是:
1
needs_human_review
因为它承认一件事:
1
LLM 不应该假装所有东西都知道。
当论文没有说清楚参数、公式、执行时点、约束条件时,系统应该标出需要人工确认,而不是自动编一个默认值。
这就是 human PM review 的雏形。
spec2code
spec2code 是第二阶段。
它负责把 StrategySpec 推向代码和验证。
README 里强调:
1
AST validation + Backtrader structural checks + indicator registry
也就是说,它不是:
1
generate and hope
而是:
1
2
3
4
5
6
7
generate
-> parse Python AST
-> check Backtrader import
-> check bt.Strategy class
-> check Cerebro runner
-> check main guard
-> check bt.indicators references
这个思路非常值得我们学习。
因为量化代码生成最怕的是:
1
看起来像代码,但实际不可运行。
或者:
1
能运行,但用了不存在的 indicator / 错误 API。
X2Strategy 用 validator 先挡掉一批低级错误。
Reference docs 不只是 prompts
X2Strategy 一个很强的设计是 references/。
里面有:
1
2
3
4
5
6
7
backtrader_patterns.md
indicator_cookbook.md
data_sources.md
extraction_quality.md
paper2spec.md
spec2code.md
skill-internals.md
README 里明确说,LLM 会 hallucinate Backtrader API。
比如:
1
2
3
SMA default period
RSI internal moving average
BollingerBands line names
所以不能只靠 prompt。
要靠:
1
source-verified reference docs
这对我们很重要。
未来 Pengyi Quant Research OS 也必须有类似东西:
1
2
3
4
5
6
factor_operator_cookbook.md
backtest_protocol.md
leakage_checklist.md
pandas_time_series_patterns.md
portfolio_construction_reference.md
worldquant_public_safe_boundary.md
这就是把经验从模型记忆转成系统资产。
extraction_quality
references/extraction_quality.md 是非常关键的文件。
它定义了很多 grounded extraction 规则。
核心原则可以压缩成:
1
2
3
4
5
paper text first
selected plan second
user clarification third
existing content/spec artifacts fourth
operator pitfall retrieval fifth
也就是说:
1
不要从模型记忆重构公式。
如果公式缺失,就写:
1
needs_human_review
而不是瞎补。
这就是 research reliability。
Operator Pitfall Index
X2Strategy 还有一个 operator_pitfall_index.md。
它用于 repair-style retrieval。
注意,这里的 RAG 不是通用知识库 RAG。
它更像:
1
high-risk formula / operator audit retrieval
也就是当策略涉及:
1
2
3
4
5
6
7
8
9
10
portfolio optimization
shrinkage
PCA
covariance
leave-one-out
Sherman-Morrison
ridge penalty
normalization
direct weights
timing
系统会检索相关 pitfall,作为审计 checklist。
这对量化研究非常现实。
因为 paper-to-strategy 最容易死在这些地方:
1
2
3
4
5
6
公式翻译错
矩阵维度错
协方差和 second moment 搞混
中间权重和最终权重搞混
reporting scaling 和 trading scaling 搞混
样本内和样本外时点错
Agent Skill 形态
X2Strategy 不只是 Python package。
它还以 SKILL.md 的方式暴露成 Agent Skill。
也就是可以在:
1
2
3
4
GitHub Copilot
Claude Code
Codex-like local agent
OpenClaw
里作为 /x2strategy 使用。
这点对我们现在的 Harness 方向很有启发。
它说明:
1
quant workflow 可以被封装成 agent skill
而不是每次重新写 prompt。
一个 skill 应该包含:
1
2
3
4
5
6
7
8
9
10
description
trigger condition
first response contract
setup flow
workflow steps
output paths
review gates
internal toolchain
references
limitations
这和我们现在做 PENGYI_HARNESS_MAP 是同一条线。
UPSA example
项目自带 examples/upsa/。
这个例子很重要,因为它说明 X2Strategy 不只是口号。
目录里有:
1
2
3
4
5
6
7
8
upsa_content.md
upsa_content.json
upsa_spec.md
upsa_spec.json
upsa_operator_pitfall_context.md
upsa_review_and_diagnosis.md
universal_portfolio_shrinkage_approximation.py
input/
这个例子的输入是一个 UPSA paper:
1
Universal Portfolio Shrinkage Approximation
它不是直接 broker trading。
它是:
1
factor return series -> factor portfolio weights
这点很关键。
X2Strategy 没有假装所有研究策略都能直接实盘下单。
它明确指出:
1
2
some strategies are research/backtest contracts,
not broker-connected live strategies.
这就是成熟的边界意识。
UPSA diagnosis 给我们的启发
upsa_review_and_diagnosis.md 里有一个非常好的例子。
它指出初始 spec 把两个 shrinkage object 混了:
1
2
portfolio-construction precision shrinkage
trace-preserving normalization target
这就是 paper-to-code 里最真实的问题:
1
模型可能抓到了正确主题,但混淆了不同数学对象。
最后诊断里会记录:
1
2
3
4
5
what was mixed
what HITL decisions were applied
what outputs were produced
what validation metrics were achieved
what residual gaps remain
这就是我们需要学习的 research engineering 口味。
不只是生成结果。
而是保留:
1
2
3
4
5
error
decision
artifact
metric
residual gap
和 QuantMind 的区别
之前我们比较过 QuantMind 和 X2Strategy。
现在可以更精确地说:
| System | Core Question | Output |
|---|---|---|
| QuantMind | 如何把大量金融材料变成长期可复用知识 | KnowledgeCard / PaperCard / FactorMemory |
| X2Strategy | 如何把一个策略输入变成可实现、可回测、可诊断对象 | StrategySpec / code / backtest / diagnosis |
所以二者关系是:
1
2
QuantMind = memory and knowledge layer
X2Strategy = compiler and execution bridge
组合起来就是:
1
2
3
4
5
6
materials
-> QuantMind knowledge objects
-> candidate strategy idea
-> X2Strategy StrategySpec
-> code / backtest / diagnosis
-> write back to QuantMind
和 Magents 的区别
Magents 更像:
1
multi-agent trading simulation runtime
它关注:
1
2
3
4
5
6
7
8
9
market event
strategy pod
signal agent
execution agent
order event
fill event
portfolio update
risk validation
performance metrics
X2Strategy 更像上游 compiler:
1
2
3
strategy idea / paper
-> StrategySpec
-> code contract
所以合理组合是:
1
2
X2Strategy generates and validates strategy contract.
Magents runs richer market simulation and execution loop.
和 Vibe-Trading / AI-Trader 的区别
Vibe-Trading 更偏:
1
agentic trading research workflow
AI-Trader 更偏:
1
agent-native trading platform / live trading direction
X2Strategy 更偏:
1
paper-to-strategy compiler
所以我们可以这样放:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
QuantMind:
knowledge memory
X2Strategy:
strategy compiler
Magents:
simulation runtime
Vibe-Trading:
research workflow experience
AI-Trader:
agent trading product / platform
和 RD-Agent 的关系
RD-Agent 的启发是:
1
2
3
4
research
-> develop
-> feedback
-> next research
X2Strategy 可以成为 RD-Agent 在 quant 场景里的一个子模块:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Research Agent:
reads paper / idea
proposes strategy hypothesis
X2Strategy:
converts it into StrategySpec and code
Develop Agent:
runs implementation / backtest / validation
Diagnosis Agent:
checks leakage / mismatch / robustness
PM:
decides accept / reject / iterate
这正好对应我们之前定义的:
1
2
3
4
5
6
7
R&D Agent for Quant Research
= 自动提出因子假设
+ 自动实现
+ 自动回测
+ 自动诊断偏差
+ 自动生成下一轮研究计划
+ 人类 PM 审核
对 Pengyi Quant Research OS 的映射
我会把 X2Strategy 映射到我们的系统里:
| Pengyi OS Module | X2Strategy Component | Role |
|---|---|---|
ResearchInput | PDF / MD / DOCX / TXT / search | 研究输入 |
PaperContent | paper2spec.models.PaperContent | 论文内容结构化 |
StrategyDetector | Layer 0 | 检测一个或多个策略 |
StrategySpec | paper2spec.models.StrategySpec | 策略可审计中间层 |
HumanReview | needs_human_review | 人类 PM 审核 |
PitfallRetriever | operator_pitfall.py | 高风险公式审计 |
CodeValidator | spec2code.validator | 代码可运行前检查 |
BacktestArtifact | generated strategy + metrics | 回测产物 |
DiagnosisReport | review and diagnosis markdown | 偏差诊断 |
MemoryWriteback | library outputs | 回写 Research OS |
压缩成一条链:
1
2
3
4
5
6
7
8
9
ResearchInput
-> PaperContent
-> StrategySpec
-> HumanReview
-> Code
-> Validation
-> Backtest
-> Diagnosis
-> MemoryWriteback
这就是 Quant / Trading Harness 的核心形态。
我们应该学习什么
1. 学 StrategySpec schema
我们自己的 Quant Research OS 也应该有:
1
2
3
4
5
6
7
FactorHypothesis
StrategySpec
DataContract
BacktestConfig
ValidationResult
DiagnosisReport
PMReview
不能只靠散文式笔记。
2. 学 human review gate
needs_human_review 是关键设计。
它告诉我们:
1
不确定时,系统应该停下来问人。
特别是:
1
2
3
4
5
6
7
8
9
rebalance frequency
lookback window
execution delay
data source
missing formula
normalization
position sizing
transaction cost
live vs research contract
3. 学 reference docs
不要把所有知识写进 prompt。
要沉淀成:
1
2
3
4
5
6
reference docs
schema
tests
pitfall index
validator
examples
4. 学 diagnosis report
每一次实验都应该留下:
1
2
3
4
5
6
7
what was attempted
what was extracted
what was implemented
what was validated
what failed
what human decision was applied
what residual gap remains
这就是可复利的 research artifact。
对我们 CV / 面试的价值
如果面试官问:
1
你怎么看 AI for Quant Research?
我们可以说:
1
2
3
4
5
我不认为它只是让 LLM 生成交易观点。
我更关注 paper-to-strategy 和 research-to-experiment 的可审计流水线。
X2Strategy 给了一个很好的 skeleton:
research input -> PaperContent -> StrategySpec -> code -> validation -> backtest -> diagnosis.
我想把这个思想和 QuantMind 的 knowledge layer、Magents 的 simulation layer、RD-Agent 的 R&D loop 结合起来,做一个更完整的 Quant Research OS。
如果面试官继续问:
1
为什么不能直接 paper-to-code?
我们可以答:
1
2
3
因为直接 paper-to-code 会丢 auditability。
论文里经常有多个策略版本、公式缺失、执行时点不清、指标和交易逻辑混淆。
StrategySpec 中间层可以让人先审,再生成代码,也能把 needs_human_review 和 pitfall retrieval 加进去。
对我们自己的下一步
X2Strategy 这条线后面可以继续做:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
X2STRATEGY001:
运行 / 复盘 UPSA example
X2STRATEGY002:
StrategySpec schema 深拆
X2STRATEGY003:
paper2spec prompt / extraction quality / pitfall index 深拆
X2STRATEGY004:
spec2code validator 和 Backtrader reference docs 深拆
X2STRATEGY005:
Pengyi Mini Strategy Compiler v0
最重要的是第五步:
1
Pengyi Mini Strategy Compiler v0
最小 demo 可以是:
1
2
3
4
5
6
7
8
9
input:
one public-safe factor idea markdown
output:
StrategySpec.json
backtest_config.yaml
simple pandas backtest
diagnosis_report.md
pm_review.md
这会非常适合我们的 quant 面试和 AI harness 面试。
当前不足和风险
我们也要清楚 X2Strategy 的边界。
1. 不是所有策略都能实盘
很多论文策略只是:
1
2
3
4
factor return portfolio
asset pricing procedure
synthetic portfolio
research benchmark
不是直接 broker order strategy。
2. 表格和公式抽取仍然是难点
README 里也提到表格 / 公式抽取不是完全解决。
这意味着:
1
paper-to-strategy 必须有 human review
3. Backtrader 不是唯一回测引擎
Backtrader 适合示例和结构化验证。
但真正 quant 系统可能需要:
1
2
3
4
5
pandas vectorized backtest
event-driven backtest
portfolio optimizer
broker simulator
factor research engine
所以 StrategySpec 比具体 Backtrader 代码更重要。
4. LLM extraction 会错
所以 X2Strategy 的正确使用方式不是盲信。
而是:
1
2
3
4
5
6
extract
-> review
-> repair
-> validate
-> backtest
-> diagnose
一句话总结
1
X2Strategy 的核心价值,是把 quant research 从 paper / idea 推进到可审计 StrategySpec,再推进到代码、回测和诊断。
对我们来说:
1
2
3
4
5
QuantMind 给 memory。
X2Strategy 给 compiler。
Magents 给 simulation。
RD-Agent 给 research-develop loop。
Pengyi Quant Research OS 要把这些合成自己的 R&D Agent。
这就是 X2STRATEGY000 的核心结论。