自然语言交易:从提示词到投资组合
用一句话描述一个策略,改变了谁能做自动化。从人类措辞到机器精确规则的转译如何运作,以及它在哪里失灵。

二十年来,把一笔交易自动化意味着两件事之一:学会写代码,或者跟一个带四十个下拉字段的表单搏斗。两道门槛,在大多数投资者的第一条规则跑起来之前,就把他们挡在了外面。自然语言交易移除了这道门槛。你用一句话描述你想要什么,一个系统就把它变成被监控的条件和可执行的订单。难的部分藏在那句话的中间:人类的措辞是有歧义的,市场不是,而两者之间的转译,正是这些系统成功或悄悄失败的地方。这篇文章解释那次转译如何运作,以及如何评判它。
是界面在挡路,而不是这个想法
大多数散户投资者都有一些形状像自动化的想法。每周买一笔固定的金额。大涨一波之后止盈。别再往一个不断下跌的头寸里加仓了。这些都不奇特;这是策略,是任何人都能张口说出的那种规则。
挡在想法和一个运行中的系统之间的,是表达。给一个机器人写代码意味着 Python、API 文档、服务器正常运行时间,以及凌晨三点的错误处理。基于表单的构建器更温和些,但仍然逼着你的想法穿过它们的词汇表:如果下拉里没有“糟糕的一周之后跳过买入”这个字段,你的规则就丢了那个从句。无论哪一种,都是工具塑造了策略,而不是策略塑造工具。
一个语言界面把它颠倒了过来。系统去适应你的措辞,而不是你去适应它的模式。这对专业量化者意义不大,他们从没被挡住过,而对其他所有人意义巨大:那个有清晰策略、却无意成为程序员的投资者。它是通向智能体交易这一更大转变的界面层,在那里软件在你的约束下执行你的逻辑,而它嵌进任何认真的交易自动化都遵循的同一条流水线:定义、测试、然后运行。
“抄底”没有定义
这是核心问题,在一条指令里清晰可见:“比特币抄底。”
一个人类同事大致会知道你什么意思。而市场不跟“大致”打交道。拆开来,那句话至少藏着五个未定的参数:
| 歧义 | 机器必须回答的问题 |
|---|---|
| 什么算一个底? | 跌 3%?10%?从昨天的收盘、7 天高点,还是你上次的买价算起? |
| 买多少? | 固定金额、现金的百分比,还是按底的大小来缩放? |
| 多久买一次? | 每个底买一次?什么阻止它在一场崩盘的每个小时都买? |
| 一个底什么时候变成一场崩盘? | 负 40% 还是一个你想买的底吗? |
| 这什么时候算错了? | 什么结果会让你把这条规则关掉? |
在规则能运行之前,那些空白里的每一个都必须被填上。唯一的问题是谁来填:你,明确地填,还是系统,悄悄地填。一个靠猜的系统之所以危险,恰恰因为它会运行,它会做点什么,而那点什么可能不是你的本意。“抄底”被解读成“每跌 3% 就买 5% 的现金,无限频率”,会以完美的服从,把一个账户倒进一个下跌的市场里。
同样的陷阱也坐在更温和的短语里。“每周”(哪一天、哪个小时、哪个时区?)。“涨得多了就止盈”(从哪儿算涨、卖多少?)。“如果情况变糟就停”(用什么来衡量?)。人类语言依赖共享的上下文;执行系统一点也没有。因此,转译不是自然语言交易的一个便利功能。它就是整个产品。
好的自然语言交易系统如何消解歧义
设计良好的系统拒绝悄悄地猜。有三个机制,把可信的那些和其余的区分开来。
复述意图。 在任何东西运行之前,系统用精确的措辞把你的指令回放一遍:资产、触发条件、订单规模、时间表、出场、失效。这次复述就是合同。如果它说“每跌 3% 就买”而你的本意是每周,那个误译会死在复核阶段,而不是死在你的账户里。当你评估一个平台时,这是第一件要测试的事:给它一条模糊的指令,看它是暴露它的假设,还是把它们埋起来。
发问,而不是假设。 当一个参数真的无法被推断时,正确的行为是一个澄清的问题。“你说了抄底:从什么参照算起,每次买多少?”一个从不发问的系统,并不比一个会发问的更聪明;它只是猜得更有礼貌。
永久地展示解析出的规则。 批准之后,那些确切的机器可读条件应当保持可见:不是你输入的那句诗意的话,而是实际被监控的阈值和仓位。你应当能在任何时候审计这个智能体认为它的指令是什么,因为那个,而不是你对那次对话的记忆,才是将要执行的东西。
留意这三个机制的共同点:它们把歧义的消解移到了钱之前。一个在复核时被抓住的误译,代价是十秒钟的编辑。一个在实盘账户里被抓住的误译,代价是市场决定它是多少。
从句子到运行中的智能体:一个走通的例子
这是完整的路径在 Obside 上的样子,句子也包含在内。
你在副驾里输入:“每周五往一只 S&P 500 ETF 里投 €150,但如果指数前一天收盘跌超过 3%,就跳过那一周,而如果这个头寸整体亏损达到 20%,就把一切暂停。”
副驾把它复述为一条规则:在你选定的 S&P 500 ETF 上一笔 €150 的买单,安排在每周五;一个跳过条件,它把周四的收盘和前一天的收盘相比较,在跌超过 3% 时取消那一周的买入;以及一个失效从句,如果这个头寸的未实现亏损达到 20%,就把这个自动化整个暂停,并通知你。它无法推断的歧义,会作为问题返回:哪个券商的哪只 ETF,以及周五的什么时间。
你复核被复述的条件并批准。这个智能体接着先在模拟盘里运行:同样的时间表、同样的条件、实时市场数据、没有真实订单。过几个周五后,你可以查日志:它有没有在该买的时候买,跳过从句有没有在它该触发的那一周触发?只有在那之后,你才把它切到实盘,同样的条件通过你连接的券商账户,用真实订单执行。
句子是界面。复述是安全网。模拟运行是考试。那个顺序,而不是任何单一功能,才是让大白话方法可信的东西,而它映照着我们在如何创建一个 AI 交易智能体里走过的完整工作流。
一句话做不到的事
这个界面配得上诚实的边界,因为移除写代码的门槛,一点也没有移除思考。
一句更清晰的话,不会把一个糟糕的策略变好。“用我全部的现金买每一个底”转译得完美、也失败得完美。转译层保证的是对你意图的忠实,而不是你意图的质量。回测和模拟交易的存在,是为了测试想法本身,没有任何界面能取代它们。
精确仍然得从某个地方来。系统能问澄清的问题,但你得握着答案:什么让规则失效、每个头寸多少、多大的亏损终结这个实验。在任何界面里都回答不了那些问题的投资者,还没准备好在这个界面里做自动化。写出自带精确度的指令,是一门可学的手艺,有已知的套路,我们在有效的交易提示词里存了一个它们的库。
有些策略不适合句子。真正量化的逻辑、一次投资组合优化、一个用自定义数据搭起来的信号,想要的是一份正式的规格说明,而不是散文。如果你发现自己在输入一段带十二个嵌套从句的段落,那语言界面已经不再帮忙了。
而责任永远不会转移。智能体执行你批准的东西;批准是你的。大白话降低的是进入的门槛,不是判断的标准。
下一步该做什么
自然语言交易最好被理解为一份转译合同:你提供意图,系统提供精确,而那个可见的复述,是两者相遇的地方。用那份合同去评判任何平台。它暴露它的假设吗?它在无法推断时发问吗?它展示解析出的规则吗?它在上实盘之前让你在模拟盘里彩排吗?
如果你想端到端地测试这个回路,Obside 让你用自己的话输入一个策略,在任何东西运行之前把它究竟理解了什么确切地展示给你看,并在第一笔真实订单之前,把结果带着走过回测和模拟交易。
仅供教育参考,不构成投资建议。交易存在风险,可能导致本金损失。
FAQ
自然语言交易意味着用日常语言描述一条交易或投资规则——“每周五买 €150 的 S&P 500 ETF,除非指数刚跌了 3%”——然后让一个系统把它转译成精确、机器可执行的条件。转译层定义了这份体验的质量:好的系统会复述它理解到的东西,并在任何订单能被下达之前,对歧义发问。