
查找关于我们算法交易平台的常见问题解答
算法相关
1. 核心算法参数如何理解?
makerRateLimit: 最低挂单成交比例。限制算法交易中的最低 Maker(被动成交)占比。但该参数优先级低于 mustComplete 以及 upTolerance/ lowTolerance 。如果订单执行时间较短,或 upTolerance/ lowTolerance 设置较严格,则最终 Maker 成交率可能低于此参数设定值。
povLimit: 最大市场成交量占比,也称"POV(参与率)"。限制算法单在单位时间内的成交量相对于市场总成交量的上限,避免在流动性较差时过度成交。如果 mustComplete 为 true,则无论市场状况如何,算法都会在指定时间内完成全部交易量。
upTolerance / lowTolerance: 超前/落后基准进度的允许偏差,用于控制交易进度。若希望订单执行进度贴近 TWAP/VWAP 基准,可将 upTolerance 和 lowTolerance 设定得较严格(例如 upTolerance=2%,lowTolerance=10%),并将 strictUpBound 设为 true,这样算法会更均匀地拆单执行。若对跟随基准进度要求不高,可使用默认容差参数,让算法有更灵活的进度调整空间。
tailOrderProtection: 尾单保护。尾单指小于交易所最小下单量的剩余订单。当母单总量接近交易所最小下单量时,建议关闭尾单保护(设置为 False)。此时尾单通常会跟随前一笔订单以市价单方式成交,从而确保全部执行完毕,但这样可能降低整体的 Maker 成交比例。如果母单总量较大,尾单占比很小,可以选择开启或关闭,该设置对整体影响不大(交易进度有时显示 99%+,即尾单未执行的情况)。
enablemake: 算法是否支持 maker,主要针对 BTC/ETH 等大币种,T-M < 1.5 bps,且下单时间较短时,建议设置 enablemake=false。
startTime: 算法开始时间。
- 不设置开始时间:订单将在提交后立即开始执行。
- 设置开始时间:请确保 开始时间 + 执行时长 晚于当前时间,否则订单会因过期而无法执行。
2. 下单支持哪些数量单位,如何设置?
平台支持两种数量单位,但只能设置其中一个:
- totalQuantity: 交易币的数量(例如:BTC/USDT 交易对中,totalQuantity 表示 BTC 的数量)
- orderNotional: 计价币的金额(例如:BTC/USDT 交易对中,orderNotional 表示 USDT 的金额)
3. 按照orderNotional下单是否在期初确定固定的下单数量?
当使用 orderNotional 参数时,系统会在整个交易执行过程中,根据市场价格动态调整,逐步向目标金额(计价币金额)靠近,而不是根据初始价格确定固定的交易数量。
4. 使用 orderNotional 平仓时是否存在无法完全平仓的情况?
问题场景: 假设当前有 -10U 的 DOGEUSDT 空仓(名义价值),想要平完这个空仓,使用 orderNotional = 10 和 isTargetPosition = False 下单
可能存在的问题: 下单过程中市场价格波动可能导致平不干净
- 交易所锚定的是币数,而非名义价值
- 当使用 orderNotional 时,会在整个交易执行过程中,根据市场价格动态调整,逐步向目标金额(计价币金额)靠近,而不是根据初始价格确定固定的交易数量。
- 如果在下单执行过程中,市场价格上涨(对于平空仓的情况),实际成交的币数可能不足以完全平掉原有的空仓
解决方案:
- 推荐方案: 使用 isTargetPosition = true 配合 totalQuantity = 0,系统会自动计算需要平仓的币数,确保完全平仓
- 替代方案: 使用 totalQuantity 直接指定需要平仓的币数(而不是名义价值),这样可以确保平仓的币数准确,不受价格波动影响
5. isTargetPosition 参数(按照目标仓位下单)如何使用?
isTargetPosition: 根据目标仓位进行下单的参数。当启用此功能时,算法会读取您当前账户的仓位,然后计算与目标仓位的差额来下单
当 isTargetPosition = true 时:
- totalQuantity 必填(表示目标仓位数量)
- 禁止填写 orderNotional(此模式下只支持按持仓数量目标下单)
isTargetPosition 不传的情况下,默认为 false
side 参数与 isTargetPosition 的组合使用:
- 如果 isTargetPosition = false:side 代表交易方向
- 可选值:buy(买入)、sell(卖出)
- 合约交易中与 reduceOnly 组合,reduceOnly = true 时:
- buy 代表买入平空
- sell 代表卖出平多
- 如果 isTargetPosition = true:side 代表仓位方向
- 可选值:buy(多头)、sell(空头)
6. ReduceOnly 参数
reduceOnly 开启后,该订单只能用于减少或平掉当前已有仓位;若下单数量超过现有仓位,只会按已有仓位成交,剩余部分自动取消,不会新开仓,也不会反向持仓。需要注意的是,reduceOnly 参数最好不要与目标仓位下单(isTargetPosition)混用。
7. Worst Price 参数
用户可为母单设置一个可接受的最差成交价格(买入方向为最高买入价,卖出方向为最低卖出价)。当市场价格触及或超出该阈值时,算法将自动暂停执行,避免在不利价格下继续成交。
当价格回落至阈值以内时,算法将自动恢复执行。
若因暂停导致实际执行时间超出原定 Duration,系统行为取决于 MustComplete 参数:
- MustComplete 开启(默认):执行时长将自动顺延,确保母单目标数量全部完成。
- MustComplete 关闭:到达原定结束时间后即停止执行,不再顺延。
8. 合约仓位模式如何选择?
目前平台暂不支持双向持仓模式,仅支持单向持仓。
9. 同时存在多个相同交易对的 isTargetPosition(目标仓位模式)订单最终持仓会怎样?
最终持仓结果会不符合预期。目标仓位模式是根据下单时的仓位来计算与目标仓位之间的差额来进行下单数量控制的。例如现在 DOGE 持仓数量为 0,第一单目标仓位 100 个,此时系统会下单 100 个 DOGE;当第一笔订单执行了 50 个的时候下了第二单,目标仓位为 150 个,此时系统会计算目标仓位与当前仓位之间有 100 个的差额,会再下 100 个 DOGE;当两笔订单都完成后,持仓将会是 200 个。
10. 在 QE 平台创建母单是否会有限频?
在 QE 平台创建母单没有专门限频,仅在服务器资源不足时会限流;我们会监控资源以保证高可用。一般而言,交易所侧会有限频。
11. 如何实现批量下单?
QE 接口暂不支持一次调用下多个母单,您可以通过循环调用的方式快速批量下单。
12. 下单时为什么传了 apikey 仍报错交易所 API 未找到?
请检查下单参数 apiKeyId 是否填写为「查询交易所账户 APIKEY 接口」返回的 id,而不是 api key 字符串本身。若仍有问题可随时联系我们确认。
如何使用 QE 平台交易
账户、API Key 与 IP 相关问题
Online TCA 指标说明
交易所 APIKEY 管理及策略安全性
交易系统运维