双均线策略怎么交易?金叉死叉与 ATR 止损图解

EMA 出现死叉,策略为什么还拿着多单?沿着一笔持仓,看懂双均线交叉、最短持仓规则和 ATR 移动止损怎样共同决定退出。

双均线策略怎么交易?金叉死叉与 ATR 止损图解

看量化策略的交易记录时,你可能碰到过这样的情况:快均线已经向下穿过慢均线,程序手里的多单却还没平。过了一阵,它又在没有新交叉的时候开了空单。

这套双均线策略把 EMA 交叉、最短持仓和 ATR 退出放在一起判断,所以死叉后可能继续持有。那没有新的死叉,又凭什么开空单?沿着持仓期间的规则往下看,就能把这两笔操作接起来。

这次拿 Action Zone ATR 反向订单做个案例。它观察 HYPE 永续合约的一小时 K 线,用两条 EMA 判断方向,用 ATR 安排退出距离,还给反手加了一段等待时间。我们沿着一笔多单往下看:它怎么进来,为什么暂时不换方向,又会在什么情况下离开。

双均线策略里的快慢 EMA,为什么反应速度不同?

EMA 是指数移动平均线(Exponential Moving Average),把连续的收盘价按不同分量合在一起,连成一条更平滑的线:越近的价格占的分量越大,越早的价格影响越小。 每根 K 线收盘后,它都会把新收盘价与上一根的 EMA 合起来,算出新的线位,所以能保留前面行情的影响。

这个案例用的是 2 周期和 21 周期 EMA,每个周期是一根一小时 K 线。周期决定新价格占多大分量:2 周期 EMA 每次给新收盘价约 66.7% 的权重,21 周期约为 9.1%,其余分量留给上一根 EMA。历史价格的影响就这样逐步减小,“21 周期”也不代表只把最近 21 个价格取平均。

可以把两条 EMA 想成同一条路上的两辆车:快线像一辆油门灵敏的小车,价格一变,它就很快作出反应;慢线像一辆匀速巡航的大车,对眼前的颠簸反应较缓,还带着前面一段路的惯性。

常听到的金叉,就是快线从慢线下方向上穿过去;死叉,就是快线从慢线上方向下穿过去。沿用刚才两辆车的画面:小车从后面追上大车、超过去的那一刻,就是金叉;小车慢下来、被大车反超回去,就是死叉。车的前后对应图上线的上下,看的是两条线谁在上面发生了切换。

下面只放大展示交叉附近的 9 根 K 线。两条 EMA 已经接着图外更早的行情计算,本例先用 60 根收盘价为 100 的假设 K 线准备指标,再画出后面这 9 根,因此图一开始就能看到完整的慢线。

金叉与死叉:在同一段K线上看两次穿越
快 EMA · 2 周期慢 EMA · 21 周期
9698100102123456789金叉 · 第7根:快线上穿死叉 · 第9根:快线下穿AlgoRover9698100102123456789金叉 · 第7根:快线上穿死叉 · 第9根:快线下穿AlgoRover
假设一小时行情,局部展示9根;图前另有60根用于准备EMA。2与21是EMA周期参数。第7根收盘确认金叉,第9根确认死叉,箭头指向交叉点。

拿这段假设行情看:前面几小时价格走低,蓝色的快线也跟着落到橙色慢线下面。到了第 7 根,价格收在 101,快 EMA 升到约 100.23,慢 EMA 约为 99.55,快线就从慢线下方穿了过去,形成金叉。再看第 9 根,价格收在 99,快线又落回慢线下方,形成死叉。

在这套规则里,金叉给出做多信号;快线从上方落到慢线或以下时,给出做空信号。这里向下切换的判断把两线相等也算进去。第一次开仓看的是刚发生的切换。快线已经在上面待了很久,空仓时也不会只因为这个排列就补一笔多单。

快线和慢线看的是同一组收盘价:一条贴得近,一条变化缓。两条线的位置切换,就是这套策略开始判断方向的地方。

EMA 死叉后为什么不平仓?先看最短持仓规则

假设向上的交叉已经出现,策略提交市价买单,多单随后成交。接下来它会数持仓期间经过了多少根一小时 K 线。

这里有个容易看漏的细节:配置写着最短持仓 8 根,反向处理实际要等到计数大于 8才启用。正常每小时处理一次时,要到开仓后的第 9 次持仓检查,反向交叉才可能让它平多。

等待期间,ATR 退出检查一直在。 前 8 次检查里,即使出现向下的交叉,程序也可能继续拿着多单;如果最低价碰到了退出线,它仍会发出平仓请求。

打个比方,这段等待像给新司机设一段“实习期”:车照开、刹车照踩,变道先缓一缓。对应到这套规则里,刹车是 ATR 退出,全程有效;被限制的只有变道,也就是反向处理。

早早出现、后来又消失的交叉,也不会自动排队等到第 9 次再执行。到时候要看当次信号,以及策略留下的反手状态。

接着刚才那段行情往后看:开仓后的第 2 次检查,快线向下穿过慢线,策略继续等;随后快线又回到上方。到了第 9 次检查,快线再次向下穿过,这次已经允许反向处理,程序才请求平多。这段假设行情中,等待期间没有碰到 ATR 退出线。

从开仓到第9次检查 · 同一段假设行情
快 EMA · 2 周期慢 EMA · 21 周期
9799101103开仓123456789第2次:交叉,继续等第9次:请求平多AlgoRover9799101103开仓123456789第2次:交叉,继续等第9次:请求平多AlgoRover
浅色区域覆盖第1—8次持仓检查。本例期间没有触发ATR退出,第2次交叉继续等,第9次再次交叉才请求平多。

这段等待给了短暂反复一点空间。代价也很具体:方向真的变了,它可能继续等待,直到允许反向处理,或先由 ATR 条件触发退出。读交易记录时,把“反向信号”和“退出条件”分开看,就能理解那笔迟迟没平的多单。

ATR 移动止损怎么算?退出线离价格多远?

ATR 是平均真实波幅(Average True Range),用来描述价格最近通常晃动多大。 这里取 14 根一小时 K 线,先看每根的真实波幅,再做平滑。

真实波幅会比较三段距离:本根最高价到最低价、最高价到上一根收盘价、最低价到上一根收盘价,取其中最大的一段。这样,上一小时收盘和这一小时价格之间的跳动也会被算进去。

例如上一根收在 100,这根最高 104、最低 101,三段距离分别是 3、4、1,真实波幅取 4。之后把每根的结果平滑,才得到 ATR。ATR 为 2,表示价格单位上的波动尺度为 2;它本身没有固定的百分比单位。

真实波幅:把前收盘与当前K线放在一起看
前收 100当前K线最高104最低101高−低3高−前收4低−前收1AlgoRover前收 100当前K线最高104最低101高−低3高−前收4低−前收1AlgoRover
假设价格。三段距离中取最大值 4;ATR 再对每根真实波幅做平滑。

有了这把随行情变化的尺子,策略再安排退出线。多单刚开时,初始退出线设在“快 EMA − 2 × ATR”;普通持仓检查时,再计算“快 EMA − 4 × ATR”,与已有退出线比较,取较高的那个。

普通更新像收紧一根保护绳:价格向上走,绳子跟着收;价格回落,绳子留在原处。下滑到绳子绷紧的位置,就到了退出的位置——对应的交易动作是触线后请求平仓。

下面换一段假设的一小时行情。多单开始时,退出线约在 99.02;随着价格逐步上行,普通候选线超过已有线,退出线也一步步提高到 103.83。价格随后回落,线仍留在 103.83;最后一根最低到了 103.35,碰线后程序请求平多。

K线回落时,退出线在哪里 · 假设一小时行情
快 EMA · 2 周期多单退出线
98101104107开仓481214退出线随价格抬高,回落后保留103.8399.02最后一根最低价 103.35:触线,请求平多AlgoRover98101104107开仓481214退出线随价格抬高,回落后保留103.8399.02最后一根最低价 103.35:触线,请求平多AlgoRover
橙线由99.02逐步提高到103.83,最后一根最低价碰线。图示为完整K线结束后发出平仓请求。

还有一条单独的处理:允许反向管理以后,如果上一根最高价高于当前快 EMA 加 2 倍 ATR,多单退出线会先重设到上一根最低价,再和普通候选线比较。这个重设动作可能改变之前的线位,因此看完整段持仓,仍需把这一分支算进去。

做空时方向镜像过来:初始线在快 EMA 上方 2 倍 ATR,普通候选线在上方 4 倍 ATR,普通更新取较低值;满足下方越界条件时,先参考上一根最高价重设。多单检查当前最低价是否碰线,空单检查当前最高价是否碰线。

这里的“碰线”由程序收到完整 K 线后检查,随后请求平仓。真正成交还要经过下单与撮合,跳价、滑点和处理延迟都会影响成交位置。

平掉多单,为什么还可能接着开空单?

名字里的“反向订单”,就藏在持仓状态里。

持仓检查超过 8 次后,策略会给多单设置一个待反手做空的标记;如果刚才说的上方越界条件成立,就清掉这个标记。之后出现反向交叉,可以请求平多;ATR 条件也可以先让它离场。

当旧仓已经平掉,订单也处理完了,程序才会在后续空仓检查里,结合新交叉和留下的反手标记决定下一笔方向。所以,下一笔空单可能来自之前保留的标记,当时可以没有新的向下交叉。 如果同时出现了新的做多交叉,这套规则会优先处理做多。

这个标记像一张留在订单旁的便签:“旧仓处理完,再检查做空。”它记录了待处理的方向;后续检查仍可能改写或清掉它,实际开仓也要等订单与资金条件通过。

这就把开头的两个疑问接上了:前面那笔多单可能还在等待反向处理;后面那笔空单,可能是在接着执行已经留下的反手状态。平仓请求和下一笔开仓之间,还隔着成交、订单状态和下一次检查。

另有一个时间出口:持仓计数达到 168 次时,程序会请求平仓并清掉反手标记。正常一小时一根、没有跳过检查时,对应约七天。持仓中不会因为又出现同方向信号就继续加仓。

双均线策略适合什么行情?

前面的设计依赖一件事:方向发生变化以后,价格还能沿着新方向走一段。 下面的判断来自规则本身,具体表现仍要看相同费用与数据条件下的记录。

  • ✅ 单边趋势延续:这套规则的主场。 交叉后价格持续上涨或下跌,方向信号与后续持仓过程一致,ATR 退出线有机会随着行情推进。
  • ⚠️ 宽幅波动、方向持续推进:关键看回撤。 一小时里有回撤,几小时后仍向同一方向走,与每小时完全折返是两种走势。回撤先碰到退出线,这笔持仓就会请求退出。
  • ❌ 窄幅震荡、频繁折返:最伤这类规则。 2 根 EMA 跟得很紧,快慢关系容易反复切换;等待期只延后部分反向处理,交叉入场和 ATR 退出仍可能接连发生,费用也会累积。
  • ❌ 上冲后迅速回落,或下跌后迅速反弹:方向刚切换就被打断。 新交叉刚给出方向,行情又退回原处;退出距离、等待计数和实际成交共同决定代价。
  • ⚠️ 突然跳价、流动性变薄:警惕执行风险。 完整 K 线结束后才检查并请求退出,图上的线位与成交位置之间可能出现明显距离。

它赚的是交叉之后趋势延续的钱——持续趋势是它的粮仓,频繁折返是它的天敌。换成 BTC、15 分钟 K 线或其他交易所,都要重新检查时间尺度、合约条件与费用。

双均线和 ATR 参数怎么设置,会改变哪些交易动作?

如果想研究它为什么等得久、退出线为什么离价格远,先看下面几个数字就够了。它们是当前案例的设置,表里的改动只是用来比较规则。

参数及影响步骤 较小设置 当前案例设置 较大设置
快 EMA:价格更新与交叉 2 根已是本实现下限 2 根:新收盘价权重约 66.7% 4 根:权重 40%,保留更多旧价格影响
慢 EMA:方向参照 10 根:新价格权重约 18.2% 21 根:约 9.1% 41 根:约 4.8%
ATR:波幅更新 7 根:新波幅权重约 14.3% 14 根:约 7.1% 28 根:约 3.6%
普通 ATR 倍数:多单候选线 3 倍:候选线 99 4 倍:候选线 97 5 倍:候选线 95
等待计数:何时开始反向管理 4:第 5 次开始 8:第 9 次开始 12:第 13 次开始
最长持仓:时间出口 72 次持仓检查 168 次持仓检查 240 次持仓检查
下单比例:目标名义金额 50%:初始资金 1 万时目标 5000 95%:目标 9500 100%:目标 10000,仍须通过额度检查

表里的 ATR 候选线固定快 EMA 为 105、ATR 为 2,只比较普通倍数这一项;下单金额固定杠杆参数为 1。三档数值展示的是动作怎样变化。

快线与慢线的周期需要配着看,等待计数也要短于最长持仓计数,才能给反向管理留出时间。

资金安排也值得一起看:这套配置按初始资金的 95% 计算目标下单名义金额,使用 1 倍杠杆,并受当前权益、敞口上限和最小订单限制。95% 说的是目标订单规模。 如果研究更小的下单比例,同样的价格波动对应的持仓数量会减少;提高比例则会增加对可用额度的要求。

几个参数需要配着理解:把普通 ATR 倍数调大,只改变那条候选线,开仓时的 2 倍距离仍保留。快 EMA 一旦改动,交叉时点、初始退出线和越界判断也会一起变。想知道哪个改动在起作用,可以先固定其他条件,分别核对信号和退出节点。

这类“改一项,几处动作一起变”的问题,适合交给 AlgoRover Live 继续研究。它是一个用自然语言研究量化策略的 AI 助手:把想改的参数说清楚,让它先解释哪些动作会跟着变,再比较相同行情和费用条件下的记录。文末留了查找这个策略的入口。

看懂这套规则,对你有什么用?

刚接触量化,可以从它分清三件事: 交叉给出方向、等待计数约束反向管理、ATR 相关规则安排退出。以后看到“均线策略”,就能继续问:信号出现之后,它到底怎样处理已有仓位?

考虑使用,可以把检查做得更具体: 对照一笔订单,确认持仓检查次数、退出原因、实际成交价与费用。默认 95% 的目标下单比例也值得单独研究;理解机制后,还要核对自己准备承担的仓位和执行风险。

想改造,可以一次研究一个变化: 例如保持其他条件不变,把等待计数从 8 改成 4,比较哪些反向动作提前发生、是否更容易被短暂折返打断。只看最后收益,很容易漏掉这些过程差别。

双均线策略与 ATR 止损的常见问题

双均线策略中的 EMA 和 SMA 有什么区别?

SMA 是简单移动平均线,把窗口内的价格等权平均;EMA 给最近价格更高的权重,并逐步保留更早价格的影响。相同周期、相同收盘价下,两种均线的线位和交叉时点仍可能不同。这篇案例使用 EMA,换成 SMA 后需要重新核对信号。想看同一种 EMA 改周期后的实际比较,可以接着读均线参数回测与版本比较实录。

金叉出现,就一定立刻买入吗?

空仓、指标准备好、订单状态允许并通过数量与额度检查后,才会提交买单。提交后的成交价格,还要看市场撮合。

最短持仓 8 根,是否代表前 8 小时不会退出?

可以接着“实习期”的比喻理解:变道先缓一缓,刹车一直能用。前 8 次持仓检查照常检查 ATR 退出;反向管理要等到第 9 次才开始。

ATR 倍数调大,所有退出线都会变远吗?

普通候选线会随倍数改变。初始线使用固定的 2 倍 ATR,越界分支又会参考上一根极值;最终线位需要把它们一起看。

ATR 移动止损和固定百分比止损有什么区别?

固定百分比止损按所选参考价的固定比例安排距离;ATR 止损把近期价格波动作为距离的一部分。在本例里,还要把快 EMA、初始 2 倍 ATR、普通 4 倍 ATR 和重设分支一起看。ATR 变大时,普通候选线会随之变化,已有退出线怎样更新仍由整套规则决定。若回测卖点好得出奇,可以继续核对追踪止损的盘中路径与成交假设。

双均线策略用几小时周期、哪组 EMA 参数最好?

本例的 2/21 EMA 对应一小时 K 线,周期和参数共同决定观察尺度。把周期换成 15 分钟,即使仍填 2/21,覆盖的时间也变了。比较前先固定市场、数据区间、仓位和费用,再分别改变一个条件,同时查看收益、回撤、交易次数与退出记录。判断最优参数是否可靠,可以接着看多组参数回测与过拟合。

它会像动态 DCA 一样,跌了继续补仓吗?

持仓期间不会因为价格下跌或同方向交叉继续加仓。它处理的是持有、退出,以及后续可能的反手。想对照分批买入的规则,可以接着看动态 DCA 策略图解。

平仓以后没有新交叉,为什么还能开出空单?

先看上一笔多单有没有留下待反手做空标记。标记还在、旧仓与订单已处理完,并且额度检查通过时,后续空仓检查可以据此提交空单。越界处理和时间出口会清掉标记。

想对照一笔实际记录,可以从这里继续

现在再看交易记录,可以把交叉、持仓计数和退出线放到同一段行情里:当时有没有允许反向处理?是哪条退出条件先出现?下一笔方向有没有沿用反手标记?这样,图上的动作就有了可以核对的原因。

想把这几个问题带回具体策略,可以先通过 Live 安装入口 安装或复用 AlgoRover Live,再到策略广场查找 Action Zone ATR 反向订单 0.3.3。找到后,就能围绕它继续问 EMA 交叉、等待计数和 ATR 退出分别在做什么。

找到本文策略

复制提示词:安装 Live,找到本文策略
请添加插件市场 https://github.com/AlgoRover/algorover-hub,并安装 AlgoRover Live;如果已经安装,请直接使用。然后打开 Live Dashboard,在策略广场搜索“Action Zone ATR 反向订单”(Action Zone ATR Reverse Order,action-zone-atr-reverse-order),打开 0.3.3 版本的策略详情。不要启动模拟交易或实盘。

EMA 描述方向怎样变化,持仓计数决定反向处理何时开始,ATR 相关规则决定何时请求离场。把这三件事放回同一笔持仓里,才能读懂“交叉出现了,程序为什么还在等”。

图中价格为案例假设。文章用于科普,不构成投资建议;历史回测不代表未来表现,永续合约涉及杠杆、资金费率与成交风险。

指标说明:移动平均线与 EMA 的计算、ATR 与真实波幅。