本页面记录了API的更新日志,包括新增功能、修复的bug、以及版本更新信息。
Changelog
[0.9.0] - 2025-05-20
💥 不兼容改动
-
移除所有回调函数中的context字段
-
正式发布traderV2版本,可通过config.toml中设置
trader_version = "V2"启用(默认为V2),若需使用旧版请设置trader_version = "V1" -
v2版本命令结构扁平化,不再使用多层嵌套,例如下单命令格式:(extra字段为可选字段,用于兼容各交易所特殊字段)
{
"method": "PlaceOrder",
"account_id": 1,
"order": {
"cid": "test1234567",
"symbol": "BTC_USDT",
"order_type": "Limit",
"side": "Buy",
"pos_side": "Long",
"price": 50000.0,
"amount": 0.1,
"time_in_force": "GTC"
},
"params": {
"is_dual_side": false,
"leverage": 10,
"margin_mode": "Cross",
"market_order_mode": "Normal"
},
"extra": {
"奇葩字段": "奇葩值"
}
}
✨ 功能新增
- traderV2支持直接调用交易所API,无需使用publish命令,默认同步执行,可通过
sync=false参数设置为异步,可通过generate=True来生成命令去publish - 所有接口支持通过extra参数设置动态参数,兼容各交易所特殊字段
- 新增OrderAndFill频道订阅(通过on_order_and_fill回调接收),同时订阅订单频道和用户私有成交频道,优先推送较快的数据(一般私有成交速度更快)。私有成交数据仅包含成交数量和均价,可能缺少订单类型、方向等字段,可通过order结构体的source字段区分数据来源。该频道可与订单频道并行订阅,互不干扰
- bitget支持通过WebSocket API撤单
- 交易系统自动请求并缓存交易所instruments数据,可在config.toml中通过
instruments_refresh_sec = 300配置刷新间隔 - 当交易所Instrument变化时会触发相应回调:on_instrument_added(新增)、on_instrument_removed(删除)和on_instrument_updated(更新)
- 下单时自动处理价格和数量,包括价格乘数、数量乘数、步长、精度、最小交易量和最小名义价值处理
- 安全市价单简化配置,无需传入price_tick和price_precision,可通过OrderParams中的market_order_slippage参数自定义滑点(默认0.002)
- 支持交易所BitmartSwap、BitmartSpot、ZoomexSwap、ZoomexSpot、WhitebitSwap、WhiteSpot、DeribitSwap、DeribitSpot、DeribitFuture(交割合约)、DeribitOption(期权)
[0.8.4] - 2025-04-30
💥 不兼容改动
- 安全市价单必须传price tick和price_precision,slippage默认是0.002
{"market_order_mode":{"Safe":{"price_precision":5,"price_tick":0.00001,"slippage":0.002}}}
🐛 问题修复
- [OkxSwap] 资金费用结算去重
- [BitgetSwap] 资金费用结算去重
- [HuobiSpot] 修复余额错误, min notional使用10
- [HuobiSwap] min qty使用contrat size
- ws api正常下安全市价单
- 修复nb8_sdk 错误日志上传问题
[0.8.3] - 2025-04-27
🐛 问题修复
- [BybitSwap] rest查询资金费率增加费率周期
- [HuobiSpot] 修复自定义host报错问题
- [nb8_sdk] 缓存存储到工作目录,增加stats结构体文档说明
[0.8.2] - 2025-04-24
🐛 问题修复
- [HuobiSwap] cid生成去除0
- [BinanceSpot] 修复1000系列交易对行情数据没处理的问题
- [BitgetSwap] 修复amount tick用错字段的问题
- 修复on_funding_fee没有触发问题
- 修复python 的sys path导入问题,现在能正确将当前工作目录,和strategy.py父目录加入到sys.path中
✨ 功能新增
- [BybitSwap] 支持资金费结算的ws订阅
- [KucoinMargin] 支持高频接口
- [KucoinSpot] 支持高频接口
🔧 优化改进
- 优化示例代码,现在仅保留strategy.py,其余文件移除
[0.8.1] - 2025-04-22
💥 不兼容改动
- base_strategy.py新增on_funding_fee回调
✨ 功能新增
- 文档新增实盘强停状态变更说明 具体参考文件misc/trader_api_doc.md 5.7 账户强停功能
- 新增FundingFee、MarkPrice同步命令
🐛 问题修复
- [BitgetSwap] 修复ws position资金费为空的情况
- [BinanceSwap] 修复以下问题:
- 现货平均成交均价未考虑prefix_multiplier。
- 无法单独订阅funding_fee。
- positioin order 未按订阅symbol过滤。
[0.8.0] - 2025-04-18
✨ 功能新增
- 支持rust nb8sdk 使用方法参考文件trader_api_doc.md
- websocket支持订阅FundingFee,rest支持获取FundingFee
- 支持HuobiSpot
- rest支持根据symbol获取标记价格及获取全部交易对标记价格
- trader支持reqest方法
🔧 优化改进
- GateSwap、GateSpot默认不再使用ws api下单,如果需要使用ws api下单,请在config.toml中将exchanges.use_ws_api设置为true
- 错误处理系统重构
- 错误码分类
- 通用错误 (4001-4009)
- 基础错误 (4001)
- 请求频率限制 (4002)
- Cookie过期 (4003)
- 余额不足 (4004)
- API密钥或IP无效 (4005)
- 网络错误 (4006)
- 精度错误 (4007)
- 保证金类型无需更改 (4008)
- 重试请求 (4009)
- 订单相关错误 (4101-4103)
- FOK订单被拒绝 (4101)
- 订单未找到 (4102)
- Maker单立即成交错误 (4103)
- API相关错误 (5001-5002)
- 接口未实现 (5001)
- 网络连接错误 (5002)
- 通用错误 (4001-4009)
- 错误码分类
[0.7.18] - 2025-04-07
🔧 优化改进
- 优化nb8_sdk, 优化可用余额接口及前端展示
🐛 问题修复
- [BitgetSpot] 修复get bbo报错问题
- [KucoinSpot] 修复min_notional错误问题
- [HuobiSwap] 全部接口验证及bug修复
- 深度推送问题修复
[0.7.17] - 2025-04-01
✨ 功能新增
- 支持自定义设置交易所用不用ws api接口, 通过config.toml中的exchanges.use_ws_api字段设置
- use_ws_api: 使用websocket api去下单,默认 BinanceSpot、OkxSwap、OkxSpot、OkxMargin、GateSwap、GateSpot为true, BinanceSwap为false 其余暂不支持
- 新增nb8_sdk, 具体使用方法参考nb8_sdk/README.md 以及nb8_sdk/example.py
- 支持coinw
🔧 优化改进
- 当使用trader publish命令的时候释放gil锁,避免其他回调阻塞
🐛 问题修复
- [CoinexSwap] 余额为0时请求返回报错
- [Bybit] 运行过程中bybit报错 程序停止问题
- [Bybit] 有持仓返回positions为0
- [Huobi] 火币行情timestamp是16位,改成13位
- [Huobi] 火币订阅一档行情,推出来多档,改成订阅几档就是几档
[0.7.16] - 2025-03-21
✨ 功能新增
-
支持ApexSwap,DydxSwap,PhemexSwap,HyperLiquidSwap,HyperLiquidSpot
-
支持市场数据源处理模式选择:可通过config.toml中的data_source.market_mode字段设置,想用旧版本方式的话全部设置为"ALL"
Latest:只处理最新数据,新数据会顶掉未处理的数据,减少延迟。All:全部数据顺序处理,适用于不希望丢失数据的情况。
-
data_source.market_mode配置项:[data_source.market_mode]
mark_price = "Latest"
bbo = "Latest"
depth = "Latest"
funding = "All"
trade = "All"
🔧 优化改进
- biannce合约默认改成使用rest下单(更快)
🐛 问题修复
- 修复coinex资金费率ws和rest不一致问题
- 修复kucoin合约的乘数问题
- 修复gate ws api下单解析结果错误问题
- 修复binance合约增量深度报错问题
- 修复bybit获取balance的可用余额为0.0001问题
[0.7.15] - 2025-03-14
✨ 功能新增
- GateSwap GateSpot支持ws api下单
🔧 优化改进
- bitget、biannce兼容1M前缀的symbol的处理
🐛 问题修复
- 修复binance ws api改post only单时的问题
[0.7.14] - 2025-03-13
✨ 功能新增
- 同步命令支持BalanceByCoin 查询指定币种的余额
🔧 优化改进
- 当start、subscribe函数调用完才会去调用python其他的回调函数
- 优化bn资金费率,rest查询资金费率结算周期不再为None
🐛 问题修复
- 修复binance现货ws api下post only单报错、根据cid撤单报错问题
- 修复MexcSpot下单报错
[0.7.13] - 2025-03-07
✨ 功能新增
- 支持MexcSpot
🐛 问题修复
- 修复binance合约资金费率问题
[0.7.12] - 2025-03-07
🐛 问题修复
- 修复binance现货和合约同时配置时可能下单错误问题
🔧 优化改进
- 去除kraken posonly单的多余报错
- 改进Coinex网络错误处理和响应状态检查
[0.7.11] - 2025-03-05
✨ 功能新增
- 现异步指令走websocket api, 包含PlaceOrder、BatchPlaceOrder、AmendOrder、CancelOrder、BatchCancelOrder、BatchCancelOrderById 目前支持的交易所有BinanceSwap、BinanceSpot、OkxSwap、OkxSpot、OkxMargin
- 新增缓存(加载、更新、保存)方法 使用方法参考策略示例中的load_cache_data等方法
🔧 优化改进
- 图表优化,图表示例优化
[0.7.10] - 2025-02-25
💥 不兼容改动
- on_order_canceled 回调增加修改订单时传入的order id和symbol
- on_order_amended 回调增加修改订单时传入的order
🐛 问题修复
- 修复binance现货的maker单错误
- 修复gate ws订单解析报错问题 注意:gate现货市价买ws推送的amount和filled都是成交额(名义价值)
✨ 功能新增
- 支持dex交易所Apex
[0.7.9] - 2025-02-21
💥 不兼容改动
- 图表组结构修改,支持多个图表组
🐛 问题修复
- 修复gate swap的bbo错误
- bn现货行情增加时间戳
[0.7.8] - 2025-02-21
💥 不兼容改动
- 可通过OrderParams的market_order_mode字段设置市价单模式,Safe/Normal,
默认Safe: 安全市价单模式下碰到的市价单会转化为ioc加滑点的限价单,需要传递价格和价格步长 滑点默认0.2%可配置
Normal: 普通市价单不用传价格不做限制
{
"market_order_mode": {
"Safe": {
"price_tick": 0.001,
"slippage": 0.002
}
}
}{
"market_order_mode": "Normal"
}
🔧 优化改进
- 下单时可以不传订单id
- 优化bitget margin的get_borrow_limit接口
🐛 问题修复
- 修复bitget下单响应order_id为null的问题 当为null时置空
[0.7.7] - 2025-02-19
💥 不兼容改动
- 日志修改默认为不限频,实盘运行时通过config.toml中的log.rate_limit字段设置限频
- 修改on_fundings为on_funding
- 修改on_instruments为on_instrument
- 修改on_positions为on_position
- 将on_position_update迁移到on_position
- 修改on_balances为on_balance
- 去除on_balance
🐛 问题修复
- 修复huobi资金费率获取到的下次资金费率时间为0的问题
- kraken depth增加timestamp时间戳, checksum计算失败后重置depth缓存
- gate现货订单已成交修正减去fee
- coinex订单推送的pos side默认值改为None
✨ 功能新增
- 新增图表功能
- bitget margin增加get_order_by_id方法
- 新增交易所deepcoin、coinw、bitfinex、phmex
- dex同步命令支持根据key来接受命令响应
- Rest订阅新增Instrument
[0.7.6] - 2025-02-11
🐛 问题修复
- 安全市价单模式下碰到的部分交易所下单问题
[0.7.5] - 2025-02-11
✨ 功能新增
- bitget支持划转
- 支持在order params加leverage_order_mode来设置杠杆下单时的自动借款、还款(http://api.ymengkj.cn/docs/guide/latest/api-commands/#placeorder)
- 支持日志限频(令牌桶算法)
- 支持通过OrderParams的market_order_mode字段设置市价单模式,Safe/Normal, 默认Safe: 市价单必须传价格如果名义价值超过20000u则修正为20000u,Normal: 普通市价单不用传价格不做限制
🐛 问题修复
- bitget杠杆获取balance
- 修复binance对于1000系列交易对适配问题
🔧 优化改进
- 优化http请求网络延迟
- 优化客户端id生成(create_cid方法)速度到300ns/次
[0.7.4] - 2025-01-27
💥 不兼容改动
- 将on funding和on instrument分别合并到on fundings和on instruments
[0.7.3] - 2025-01-24
🐛 问题修复
- 修复balance的余额不为0时查出来可能为0.0001的问题
[0.7.2] - 2025-01-23
✨ 功能新增
- 支持bitget现货杠杆
[0.7.1] - 2025-01-20
🐛 问题修复
- 修复bybit下单报错、下单返回的order_id错误问题
🔧 优化改进
- 支持dex建立两条socket,一条用于读取,一条用于发送命令
- 优化trader.log方法的web参数为true,默认发送给web
✨ 功能新增
- 支持实盘列表页数据发送
[0.7.0] - 2025-01-17
🐛 问题修复
- 修复同步命令可能碰到的网络错误问题
[0.6.10] - 2025-01-15
💥 不兼容改动
- 去除config.toml中set_cpu配置
🐛 问题修复
- 修复设置线程优先级时由于权限问题导致程序panic问题,现在只会打印警告信息
🔧 优化改进
- 优化发给web的button结构
[0.6.7] - 2025-01-14
🐛 问题修复
- 修复bybit,okx 交易所已知问题
✨ 功能新增
- 自动检测dex sdk进程状态,当进程挂掉/心跳超时 自动重启dex sdk并发送订阅消息
- 优化读取python策略文件和配置文件错误信息
[0.6.6] - 2025-01-10
💥 不兼容改动
- 移除python的sys.path 增加策略文件(strategy.py)所在目录, 改为用户在strategy.py中自定义添加sys.path
🐛 问题修复
- 修复策略文件(strategy.py)中导入其他模块失败问题导致运行时报错
[0.6.5] - 2025-01-09
✨ 新特性
- 支持策略配置文件热更新,当配置文件更新后,会自动读取配置文件内容并调用方法on_config_update
- python的sys.path 增加策略文件所在目录
- base_strategy.py 无需放在 strategy.py 同级目录下,只需在strategy.py中根据路径导入即可
🐛 问题修复
- 修复okx margin、bybit一些已知问题
- 修复dex的同命令超时事件未配置成功问题
[0.6.4] - 2025-01-08
💥 不兼容改动
- BaseStrategy 独立为单独的 python 模块文件(base_strategy.py), 和strategy.py同级
- 修改配置文件加载方式,直接再rust中加载策略配置文件 然后传给python策略
✨ 新特性
- 修改 Python 模块加载机制,支持托管者通过ws传递策略配置
- 无需再安装pip包,trader_py已经内部集成
- python策略新增on_stop回调,策略停止时会调用
- trader_py 新增 batch_publish 方法,支持批量发布命令
🐛 问题修复
- 修复 kraken 订单更新中的filled字段不正确问题
- 优化 kraken nonce生成为ns时间戳
- 修复bitget ws老是重连问题
🔧 优化改进
- 重构代码结构,提升可维护性
- 优化错误处理机制
- 改进日志输出格式
- 完善单元测试覆盖率
📝 文档更新
- 添加代码注释和文档说明
- 更新配置文件示例
- 补充 Python 模块开发指南
🔨 依赖更新
- 更新 trader 依赖到最新版本
- 更新 quant_common 依赖到最新版本
📦 其他改动
- 优化 CI/CD 流程
- 改进错误提示信息
- 代码格式化和清理
🚀 性能优化
- 优化 Python 模块加载性能
- 改进配置文件解析效率
如何升级
- 删除原来strategy.py中的BaseStrategy类
- 将base_strategy.py复制到strategy.py同级目录下
- 确保配置文件使用正确的 TOML 格式
- 删除之前安装的trader_py pip包
- 替换最新open_quant