Skip to content

MyOrder

OPChips edited this page Dec 27, 2018 · 8 revisions

定义

MyOrder 表示由用户创建的订单。

数据类型

Object

字段

MyOrder 包含以下字段:

sp

交易所名称

front

交易对 front

back

交易对 back

price

价格

amount

数量

pid

本地订单号

由于所有的订单操作都是异步进行,大部分订单操作,如订单查询等,都是使用 pid 作为订单号标识。

例如,当订单创建后会立即返回本地订单数据,但此时订单并未到达交易所,但我们仍可以让算法继续运行,使用本地订单数据作为后续分析的依据。此时 pid 字段用于关联本地订单和交易所订单。

订单 tick 的说明

绝大多数情况下,系统都需要异步创建订单,并且在下一个 tick 进行状态检查、计算、处理等操作。这里 tick 不只是字面上的时钟周期,在部分情况下,用户可以指定 tick 的触发规则来检测某些变化,比如订单状态变化,深度更新等等。

目前 tick 主要是固定的时钟周期。

id

远程订单号

intentAt

本地创建时间(本地创建成功,未被服务器确认,订单状态为 pending

createAt

服务器创建时间(服务器确认创建成功,订单状态为 book

updatedAt

订单更新服务器时间

serverCreatedAt

订单由远程交易所创建时间(非服务器时间)

serverUpdatedAt

订单由远程交易所更新时间(非服务器时间)

requestCanceling

订单将要执行系统API取消订单操作,若取消失败,该字段恢复为false

postOnly

可选字段

Boolean类型

postOnly: true 表示只挂单(maker),否则取消该订单。

仅部分交易所支持。不支持的交易所 postOnly设置不会生效。

market

可选字段

Boolean类型

market: true 表示市价单(market order)。默认为限价单(limit order)

state

订单状态

订单状态为以下状态之一:

  • pending 本地创建成功,未被服务器确认
  • book 服务器确认创建成功
  • closed 订单结束,并且至少部分成交
  • error 订单出现错误,并且完全没有成交迹象
  • partial 订单部分成交
  • canceled 订单因为某种明确的原因被取消。取消原因符合用户期待(比如:postOnly 取消、用户主动取消操作)

situation

Enum类型,表示当前订单在cancelerror状态下的文字补充说明。

situation包含以下枚举值:

  • Cancel = "Cancel order initiative" 订单由系统调用API主动取消
  • CancelPassive = "Cancel order passive" 订单由远程交易所被动取消
  • CancelPostOnly = "Cancel order by postOnly" 订单由于是postOnly类型被自动取消
  • ErrorLimitExceed = "Limit exceed error" 超出该交易所API调用限制错误
  • ErrorNotEnoughBalance = "Balance not enough error" 由于该交易所余额不足导致创建订单失败
  • ErrorBanned = "Banned error" 由于违规操作或操作频繁导致IP或账户被禁,如bitmex交易所
  • ErrorForbidden = "Forbidden error" 由于请求过于频繁导致IP被屏蔽,如okex交易所
  • ErrorNetword = "Network error" 网络错误,如socket hang up
  • ErrorInvalidParameter = "Invalid parameter error" 参数错误,由系统判断
  • ErrorInvalidVolume = "Invalid order price or amount or volume" 下单价格、数量、金额错误,由交易所给出
  • ErrorInvalidSignature = "Invalid signature error" API签名错误,可能由用户API密钥或系统签名代码错误导致
  • ErrorUnknown = "Unknown error" 未知错误
  • ErrorNotSupport = "Action not supported" 不支持该操作

reason

当前订单在cancelerror状态下的原因,以交易所为准,否则由系统给出

fee

订单手续费