返回风控与心理
风控与心理

合约止盈止损怎么设?触发价格、成交与只减仓

Trader Stan·2026.10.16·阅读时间 14 min

合约止盈止损先按实际持仓选触发来源、价格、数量及市价或限价执行,取得设定接受回报后才算建立委托。触发不等于成交,部分成交后按回报更新余量,最后核实实仓归零及相关残单取消。只减仓限制反向开仓,不保证成交;数量或撤单状态不清时先查同单回报,避免盲目重送,无法确认有效保护时不新增敞口。

「止损设好了」听起来是一个完成状态。但打开订单记录,可能只是设定被接受,还没触发;也可能已经触发,限价单却还挂着。这两种情况,画面上都可能留着同一个止损数字,仓位的风险却完全不同。

这篇先解释各种价格与委托的工作,再从0.050 BTC的计划开始,走过部分入场、撤掉余单、止损触发、分批退出和清点残单。全部成交回报都明确标为教学假设。我更想让你看懂数量怎样变成零,而不是只找到下单界面里那个「确认」按钮。

关键要点

  • 触发价、委托价与成交价各有用途,限价止损可能触发后仍无法成交。
  • 退出数量跟实仓走,不能因原计划0.050就假设全部成交。
  • 只减仓限制反向开仓;撤入场余单、取消失效退出单仍须独立核对。

合约止盈止损,先写触发条件再选执行方式

完整退出条件至少包含价格来源、触发方向、委托方式与数量。 只说「跌到58900就走」,还没交代是最新价还是标记价、走多少,以及触发后要送什么单。这里先以USDT线性BTC永续多单说明,BTC是比特币、USDT是本例结算资产;多单退出需要卖出平仓。商品与资金安排可接续永续合约入门流程。

触发价、委托价与成交价分三栏

触发价决定何时启动;限价委托价决定愿意接受的成交边界;成交价则来自真正撮合。多单止损若设「标记价小于等于58900,送58880的限价卖单」,就不是保证按58900或58880卖掉,而是符合条件后才尝试以58880或更好的价格退出。

标记价是平台的估值与风险参照,最新成交价是该合约最近的撮合结果,指数价格是按规则整合的现货参照。OKX官方《合约交易如何设定止盈止损?》2026年8月26日版本,区分触发、委托与价格来源,并提醒触发后的限价单未必成交;实际产品的价格限制与适用性,仍以账户当下规则为准。

教学标记价58900触发后送58880卖限价,成交须另查回报,清楚分开三种价格。

市价与限价,交换的是什么条件

市价退出会尝试与当时可用对手单撮合,成交均价可能偏离触发价,这个差异就是滑点;限价退出保留价格边界,代价是可能只成交一部分,或一直等待。这不是两个按钮谁比较高级,而是你愿意承担哪种失败情况。

Bybit《Take Profit and Stop Loss》2026年10月8日版本,将触发参照、整仓/部分仓与执行方式分开设定;条件限价仍须等待可匹配的价格,不把一个产品的预设值套给别家,也不因界面显示「市价」就保证立即全数退出。若使用滑点限制,须一并核对超限后的取消或未成交处理。

只减仓管方向,不替你保证成交

Reduce-only只减仓的目的,是让退出单减少现有仓位,避免退出后反向开仓。 它不会创造流动性、不替你取得想要的价格,也不代替交易者确认委托是否还有效。持仓模式与产品不同,支援的字段也可能不同。

Reduce-only与触发后平仓的适用范围

Bybit《Reduce-Only Order》2026年6月29日版本,说明限价单可使用只减仓,数量超过现有仓位时可能被调整或取消;同日《Close On Trigger》则针对条件单的平仓用途,触发后仍须依市价或限价方式执行。不能把「只用来平仓」扩张成「限价一定成交」。

假设多单已被其他委托平掉,原本没有限制的止盈卖单后来又成交,便可能形成新的空单。只减仓是防止这类结果的工具,但你还是要检查当前仓位、委托方向及回报。部分止盈后,也应核实剩余止损是否覆盖新的实仓数量,不凭预设印象认为系统已经全部替你调好。

只减仓与触发后平仓避免退出单意外反开,但不保证成交,也不替代撤销未成交入场单。

配对退出单与未成交入场单,分别核对

有些TP/SL止盈止损功能会在一侧触发后撤掉另一侧;独立提交的两张单却不必然具有相同关系。Bybit上述TP/SL文件的配对处理,是该功能的规则,不是所有两张反向委托都自动互相取消。下例采独立管理的退出委托,所以会逐一检查与撤销。

还有一张容易漏掉的单,是尚未成交的入场余量。你把已有多单平掉,不代表原来的限价买单跟着消失;它之后成交,仓位又会回来。退出前后都要查入场单剩多少,不能只看止盈止损清单。

部分成交教学案例:从0.050计划走到0.030实仓

本例按委托事件改数量,并把「撤单请求」与「撤单成功」分开。 价格、时间、数量与所有回报均为教学假设,不是某交易所实测或真实行情。时钟采UTC协调世界时,只表示事件顺序。它示范如何核对,不主张该设定适合实盘。

第一步:固定条件,按已成交数量保护

先固定这份假设计划:限价买入0.050 BTC,入场价60000,等待到09:05。止损采标记价小于等于58900触发,启用Close On Trigger触发后平仓用途,再送58880的只减仓GTC限价卖单;GTC表示持续有效直到成交或被撤销。另预挂62000的独立只减仓GTC限价止盈卖单,它没有另一个条件触发价,也不与止损自动配对。止损触发三秒后若仍有余量,就先撤单核对,再按已确认实仓处理。这三秒只是案例设定,不是平台保证延迟,也不是所有账户都适用的应变期限。

09:00:00,假设成交回报显示只买到0.030 BTC,均价60000,入场余量0.020尚未成交。此时要保护的是0.030多单,不能把0.050全当作持仓。本例另假设止损设定与62000止盈委托都已取得接受回报,后续也没有其他入场成交;实际操作若没有接受回报,应先查委托是否建立,不能当作已有保护。

到09:05,对入场余量提出撤单并取得取消成功回报,确认那0.020没有在等待期间补成交。之后实仓仍是0.030。若取消回报之前又成交了0.005,实仓便应改成0.035,退出单也要重核;不能因为自己已经按下撤销,就把所有后到回报丢掉。

教学计划0.050只成交0.030,09点05确认取消0.020入场余量,实仓仍0.030,不揭示后续。

第二步:限价止损已触发,仓位却没有减少

09:06:00,教学标记价降至58900,记录另有条件单已触发并被接收的回报。于是0.030 BTC的58880限价卖单开始等待。假设此刻最高买价只有58850,而且没有更高买单,就没有能满足58880或更好价格的对手单;「已触发、零成交」在这个账本里是合理结果。

价格到达与订单触发,要分开确认。若只有标记价58900的画面,最多知道价格条件已到;还要收到触发及接收回报,才能把订单记为已触发。本例假设两份回报都已收到。实际若显示被拒绝、系统忙碌或结果未知,就查该笔委托状态,不能直接往下当作挂单成功。

09:06:02,教学成交回报新增一笔0.010 BTC、价格58890。它高于卖单最低接受价58880,所以没有违反限价边界;剩余多单是0.030减0.010,等于0.020。成交价较58900触发价低,并不代表限价失效,两个字段本来就回答不同问题。

教学Mark58900触发后最高买58850无法撮合58880卖限;后0.010于58890成交,剩0.020多仓。

第三步:部分退出后,先确认撤单再处理余量

到了事前定好的09:06:03,仍有0.020未退出,便对原限价余量提出撤单。这一秒先记「撤销待确认」,还不能同时把另一张完整退出单当成已可安全重送;否则旧单在途中继续成交,就可能与新单竞争同一份余量。

假设09:06:04收到取消成功回报,并确认02秒后没有新增成交、实仓仍为0.020,才送只减仓市价退出。随后收到两笔假设成交:0.008 BTC在58840、0.012 BTC在58820。两笔合计0.020,加前一笔0.010,才刚好抵掉原本0.030的入场。

每次收到回报,都用「累计入场减累计退出」核对实际持仓量:原始0.030,第一笔退出后0.020,后两笔全收齐才是零。尚未成交的入场余量与退出余量另列,不把两张方向不同的挂单互相抵消成持仓。

这段不是通用的紧急交易指令。若撤单结果未知、回报断线或实仓对不上,流程应停在状态核对,不能自动重送当成第一次没有成功。可用何种紧急平仓与风险控制功能,须依平台账户与既定应变规则处理;反复增加委托并不能解决不知道自己还持有多少的问题。

教学03秒撤销请求,04秒成功且无新成交,再以0.008及0.012两笔假设退出,实仓守恒至零。

第四步:算实际分批价差,清点剩余委托

已确认的教学成交分三笔,便按三笔分别计算;未成交的0.020入场余量,不放进收益或损失分母。下表与配图用相同口径,不用最后一笔价格代表整个退出过程。

教学退出笔次BTC数量成交价格USDT价差损失USDT
限价部分成交0.0105889011.10
市价第一笔0.008588409.28
市价第二笔0.0125882014.16
合计0.030分笔计算34.54

若把0.030都假设在58900退出,损失只是33 USDT;本例分笔计算则是34.54,多了1.54。不能把事前止损触发价当作成交价,借此把那1.54从记录里抹掉。两笔市价成交的加权均价是58828,只适用那0.020余量,也不是整笔0.030的退出均价。

再额外假设进出交易费率都为0.05%,入场费为0.9,三笔退出费合计0.88273,价差损失加示例交易费为36.32273 USDT。这是假设费率重算,没有真实账单;资金费与其他调整未知,不能把36.32273称为账户最终净盈亏。重做时将成交、计划价与费率分栏,逐笔重算,才不会把假设改成已知事实。

09:06:05,假设回报已确认实仓为零、原止损余单已撤,独立62000止盈单也已取消,这次流程才结束。清点残单不会改变刚才的盈亏,却能避免把旧委托留给下一次交易;真实操作仍以自己的订单列表与回报为准。

三笔教学退出价差11.10、9.28与14.16合34.54,加假设费1.78273得36.32273;其他费未知,非最终实账。

设完以后,还要确认哪几种失败状态

未触发、零成交、部分成交、被拒绝与结果未知,应分开记录。 把它们全部写成「失败」,就不知道下一步要查价格、订单条件还是通讯回报。把它们全部写成「已止损」,更会直接算错剩余风险。

没成交、被拒绝与结果未知,各自怎么记

若入场到期仍零成交,先核对撤销成功,再清理预设退出条件;没有建立仓位,就不记成获利单。若条件单被拒绝,保存原因与当时参数,核对商品状态、数量、模式及价格限制。若收到部分成交,就只减相应数量,剩余仓位仍需管理。

请求超时与明确被拒绝不同。画面没更新可能是回报慢,不是订单不存在;应查同一订单识别码的状态及成交明细,再决定后续处理。系统不知道有没有成功时自动重送,可能把一笔退出变成两笔委托。

修改设定不能撤销已经发生的成交

止损触发后,原条件可能已转为另一笔有效委托;修改画面上的数字,不代表那笔已挂出的单也被撤掉。保存修改前后的识别码、确认时间与有效数量,才能知道保护是否真的接上。也不要为了让记录看起来完整,把事后新设的触发价写回最初计划。

从止损设定回到完整交易计划

退出安排要配合敞口与资金条件,不能独立保证亏损上限。 特别是止损附近同时接近平台风险条件时,执行延迟与不同价格来源都要一起看;止损线画在强平参考外侧,不代表一定能及时成交。

先算能承受的数量,再检查资金与风险

先把止损距离、成本与可用资金放进合约仓位计算,而不是先把仓位开满,再指望一张很近的止损单解决风险。限价的价格控制与市价的执行取舍都各有代价,应在事前计划与测试中说清楚。

后续学习:保留每次状态的时间与凭证

可以接续交易日志的字段与模板,保存计划数量、实际成交、取消及费用。合约为什么会强平?标记价格、维持保证金与止损差异,处理风险判定;合约交易成本怎么算?手续费、滑点与净盈亏,接续总成本。

本文仅供委托机制与教学练习,不构成投资建议。全部示例事件及成交均为假设,不能证明平台实测结果或真实损失上限;合约仍有强平、滑点、未成交及系统风险。

常见问题

Q1. 合约止盈止损的触发价就是成交价吗?

不是。触发价启动委托,限价委托价设定可接受边界,成交价才来自实际撮合;记录应保留三个字段。

Q2. 为什么限价止损已触发,还是持有仓位?

触发后送出的限价单仍须有符合价格的对手单,可能零成交或部分成交。查看委托与成交回报,不能仅靠触发画面判断已退出。

Q3. 只减仓是否保证立即平仓?

不保证。只减仓限制委托用于减少现有仓位,避免反向开仓;是否及何时成交,仍取决于执行方式、价格与流动性等条件。

Q4. 计划0.050但只买到0.030,要设多少退出?

按已确认的0.030实仓管理,另行追踪与撤销0.020入场余量。取消成功前若又有成交,就更新实仓并核对保护数量。

Q5. 已送撤单请求,可以立即重送完整退出单吗?

不能把请求当成功。先核同一订单的取消与新增成交,再以已确认的余量处理;结果未知时避免盲目重送,依平台与既定应变流程核对。

Q6. 教学损失36.32273是否就是账户最终净盈亏?

不是。那只是本例分批价差损失加假设交易费,没有真实成交或费单,资金费等其他调整也未知,不能冒充账户结果。

合约止盈止损条件单止损单限价止损Reduce-only只减仓部分成交风险管理