自然语言生成交易策略
自然语言生成交易策略不是把一句话变成可下单算法。Bastix 把研究描述整理成目标、数据契约、规则、节点、失败状态与复核问题,帮助发现歧义并继续修改。该能力为 Beta;平台没有统一回测、券商连接或真实下单。
自然语言生成交易策略在 Bastix 中指的是:把一段研究描述整理成目标、数据、规则、节点、停止条件和复核问题,形成可继续修改的研究与策略骨架。它不是把一句话直接变成可实盘执行的算法,也不会自动补齐缺失的数据口径、交易成本或合规要求。该能力目前处于 Beta。1
最合适的输入不是“给我一个高胜率策略”,而是能被追问和证伪的研究问题,例如:
在指定标的池内,观察已经披露的财务指标与公告事件;字段缺失或公告时间不明时暂停结论,并列出需要人工复核的证据。
它解决的是“结构不清”,不是“预测不准”
自然语言描述经常把五类不同东西揉在一起:研究目标、数据条件、判断规则、风险限制和外部动作。结构化的作用是把它们拆开,让用户看到哪些部分已经明确、哪些仍是歧义。
| 原始说法 | 必须追问 | 可以形成的结构 | 不能擅自推断 |
|---|---|---|---|
| “最近涨得好” | 最近是几日?涨幅用收盘价还是复权价? | 时间窗、价格字段、计算方式 | 自动选择最有利参数 |
| “基本面不错” | 看收入、利润、现金流还是估值?报告期是什么? | 指标、单位、报告期、阈值 | 用模型印象替代数据 |
| “风险太高就停” | 风险指波动、回撤、公告事件还是仓位? | 停止条件、优先级、责任人 | 自动处置真实账户 |
| “每天看一下” | 交易日、运行时间、失败重试和通知方式? | 调度、最近成功时间、暂停与恢复 | 视为消息必达 |
| “符合条件就买” | 这是研究标记、模拟仓位还是证券订单? | 研究节点或沙箱记录 | 连接券商并下单 |
如果无法回答追问,正确产物应保留“待确认”,而不是生成一套看似完整的规则。
一份可复核的策略骨架应包含什么
1. 目标与范围
写清研究对象、市场、标的池、时间区间和要回答的问题。目标应该可被推翻,例如“判断数据是否满足某组筛选条件”,而不是“发现投资机会”。
2. 数据契约
每个条件绑定字段、单位、周期、来源、asOf 和缺失处理。财务数据还要区分报告期、披露日和修订;行情要说明复权、交易日与停牌。Bastix 的 A 股、ETF、指数和部分股指期货数据链路仍有覆盖、许可、延迟与修订边界,不能写成全市场实时能力。2
3. 规则与优先级
规则必须能被另一位研究者按同样输入重算。多个条件冲突时,要写清“全部满足”“任一满足”还是分层优先;阈值缺失时不得由模型自行优化。
4. 节点与工具
节点说明要完成的研究动作,例如查询数据、读取公告、整理证据、更新沙箱记录。每个节点应列出输入、预期输出、失败出口以及调用工具的读写权限。
5. 状态与人工决定
至少区分未运行、运行中、成功、失败、等待输入和暂停。用户需要知道在哪里修改规则、何时恢复,以及最后哪项判断仍需人工完成。
结构示例:它展示字段,不代表真实运行结果
下面的示例只展示一段输入应如何被拆解;标的、数字和结果均未填入,也不证明当前生产环境已经成功运行同一任务。
objective: 核对指定标的池的已披露财务指标与风险公告
universe:
source: 用户选择的标的池
as_of: 待用户指定
data_contract:
- field: 营业收入
period: 待指定
unit: 元
source: 待工具返回
missing_policy: 暂停该标的结论
- field: 公司公告
published_before: 研究截止时间
conflict_policy: 保留冲突并转人工复核
rules:
- id: revenue_check
expression: 待用户确认阈值与比较口径
- id: announcement_check
expression: 仅检查研究截止时间前已披露材料
nodes:
- query_data
- open_sources
- record_unknowns
- human_review
external_action: none该结构的价值恰恰在“待指定”:如果系统把报告期、阈值或公告范围自动补成一个数字,用户很难分辨那是自己的规则还是模型的假设。
怎样检查它是不是“可解释”
一段解释文字不够。正式复核时至少逐层检查以下七项:
| 层级 | 要回答的问题 | 不合格表现 |
|---|---|---|
| 目标 | 策略试图观察或验证什么? | 只写“寻找机会” |
| 数据 | 使用哪些字段、来源和时间? | 没有报告期、单位或 asOf |
| 规则 | 什么条件命中,冲突时谁优先? | “较高”“较强”等词没有定义 |
| 节点 | 每一步调用什么工具,读还是写? | 把工作流执行写成真实交易 |
| 证据 | 哪些材料支持或反对结论? | 只展示模型总结 |
| 不确定性 | 哪些是推断、失败或未知? | 缺数仍输出确定答案 |
| 权限 | 谁能修改、暂停和产生外部影响? | 默认所有写操作都有统一确认 |
Bastix 目前在会话、工具调用、策略定义、运行控制和沙箱仓位等位置留有具体记录,但没有覆盖全部动作的统一审计契约,也没有覆盖所有内置与用户自配工具的统一人工确认闸门。公开页面只能列出具体记录与具体权限,不能承诺“每一步完全可追溯”或“所有操作均需确认”。3
失败不是异常文案,而是产品输出的一部分
正式证据页至少要展示一次成功和一次失败。失败可按以下方式处理:
- **名称歧义:**列出候选标的,等待用户确认,不自动选择。
- **字段缺失:**指出缺失字段、来源和受影响规则,暂停该结论。
- **时间冲突:**以研究截止时间为边界,保留披露日晚于截止时间的材料,但不得带入计算。
- **工具超时:**保存已经完成的节点与错误信息,允许从失败节点重试。
- **规则冲突:**同时展示命中与否定证据,要求用户决定优先级。
- **权限不明:**不调用外部写入工具,先展示权限和数据流。
TAP 如何承接持续研究
当研究骨架被用户确认后,可将定义、调度和运行状态组织到 TAP(可持续运行策略单元)中。TAP 可以启动、停止并保留运行记录;无人值守任务的内置边界是研究、观察和整理,不是自动下单。4
自然语言结构化与 TAP 是两步:前者把表达拆清楚,后者承接已经确认的持续任务。两者都不能替代回测、合规审查和证券交易授权。
Bastix 明确不提供什么
- 没有现成统一回测引擎;用户只能在受限代码工具中自行组织研究计算。
- 内置能力不连接券商、不提交真实订单。
- 沙箱策略仓位不是券商账户持仓或真实成交。
- 不保证生成规则正确、完整、可盈利或适合个人风险情况。
- 不承诺所有数据完全不进入外部模型;需按具体工具和资料类型查看数据流。
开始前先准备这六项
- 一句可证伪的研究问题;
- 标的池与研究截止时间;
- 每个字段的报告期、单位和来源要求;
- 阈值、优先级和缺失处理;
- 失败后暂停、重试或人工接管条件;
- 明确“不得产生真实证券订单”。
准备好后,可进入工作台生成研究骨架,并逐项确认系统是否保留了你的原意。对生成质量和错误修订方法,请参阅AI 生成交易策略的质量评测指南;对历史检验方法,请参阅交易策略回测协议。