跳到主要内容

Agent Lab 支持的 Built-in 策略

重要声明:策引提供策略研究、模拟组合与长期观察工具。平台不提供投资建议,实验结果只反映历史模拟行为。真实账户中的决策与风险由用户自行判断和承担。

Agent Lab 的策略配置有两种互斥形态,一次实验只能二选一:

形态含义
Supported built-in 配置通过服务端策略标识符 + 结构化参数,选择策引已有的内置策略能力。它不是任意代码,不含源代码、模块路径或可执行内容。
Strategy DSL 配置开放的组合式规则描述契约(strategy_definition),用于表达新的、透明的规则图。

本文只列出 Agent Lab 支持的 built-in 表面(allowlist)。内部引擎的策略类远多于这里的清单,不在清单里的策略名会被校验直接拒绝,不要凭 Engine 内部实现猜测或发明名字。

选择路径

研究意图
-> 已有 supported built-in 是否忠实实现该行为?
Yes -> 使用 built-in 结构化配置
No -> Strategy DSL 能否忠实表达?
Yes -> 使用 DSL
No -> UNSUPPORTED / 衍生分析

当 built-in 恰好匹配用户要研究的行为时,优先使用 built-in;不要把已有能力硬塞进 DSL 近似。当用户要定义新的透明规则时,使用 DSL。

支持的 Built-in 清单

BuyHoldStrategy(交易策略)

  • 意图:全窗口重复 BUY 权限(repeated BUY permission)。资金策略决定每次是否有可用现金执行买入。这是经典定投(DCA)的交易侧。
  • 参数:无。
  • 允许的资金策略搭配FixedInvestmentStrategy
  • 示例:见下方经典 DCA(定投)

FixedInvestmentStrategy(资金策略)

  • 意图:周期性资金投入(月度或年度),决定定投的现金节奏与单次金额。
  • 参数(结构化值,缺省时使用引擎默认值):
参数说明
initial_capital初始资金(数值,> 0)
investment_amount每次定投金额(数值,> 0)
investment_frequency定投频率:"y" 年度 / "m" 月度(枚举,区分大小写)
percents单个标的的最大仓位百分比,大于 0 且不超过 1000 < percents <= 100
fund_val_start兼容参数(legacy):Engine 契约接受该字段,#158 经典示例使用 100。当前 Engine 的现金流调整净值/XIRR 口径并不读取它——不要把该字段当作可研究参数来解释。
  • 允许的交易策略搭配BuyHoldStrategy

MomentumRotationStrategy(交易策略)

  • 意图:按动量周期在固定候选标的中轮动持有动量最强的资产。用于验证 built-in 路径是通用能力,而不是定投特例。
  • 参数
参数说明
momentum_period动量计算周期(天),默认 21
rebalance_frequency再平衡频率:"d" 每日 / "w" 每周 / "m" 月度(枚举,区分大小写)

本页只列出 Agent Lab 当前公开的参数表面。未列出的参数名(包括引擎内部 支持的其它参数)会在校验阶段以 Unknown parameter 拒绝,请勿凭 Engine 内部实现补参数。

  • 允许的资金策略搭配PercentCapitalStrategy

PercentCapitalStrategy(资金策略)

  • 意图:按总资产百分比决定单标的仓位上限,是动量轮动在正式产品中的既有资金搭配。
  • 参数
参数说明
initial_capital初始资金(数值,> 0)
percents单个标的的最大仓位百分比,大于 0 且不超过 1000 < percents <= 100
  • 允许的交易策略搭配MomentumRotationStrategy

Built-in 配置形态

Built-in 形态与 DSL 形态共用同一套 envelope(namesymbolsstart_dateend_datecurrencymarketcommissionupdate_time):

{
"name": "QQQ 月度定投实验",
"description": "经典月度定投 + 买入持有",
"symbols": [{ "symbol": "QQQ" }],
"start_date": "2015-01-01",
"end_date": "2025-12-31",
"currency": "USD",
"market": "US",
"commission": 0.0001,
"strategy": { "name": "BuyHoldStrategy", "params": {} },
"capital_strategy": {
"name": "FixedInvestmentStrategy",
"params": {
"initial_capital": 100000,
"investment_amount": 1000,
"investment_frequency": "m",
"percents": 95,
"fund_val_start": 100
}
}
}

规则:

  • strategy_definitionstrategy + capital_strategy 只能出现一个;两者同时出现、都不出现、只出现一半都会被拒绝。
  • strategy.name / capital_strategy.name 必须是本页清单中的名字;参数是结构化值(字符串、布尔、数字等),不是代码。
  • 搭配必须符合本页的 pairing 表;未知策略、未开放策略都会在 validate_strategy_config 阶段被拒绝,而不是等到实验失败。
  • 参数表面是封闭的params 里出现本页表格之外的参数名(例如 investment_amount 拼成 investment_amout)会以 Unknown parameter 在校验阶段拒绝——它不会像额外字段那样被静默忽略,实验也不会带着引擎默认值"看似成功"地跑完。
  • 已声明参数的值约束(枚举、gt/ge/lt/le 数值边界、基本类型)也在校验阶段生效,例如 investment_amount: -1000percents: 101 会直接失败。

经典 DCA(定投)

经典定投 = BuyHoldStrategy + FixedInvestmentStrategy

  • BuyHoldStrategy:持续给出 BUY 权限(repeated BUY),由资金策略决定有没有钱执行;
  • FixedInvestmentStrategy:按 investment_frequency 周期性注入现金(月/年),investment_amount 决定每次金额。

不要用 ordinary DSL 的 always-true 买入条件来模拟定投。ordinary DSL 使用 B/H 持仓状态机:

EMPTY + true -> BUY
HOLD + true -> HOLD

因此 always-true 条件只能买一次并持续持有,无法表达后续定投加仓。定投/定期投入 + 买入持有,请使用 supported built-in 路径。

明确的排除范围

以下内容在 Agent Lab 中不可用,会校验失败:

  • FileBasedStrategy 与任意文件驱动的策略;
  • AI / 自主 LLM 运行时策略(例如 AITraderAgentStrategy);
  • 依赖某个正式组合私有文件、secret 或外部状态的策略;
  • 任何动态 class / module 路径;
  • 任意可执行代码 / Python / JavaScript / Pine;
  • 本页清单之外的一切策略名(包括引擎内部存在的其它 CODE 策略)。

校验成功只表示“当前契约支持且可执行”,不代表收益、稳健或推荐。

相关文档