- 8/28/2026
- 8/28/2026
管辖范围: 主要是美国(受 NFA 监管的零售外汇)。 注意: 经纪商的具体执行方式、平台行为和规则文本可能会发生变化。在依赖下文任何具体细节之前,请直接根据 NFA 自身的规则手册和你的经纪商书面交易条件进行核实。
FIFO 意为“先进先出(First In, First Out)”。在交易中,它通常指在处理较新的仓位之前,先关闭或视为已出售最旧的符合条件的仓位或税务批次。在美国零售外汇领域,FIFO 通常是指管理同一货币对中对冲交易如何关闭的规则。在股票和其他投资账户中,FIFO 则可能描述一种用于决定哪些已购单位被出售的成本基础方法。这些是相关的概念,原则相同,即“旧的优先”,但在法律和操作层面是不同的事物,而这正是导致围绕该话题产生大量困惑的原因。
以上是简短版本。本文的其余部分将正确区分这两个含义,详细说明外汇版本在美股账户中是如何实际运作的,并涵盖了对于在单个账户上运行多个专家顾问(EA)的人员意味着什么,因为这正是 FIFO 往往会产生实际摩擦的地方。
外汇 FIFO vs 税务批次 FIFO
在深入讨论之前,值得将这两种含义并列对比,因为 “FIFO” 一词被应用于完全不同的情况。
| 上下文 | 含义 |
| 美国零售外汇订单处理 | 同一货币对中较旧的对冲交易通常需要在较新的交易之前关闭 |
| 证券或税务批次会计 | 当 FIFO 被选为或作为默认的成本基础方法时,最早获得的单位将被视为首先出售 |
如果你是因为疑惑为什么你的经纪商不允许你按特定顺序关闭某个外汇仓位而来到这里,那么你面对的是第一种含义。如果你是因为想了解你的股票或加密货币销售如何被征税而来到这里,那么你面对的是第二种含义。除了本节外,本文的其余部分主要侧重于外汇版本,因为自动化和多策略交易者会在那里遇到最多的操作复杂性。
FIFO 在美国零售外汇中如何运作
外汇版本的 FIFO 源于一项特定的规则,而非通用的市场惯例,因此有必要对其进行精确命名。
规则以及实际执行者
相关规则是 NFA 合规规则 2-43(b),由美国期货业协会(NFA)于 2009 年实施。NFA 是美国衍生品行业的自律组织,准确理解其关系非常重要:CFTC 是监管整个行业的联邦监管机构,而 NFA 是为成员公司编写并执行这项特定规则的自律组织。你有时会看到该规则被笼统地称为 “CFTC 的 FIFO 规则”,这并不完全准确,它是一项 N规 NFA 成员公司必须遵守的 NFA 合规规则。
规则的实际要求
根据 NFA 自身的规则文本,外汇交易商成员(Forex Dealer Members)不得在客户账户中持有对冲仓位,且必须按先进先出的原则进行对冲。应客户要求,外汇交易商成员可以对冲相同规模的交易,即使存在规模不同的较旧交易,不过该例外情况的具体机制取决于所涉及的具体交易。在实践中,这意味着如果你在同一货币对中持有多个未平仓仓位并下单减少该风险敞口,对冲通常会首先应用于最旧的符合条件的仓位,而不是让你选择要关闭哪个特定的仓位。
哪些账户和公司受影响
规则 2-43(b) 特别适用于作为外汇交易商成员或零售外汇交易商的 NFA 成员公司,以及其他从事零售外汇业务的 NFA 成员类别。它并不适用于世界各地的每一个交易账户。在 NFA 管辖范围之外、在不同国家及不同监管机构下运作的经纪商不受此特定规则的约束,尽管它可能受其自身管辖区内等效规则的约束。这正是为什么 “哪个经纪商以及在哪里” 比 “外汇有 FIFO 规则” 这种泛泛而谈的说法更重要的原因。
FIFO vs 对冲 (Hedging) vs 净额结算 (Netting)
这三个概念经常被混为一谈,将它们正确区分开来可能是本文最有用的部分。
| 概念 | 含义 |
| FIFO | 较旧的符合条件的风险敞口在较新的风险敞口之前被减少 |
| 对冲账户 (Hedging account) | 多项多头和空头仓位可以分别表示 |
| 净额结算账户 (Netting account) | 同一品种的仓位被合并为一个净风险敞口 |
| 无对冲仓位规则 (No-offsetting-position rule) | 在同一个账户中不得独立持有相反的仓位 |
FIFO 规定了仓位关闭的顺序。对冲和净额结算描述的是平台或经纪商最初如何表示你的风险敞口,是作为独立的单据还是合并为一个数字。在实践中,规则 2-43(b) 也起到了无对冲仓位规则的作用,因为它实际上防止了客户在外汇交易商成员处持有同一品种的独立相反仓位。这些概念相互作用,但它们并非仅仅是换了名字的同一规则,平台的账户配置(而不只是潜在的监管义务)决定了这一切如何实际影响你。
实际的仓位关闭示例
这是一个具体的构想方式。交易者在周一、周二和周三分别开设了三个 EUR/USD 仓位。如果账户受 FIFO 仓位关闭规则约束,那么减少 EUR/USD 共同风险敞口的订单可能会首先应用于最旧的符合条件的交易,这意味着周一的仓位通常会在周二或周三的仓位之前被关闭。具体的处理方式可能取决于仓位大小、部分平仓规则、账户配置和经纪商的执行方式,因此请将其视为一般原则的说明,而非对你特定账户具体行为的保证。在假设你的账户完全符合此示例之前,请先在自己的账户上测试实际行为。
FIFO 如何影响专家顾问 (EA)
这是 FIFO 从抽象规则变为实际操作难题的地方,特别是对于在单个账户上运行一个以上自动化策略的人来说。
当多个 EA 交易同一个品种时,每个 EA 可能会将其自身的交易视为独立的,而经纪商则会将所有仓位视为账户层级序列的一部分。如果构建 EA 时没有考虑到这一点,EA 可能会提交一个旨在影响其特定仓位的平仓订单,结果经纪商却将该操作应用于最旧的符合条件的仓位,而该仓位可能属于一个完全不同的策略。
| EA 问题 | 更安全的开发设计方法 |
| 两个 EA 交易同一交易对 | 使用共享仓位管理器 |
| 每个 EA 都期望关闭自己的订单单号 | 在内部追踪虚拟策略仓位 |
| 出现反向信号 | 在提交订单前计算净信号 |
| 不同的手数会扭曲风险 | 保持基于风险的手数控制,并重新设计订单逻辑 |
| 部分平仓行为表现异常 | 直接测试特定经纪商的平仓规则 |
| 模拟账户与实盘行为不同 | 在预期的确切账户类型上进行验证 |
这里有一个快速但重要的警示:仅通过改变手数来规避 FIFO 行为(这种策略在交易者论坛和教育内容中经常出现)可能会扭曲你的实际投资组合风险,并且不能保证在所有经纪商或账户类型中都能一致生效。某些平台的实现方式可能会对等额仓位和不同规模的仓位进行不同的处理,但你不应假设改变手数就能规避监管或经纪商的要求。请确认经纪商的书面平仓政策,并使用你打算进行实盘交易的确切账户类型进行行为测试,而不仅仅是模拟账户,因为两者并不总是匹配。
符合合规性的多 EA 设计方法
与其将 FIFO 视为需要绕过的障碍,更持久的解决方法是设计你的 EA 设置,使其从一开始就与之协同工作。
- 在可行的情况下,将一个品种分配给一个 EA,从而完全消除共享仓位冲突
- 在多个策略确实需要交易同一品种时,使用一个共享的仓位管理器来协调它们之间的进场和出场
- 在提交订单前汇总策略信号,这样账户在每个品种上只会看到一个净订单,而不是相互竞争的单个订单
- 在 EA 内部使用虚拟子仓位,在经纪商仅看到账户实际合并仓位的同时,在内部追踪每个策略的名义敞口
- 将策略层面的账目与经纪商层面的仓位分开维护,这样即使账户显示一个合并后的数字,你自己的记录也能反映出每个策略的具体操作
- 在实盘交易中依赖部分平仓行为之前,请直接向你的经纪商进行确认
- 使用经纪商实际支持并有明确文档说明的账户结构,而不是假设某种变通方法在实盘条件下依然有效
这种方法比单纯运行几个独立的 EA 并祈祷好运需要更多的前期设计工作,但一旦真金白银和实盘账户取代了模拟账户中较宽松的环境,它的表现会稳健得多。
MT4 和 MT5 账户配置
这里的平台行为比简单的“MT4 没问题,MT5 有问题”这种说法要复杂得多。MetaTrader 的行为取决于经纪商的账户配置。MT5 可以提供净持仓(Netting)或对冲型(Hedging)仓位会计,同时经纪商可能会为了满足当地监管要求而施加额外的平仓限制。MT4 历史悠久,但这并不免除经纪商履行现行监管要求的义务,经纪商可以在 MT4 上实施 FIFO 式控制,就像在 MT5 上一样,这取决于账户的设置方式以及经纪商运营的司法管辖区。MT4 和 MT5 用户应该使用经纪商实际提供的确切实盘账户配置来测试部分平仓、反向订单和多 EA 行为,而不是假设仅凭平台版本就能决定结果。
你应该询问经纪商的问题
在单个账户上运行多个 EA 之前,与你的经纪商进行简短交谈,或仔细阅读他们的书面交易条款,这能回答大多数真正重要的核心问题。
| 问题 | 为什么这很重要 |
| 账户是持仓对冲(Hedging)还是净持仓(Netting)? | 决定了仓位如何呈现 |
| 适用哪些 FIFO 规则? | 确定允许的平仓顺序 |
| 是否支持部分平仓? | 影响 EA 的出场逻辑 |
| 不同规模的仓位如何处理? | 防止依赖不安全的假设 |
| 可以开设多个账户吗? | 与策略分离相关 |
| 是否允许反向仓位? | 决定对冲行为 |
| 模拟环境是否与实盘配置一致? | 避免错误的测试结果 |
| 返回哪些错误代码? | 帮助 EA 安全地处理被拒绝的操作 |
常见问题
FIFO 是否以与外汇交易相同的方式适用于股票和加密货币交易?
含义不同。在美国零售外汇领域,FIFO 是 NFA 合规规则,规定了外汇交易商会员必须关闭相同货币对中对冲头寸的顺序。而在股票、加密货币和其他证券领域,FIFO 更通常是指一种成本基础会计方法,用于确定在税务目的下,先处理哪些已购买单位的卖出。两者都遵循“先到先得”的逻辑,但一个是经纪商层面的订单处理规则,另一个是会计惯例,且受完全不同的规则和机构管辖。
我可以通过使用美国以外的经纪商来规避 FIFO 规则吗?
通过受不同司法管辖区监管的经纪商进行交易,可能意味着 NFA 合规规则 2-43(b) 特别不适用,因为该规则管辖的是 NFA 会员公司。这并不意味着账户会自动变得更好或更安全,离岸经纪商在不同的监管保护下运作,且因司法管辖区和公司的不同而差异巨大。在出于此原因转移账户之前,请通过官方渠道独立核实经纪商的实际监管状态、客户资金保护情况和地位,而不是假设“非 FIFO”就意味着“监管更好”。
为什么 FIFO 对自动化交易造成的麻烦比手动交易更多?
手动交易者通常有意识地管理少量头寸,因此平仓顺序很少与其意图冲突。自动化系统,特别是运行在同一个账户上的多个独立 Expert Advisor(EA),每个 EA 可能会认为自己正在管理一个隔离的头寸,而实际上经纪商会将该品种的所有头寸视为一个组合的有序序列。一个期望影响自身交易的 EA 提交平仓指令时,可能会无意中关闭了另一个策略的较旧头寸,这就是为什么 EA 的设计与理解规则本身同样重要的原因。
FIFO 是否意味着我无法在美国外汇账户中进行任何对冲?
实际上,是的,对于在 NFA 会员外汇交易商会员处开立的账户,因为规则 2-43(b) 在其排序要求的同时也起到了“禁止对冲头寸”的作用,这通常会阻止在同一家公司中同时持有相同货币对的独立多头和空头头寸。这与使用不同的、非对冲工具进行的组合级对冲不同,也不同于在不受此特定规则约束的经纪商处通过不同结构的账户进行对冲。请直接确认你经纪商的实际账户类型和规则集,而不是假设对冲在任何地方都无法实现。
FIFO 是否等同于经纪商拒绝让我进行多策略交易?
不是,尽管两者经常被混淆。FIFO 管辖对冲头寸关闭的顺序,它并不绝对禁止在一个账户上运行多个策略。真正的摩擦来自于 EA 的设计:如果策略在构建时没有考虑到共享的、有序的头寸处理,在受 FIFO 管辖的账户上可能会表现出异常行为。一个设计良好的多 EA 设置(使用本文前面提到的合规方法),可以在受 FIFO 管辖的账户上运行多个策略,而不会遇到设计拙劣的设置所面临的冲突。
当前官方来源
对于此话题最当前、最具权威性的细节,以下是值得直接查阅的来源,而不是依赖二手摘要,包括:
- NFA 合规规则 2-43,官方规则文本
- 你特定经纪商的书面交易条件和订单执行政策
- MetaQuotes 关于当前 MT4 和 MT5 账户类型行为的官方文档
- 你经纪商关于部分平仓和订单处理的自有文档
- 你税务机关或经纪商当前的成本基础文档,专门针对税务批次 FIFO 的含义
最终总结
总而言之,交易中的 FIFO 根据语境有两个相关但确实不同的含义。在美零售外汇领域,它是一个特定的 NFA 合规规则,要求外汇交易商会员按开仓顺序关闭对冲头寸,这实际上排除了在这些公司进行对冲的可能性,并可能使未考虑此规则的多 EA 设置变得复杂。在证券和加密货币会计中,它是一种用于确定哪些单位先被视为卖出的成本基础法。这两种版本本身都不会保护或损害交易者。FIFO 标准化了符合条件的头寸进行对冲的序列。这种序列是有利于还是不利于特定策略,取决于账户结构和交易方法。如果你在受 FIFO 监管的账户上运行自动化策略,请务必围绕其进行专门设计,直接确认你经纪商的具体实施方式,并在投入真实资金进行多 EA 设置之前,在拟用于实盘交易的同类账户上进行测试。

Petko Aleksandrov


