时间加权委托是将大单按时间均匀拆分为等量小单的执行方式,以降低市场冲击和滑点,twap为其典型实现;需校验交易时段、计算拆单参数、构造ordertwap实例并提交,支持webui、rest api及websocket三种实操路径。
欧易(okx)官方认证入口:
点击获取官方APP☞☞☞☞☞:

什么是时间加权委托?
时间加权委托是量化交易中一种基础但关键的执行方式,它不依赖市场成交量变化,而是把一笔大额订单严格按时间轴切分成若干等量小单,在预设起止时段内均匀下单。这种委托方式的核心目标是降低对盘口的瞬时冲击,避免因单笔量过大导致价格滑点——尤其在流动性一般或盘口较薄的合约上,直接挂全量买单可能瞬间吃掉3~5档卖盘,推高成交均价。
TWAP(Time-Weighted Average Price)就是时间加权委托最典型的实现形式。它不预测行情、不跟踪量能、不判断买卖力道,只忠实地把“时间”当作唯一刻度尺。正因为逻辑极简,它被OKX、Binance、Bybit等主流交易所的高级量化API原生支持,也是实盘中风控要求高、策略信号强时的默认拆单选项。
TWAP策略怎么拆分大单?
以OKX平台Python SDK(v5.12+)为例,完成一次合规可执行的TWAP拆单需严格遵循以下路径:
第一步:确认交易时段有效性 → 检查当前合约是否处于连续交易状态(如BTC-USDT永续合约支持24小时交易,但SHFE黄金期货仅开放日盘9:00–11:30/13:30–15:00),【若起始时间落在非交易时段,OKX API将直接拒绝请求并返回code=51001】。
第二步:计算基础参数 → 设定总委托量V、起始时间t₀、结束时间t₁、时间粒度Δt(单位秒)。例如:V=120 BTC,t₀="2026-06-04T10:00:00Z",t₁="2026-06-04T10:30:00Z",Δt=180(即每3分钟触发一次下单)→ 总片数N = floor((t₁ − t₀) / Δt) = 10 → 单次委托量 = V / N = 12 BTC。
第三步:构造OrderTWAP实例 → 调用okx.v5.trade.OrderTWAP类,传入instrument_id、side(buy/sell)、sz(单次委托量)、start_time、end_time、interval_sec三个必填字段;注意sz必须为整数且≥最小委托单位(BTC-USDT为0.001 BTC),否则API返回400错误。
第四步:提交并监听状态 → 执行order_twaps.submit()后,SDK自动按Δt间隔循环调用place_order接口;每次下单前会校验账户可用保证金与杠杆率,若某次触发时保证金不足,该批次将跳过且不重试,剩余未执行量继续按计划推进。
OKX高级量化交易指南中的TWAP实战要点
方法一:使用WebUI内置TWAP工具(适合手动策略补单)
进入OKX「交易」→「高级交易」→「算法交易」→ 选择「TWAP」模板 → 填写币对、方向、总数量、开始/结束时间 → 点击「生成委托计划」→ 系统自动显示每档时间点与对应下单量 → 确认后一键启动。
方法二:通过REST API直连(适合高频策略集成)
向POST /api/v5/trade/order-algo 提交JSON体,key包括:instId、tdMode、side、ordType="twap"、sz、stpId、stpx、startTime、endTime、interval。其中interval单位为秒,取值范围60~3600,【小于60秒将被API强制拦截,返回code=51005】。
方法三:基于WebSocket订阅实时执行反馈
在/algo-order频道订阅ordId后,每笔子单成交会推送trade事件,含execPrice、execSz、ts字段;注意:TWAP母单本身不产生成交记录,只有子单成交才触发trade推送,因此回测对账必须聚合所有子单trade数据。











