交易
常见下单失败错误及排查方法
如果您遇到了下单失败方面的问题,请首先参考下文常见错误列表排查。若以下回答不能解决您的问题,请联系我们排查故障
为了更快为您定位问题,建议您准备好以下信息
- 用户id
- order_id(若有),可通过get_orders()查询
- 完整错误信息及报错的代码(若在QQ群等公众平台反馈问题,请务必注意在发布前屏蔽您的隐私信息)
- 下单时段
- 账户类别(环球、综合、模拟)
- 市场及标的
- 订单类型(市价、限价等)
下单失败排查方法
若程序抛出异常,请对照下文常见错误消息检查问题,若不能解决问题,请联系我们。若程序无报错,请根据以下方法检查被拒单的原因:
订单状态是异步更新的,因此,如果下单失败,请使用get_order再次查询订单,订单内会标记失败原因。可以根据以下示例,在create_order, place_order, get_order 三个环节之后分别查看Order对象,比较其差异。
1. create order 创建订单环节
没有全局id,只有账户相关的order_id,status 为 NEW
Order({'account': 'U523', 'id': None, 'order_id': 297, 'parent_id': None, 'order_time': None, 'reason': None, 'trade_time': None, 'action': 'BUY', 'quantity': 100, 'filled': 0, 'avg_fill_price': 0, 'commission': None, 'realized_pnl': None, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': None, 'outside_rth': None, 'contract': ES/None/USD, 'status': 'NEW', 'remaining': 100})
2. place order 发送订单
生成全局id,status 仍为 NEW。palce order 之后的 Order 对象中只增加了 id。如果需要获取最新的订单状态,需要使用 get_order 进行查询。
Order({'account': 'U523', 'id': 154758864761483264, 'order_id': 297, 'parent_id': None, 'order_time': None, 'reason': None, 'trade_time': None, 'action': 'BUY', 'quantity': 100, 'filled': 0, 'avg_fill_price': 0, 'commission': None, 'realized_pnl': None, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': None, 'outside_rth': None, 'contract': ES/None/USD, 'status': 'NEW', 'remaining': 100})
3. get order 获取订单状态
status 变更为 REJECTED,且reason中增加了订单被拒绝的原因
Order({'account': 'U523', 'id': 154758864761483264, 'order_id': 297, 'parent_id': 0, 'order_time': 1550115294556, 'reason': '201:Order rejected - Reason: YOUR ORDER IS NOT ACCEPTED. MINIMUM OF 2000 USD (OR EQUIVALENT IN OTHER CURRENCIES) REQUIRED IN ORDER TO PURCHASE ON MARGIN, SELL SHORT, TRADE CURRENCY OR FUTURE', 'trade_time': 1550115294694, 'action': 'BUY', 'quantity': 100, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': ES, 'status': 'REJECTED', 'remaining': 100})
以下为常见错误类型:
1.错误提示:standard account response error(bad_request:Orders cannot be place at this moment)
错误原因1
无交易权限
解决方法
如果是新注册的账号,请先确认当前账号有没有完成手机、人脸、银行卡验证,若未验证,请先在手机端APP上完成人脸识别和国内银行卡验证
错误原因2
当前时段不可下单
解决方法
遇到此错误时,请首先检查您下单的时间,并与对应市场交易时间对照。注意:市场交易时间可能受到交易所所在地区公共节假日的影响,请结合交易所官网公告进行判断。
若您使用的是模拟账户:
模拟账户目前不支持部分市场及品类的盘前盘后及预挂单交易。请暂时修改程序尝试在正常交易时段进行下单,同时可以向我们反馈问题
若您使用的是综合账户:
综合账户不支持部分订单类型的盘前、盘后交易及预挂单交易。关于支持的订单类型,请见支持的订单类型列表
2.错误提示:standard account response error(BAD_REQUEST:You cannot place market or stop order during pre-market and after-hours trading)
错误原因
盘前盘后交易时不可下市价单和止损单
解决方法
检查下单时间,请注意对应的时区,并根据交易时间更改订单类型。关于支持的订单类型及交易时段,请见支持的订单类型列表
3.错误提示:The order quantity you entered exceeds your currently available position
错误原因
下卖单数量超过您当前可用仓位
解决方法
若需要从做多调整为做空,请先调用接口检查仓位并下单平仓,在平仓后再下卖单进行做空
4.错误提示:standard account response error(bad_request:We don’t support trading of this stock now(Error Code 4))
错误原因
传入了不可交易的股票代码
解决方法
可以使用手机APP确认标的的交易状态,或通过行情接口检查股票交易状态后再进行下单操作
如何判断订单是部分成交状态?
如何判断综合和模拟账号的部分成交状态? 当订单状态不是FILLED(有可能是HELD,CANCELLED,EXPIRED,REJECTED其中一种)时,都有可能是部分成交的状态,可以通过订单成交数量是否大于0来判断
如何判断环球账号部分成交状态? 订单状态是 FILLED,且订单成交数量大于0
支持交易的订单类型
美国
股票, ETFs
订单类型 | 时效 | 盘中 | 盘前盘后 | 预挂单 |
---|---|---|---|---|
限价单 | DAY/GTC | ✓ | ✓ | ✓ |
市价单 | DAY/GTC | ✓ | × | × |
止损限价单 | DAY/GTC | ✓ | ✓ | ✓ |
止损单 | DAY/GTC | ✓ | × | ✓ |
条件订单 | DAY/GTC | ✓ | × | × |
附加订单 | DAY/GTC | ✓ | × | × |
括号订单 | DAY/GTC | ✓ | ✓ | ✓ |
跟踪止损订单 | DAY/GTC | ✓ | × | × |
TWAP/VWAP订单 | 根据订单类型 | ✓ | × | × |
期权
订单类型 | 时效 | 盘中 | 预挂单 |
---|---|---|---|
限价单 | DAY/GTC | ✓ | ✓ |
市价单 | DAY | ✓ | × |
止损限价单 | DAY/GTC | ✓ | ✓ |
括号订单 | DAY/GTC | ✓ | ✓ |
附加订单 | 根据订单类型 | ✓ | × |
括号订单 | 根据订单类型 | ✓ | × |
期货
订单类型 | 时效 | 盘中 | 预挂单 |
---|---|---|---|
限价单 | DAY/GTC | ✓ | ✓ |
市价单 | DAY/GTC | ✓ | × |
止损限价单 | DAY/GTC | ✓ | ✓ |
止损单 | DAY/GTC | ✓ | ✓ |
条件订单 | DAY/GTC | ✓ | × |
附加订单 | DAY/GTC | ✓ | × |
括号订单 | DAY/GTC | ✓ | × |
香港
收盘后有安全时间,安全时间内不允许预挂单
股票,ETFs
订单类型 | 时效 | 盘中 | 预挂单 |
---|---|---|---|
限价单 | DAY/GTC | ✓ | ✓ |
市价单 | DAY/GTC | ✓ | × |
止损限价单 | DAY/GTC | ✓ | ✓ |
止损单 | DAY/GTC | ✓ | ✓ |
条件订单 | DAY/GTC | ✓ | × |
附加订单 | DAY/GTC | ✓ | ✓ |
括号订单 | DAY/GTC | ✓ | ✓ |
盘前竞价单 | DAY/GTC | ✓ | × |
追踪止损单 | 根据订单类型 | ✓ | × |
TWAP/VWAP订单 | 根据订单类型 | ✓ | × |
期权
订单类型 | 时效 | 盘中 | 预挂单 |
---|---|---|---|
限价单 | DAY/GTC | ✓ | ✓ |
市价单 | DAY | ✓ | × |
止损限价单 | DAY/GTC | ✓ | ✓ |
止损单 | DAY/GTC | ✓ | ✓ |
窝轮、牛熊证
订单类型 | 时效 | 盘中 | 预挂单 |
---|---|---|---|
限价单 | DAY/GTC | ✓ | ✓ |
止损限价单 | DAY/GTC | ✓ | × |
条件订单 | DAY/GTC | ✓ | × |
附加订单 | 根据订单类型 | ✓ | × |
括号订单 | 根据订单类型 | ✓ | × |
新加坡
收盘后有安全时间,安全时间内不允许预挂单
股票,ETFs
订单类型 | 时效 | 盘中 |
---|---|---|
限价单 | DAY/GTC | ✓ |
市价单 | DAY/GTC | ✓ |
止损限价单 | DAY/GTC | ✓ |
止损单 | DAY/GTC | ✓ |
条件订单 | DAY/GTC | ✓ |
附加订单 | DAY/GTC | ✓ |
括号订单 | DAY/GTC | ✓ |
追踪止损订单 | DAY/GTC | ✓ |
澳大利亚
收盘后有安全时间,安全时间内不允许预挂单
股票,ETFs
订单类型 | 时效 | 盘中 |
---|---|---|
限价单 | DAY/GTC | ✓ |
市价单 | DAY/GTC | ✓ |
止损限价单 | DAY/GTC | ✓ |
止损单 | DAY/GTC | ✓ |
条件订单 | DAY/GTC | ✓ |
附加订单 | DAY/GTC | ✓ |
括号订单 | DAY/GTC | ✓ |
追踪止损订单 | DAY/GTC | ✓ |
交易时间
A股
只有当沪深港三个交易市场都开市的情况下,才能进行沪股通、深股通的交易。 沪股通、深股通的交易时间为:沪深港3个市场都开市的交易日
上午9:30-11:30;下午13:00-15:00
美股
美东时间:
盘前:04:00-9:30;盘中:09:30-16:00;盘后:16:00-20:00。
北京时间:
夏令时:盘前:16:00-21:30;盘中:21:30-04:00;盘后:04:00-08:00
冬令时:盘前:17:00-22:30;盘中:22:30-05:00;盘后:05:00-09:00
港股
开市前时段
时段 | 交易规则 |
---|---|
输入买卖盘时段9:00-9:15 | 可以提交、修改、取消竞价市价单及竞价限价单 |
不可取消时段9:15-9:20 | 只可以提交竞价市价单和竞价限价单,不可进行撤单、改单 |
随机对盘时段9:20-9:22(对盘会按最终参考平衡价格随机于 9:20-9:22 开始) | 进行竞价时段的撮合对盘 |
暂停时段,随机对盘结束-9:30 | 竞价盘: 未完成的买卖盘会被系统取消;竞价限价盘:未完成的买卖盘若输入价格范围不偏离按盘价九倍或以上,将转为限价盘并自动转至持续交易时段 |
持续交易时段
时段 | 时间 |
---|---|
早市 | 9:30-12:00 |
中午休市 | 12:00-13:00 |
午市 | 13:00-16:00 |
注意:中午休市时段不允许进行改单,12:30-13:00允许进行撤单。
收市竞价交易时段
时段 | 交易规则 |
---|---|
收市竞价时段 16:00-16:01 | 计算及公布参考价;不可提交订单 |
输入买卖盘16:01-16:06 | 可以提交、修改、取消竞价市价单及竞价限价单,竞价限价单价格限制不得超出参考价的±5% |
不可取消 16:06-16:08 | 可以提交竞价市价单及竞价限价单,不可取消及更改;竞价限价单输入价格必须在最低沽盘价与最高买盘价之间 |
随机收市 16:08-16:10 | 随机收市时段,仍可提交竞价市价单及竞价限价单,不可取消及更改;竞价限价单输入价格必须在最低沽盘价与最高买盘价之间 |
新加坡
时段 | 全天交易 | 半天交易 |
---|---|---|
开市时间 | ||
开市前 | 8:30 - 8:58/ 8:59* | 8:30 - 8:58 /8:59* |
不可撤销 | 8:58 / 8:59 - 9:00 | 8:58 / 8:59 - 9:00 |
交易 | 9:00 - 12:00 | 9:00 - 12:00 |
午休 | ||
开市前 | 12:00 - 12:58 / 12:59* | |
不可撤销 | 12:58 / 12:59 - 13:00 | |
交易 | 13:00 - 17:00 | |
休市时间 | ||
休市前 | 17:00 - 17:04 / 17:05* | 12:00 - 12:04 / 12:05* |
不可撤销 | 17:04/ 17:05* - 17:06 | 12:04 / 12:05* - 12:06 |
休市前交易 | 17:06 - 17:16 | 12:06 - 12:16 |
休市 | 17:16 | 12:16 |
澳大利亚
澳洲市场交易时间为周一至周五,时间如下: 澳大利亚东部标准时间 10am - 4pm
期货交易时间
按照交易所的规定,不同期货品种交易时间不同,详情请在老虎交易软件中查看。具体以交易所公告为准。
美期货
芝加哥商品交易所
商品类型 | 交易时间 |
---|---|
股指期货 | 周一至周五,9:30 - 次日4:00(闭市休息:16:15 - 16:30) |
农产品期货 | 周一至周五,9:30 - 次日2:00(闭市休息:13:15 - 14:00) |
能源期货 | 周一至周五,9:00 - 次日2:30(闭市休息:13:15 - 14:00) |
金属期货 | 周一至周五,8:00 - 次日1:00(闭市休息:13:15 - 14:00) |
香港期货
商品类型 | 交易时间 |
---|---|
香港期货 | 周一至周五,9:00 - 16:30 |
日本期货
商品类型 | 交易时间 |
---|---|
日本期货 | 周一至周五,8:45 - 15:30 |
新加坡期货
商品类型 | 交易时间 |
---|---|
新加坡期货 | 周一至周五,9:00 - 17:15 |
请注意,以上交易时间仅供参考,具体的交易时间可能会根据季节变化、节假日等因素进行调整。建议您在进行交易前,查阅官方或相关交易所的最新公告以获取准确的交易时间信息