过滤器
过滤器,即Filter,定义了一系列交易规则。共有三类,分别是针对交易对的过滤器
symbol filters,针对整个交易所的过滤器 exchange filters 和针对资产的过滤器 asset filters。
交易对过滤器
PRICE_FILTER 价格过滤器
价格过滤器用于检测order订单中price参数的合法性
minPrice定义了price/stopPrice允许的最小值;minPrice== 0 的时候则失效。maxPrice定义了price/stopPrice允许的最大值;maxPrice== 0 的时候则失效。tickSize定义了price/stopPrice的步进间隔;tickSize== 0 的时候则失效。
以上每一项均可为0,为0时代表这一项不再做限制。
订单需满足以下条件,方可通过该过滤器校验:
price>=minPriceprice<=maxPriceprice%tickSize== 0
/exchangeInfo 响应中的格式:
Code
PERCENT_PRICE 价格振幅过滤器
PERCENT_PRICE 过滤器会根据前序交易的平均成交价来定义订单价格的有效范围。
- 当该交易对存在非空的 参考价格 时,过滤器校验将使用该参考价格。
- 当该交易对不存在非空的参考价格时,过滤器校验将使用
avgPriceMins分钟前的成交量加权平均价。- 如果
avgPriceMins为 0,那么过滤器校验将使用最新成交价。
- 如果
订单需满足以下条件,方可通过该过滤器校验:
price<=average of previous trade prices*multiplierUpprice>=average of previous trade prices*multiplierDown
/exchangeInfo 响应中的格式:
Code
PERCENT_PRICE_BY_SIDE
PERCENT_PRICE_BY_SIDE 过滤器会根据前序交易的平均成交价来定义订单价格的有效范围。
- 当该交易对存在非空的 参考价格 时,过滤器校验将使用该参考价格。
- 当该交易对不存在非空的参考价格时,过滤器校验将使用
avgPriceMins分钟前的成交量加权平均价。avgPriceMins为 0,那么过滤器校验将使用最新成交价。
买方订单需满足以下条件,方可通过该过滤器校验:
price<=average of previous trade prices*bidMultiplierUpprice>=average of previous trade prices*bidMultiplierDown
卖方订单需满足以下条件,方可通过该过滤器校验:
price<=average of previous trade prices*askMultiplierUpprice>=average of previous trade prices*askMultiplierDown
/exchangeInfo 响应中的格式:
Code
LOT_SIZE 订单尺寸
"lots" 是拍卖术语,这个过滤器对订单中的 quantity 也就是数量参数进行合法性检查。包含三个部分:
minQty表示quantity/icebergQty允许的最小值.maxQty表示quantity/icebergQty允许的最大值stepSize表示quantity/icebergQty允许的步进值。
订单需满足以下条件,方可通过该过滤器校验:
quantity>=minQtyquantity<=maxQtyquantity%stepSize== 0
/exchangeInfo 响应中的格式:
Code
MIN_NOTIONAL 最小金额
MIN_NOTIONAL 过滤器定义了交易对订单所允许的最小名义价值(成交额)。
- 订单的名义价值是
价格*数量。 applyToMarket确定MIN_NOTIONAL过滤器是否也将应用于MARKET订单。- 由于
MARKET订单没有价格,因此会使用前序交易的平均成交价。- 当该交易对存在非空的 参考价格
时,过滤器校验将使用该参考价格来作为
价格。 - 当该交易对不存在非空的参考价格时,过滤器校验将使用
avgPriceMins分钟前的成交量加权平均价来作为价格。- 如果
avgPriceMins为 0,那么过滤器校验将使用最新成交价来作为价格。
- 如果
- 当该交易对存在非空的 参考价格
时,过滤器校验将使用该参考价格来作为
- 由于
订单需满足以下条件,方可通过该过滤器校验:
price*quantity>=minNotional
/exchangeInfo 响应中的格式:
Code
NOTIONAL 名义价值
名义价值过滤器(NOTIONAL)定义了订单在一个交易对上可以下单的名义价值区间。
applyMinToMarket定义了minNotional是否适用于市价单(MARKET)。applyMaxToMarket定义了maxNotional是否适用于市价单(MARKET)。- 由于
MARKET订单没有价格,因此会使用前序交易的平均成交价。- 当该交易对存在非空的 参考价格
时,过滤器校验将使用该参考价格来作为
价格。 - 当该交易对不存在非空的参考价格时,过滤器校验将使用
avgPriceMins分钟前的成交量加权平均价来作为价格。- 如果
avgPriceMins为 0,那么过滤器校验将使用最新成交价来作为价格。
- 如果
- 当该交易对存在非空的 参考价格
时,过滤器校验将使用该参考价格来作为
- 由于
订单需满足以下条件,方可通过该过滤器校验:
price*quantity<=maxNotionalprice*quantity>=minNotional
/exchangeInfo 响应中的格式:
Code
ICEBERG_PARTS 冰山订单拆分数
ICEBERG_PARTS 代表冰山订单最多可以拆分成多少个小订单。计算方法为 向上取整(qty / icebergQty).
/exchangeInfo 响应中的格式:
Code
MARKET_LOT_SIZE 市价订单尺寸
MARKET_LOT_SIZE过滤器为交易对上的MARKET订单定义了数量(即拍卖中的"手数")规则。 共有3部分:
minQty定义了允许的最小quantity。maxQty定义了允许的最大数量。stepSize定义了可以增加/减少数量的间隔。
为了通过 market lot size,quantity 必须满足以下条件:
quantity>=minQtyquantity<=maxQtyquantity%stepSize== 0
/exchangeInfo 响应中的格式:
Code
MAX_NUM_ORDERS 最多订单数
定义了某个交易对最多允许的挂单数量(不包括已关闭的订单)普通订单与条件订单均计算在内
/exchangeInfo 响应中的格式:
Code
MAX_NUM_ALGO_ORDERS 最多条件单数
MAX_NUM_ALGO_ORDERS过滤器定义允许账户在交易对上开设的"algo"订单的最大数量。"Algo"订单是STOP_LOSS,STOP_LOSS_LIMIT,TAKE_PROFIT和TAKE_PROFIT_LIMIT止盈止损单。
/exchangeInfo 响应中的格式:
Code
MAX_NUM_ICEBERG_ORDERS 最多冰山单数
MAX_NUM_ICEBERG_ORDERS过滤器定义了允许在交易对上开设账户的ICEBERG订单的最大数量。
ICEBERG订单是icebergQty大于0的任何订单。
/exchangeInfo 响应中的格式:
Code
MAX_POSITION 过滤器
这个过滤器定义账户允许的基于base asset的最大仓位。一个用户的仓位可以定义为如下资产的总和:
base asset的可用余额base asset的锁定余额- 所有处于open的买单的数量总和
如果用户的仓位大于最大的允许仓位,买单会被拒绝。
如果一个订单的数量(quantity) 可能导致持有仓位溢出, 会触发过滤器 MAX_POSITION.
/exchangeInfo 响应中的格式:
Code
TRAILING_DELTA 过滤器
此过滤器定义了参数trailingDelta的最大和最小值.
下追踪止损订单, 需要满足条件:
对于 STOP_LOSS BUY, STOP_LOSS_LIMIT_BUY, TAKE_PROFIT SELL 和 TAKE_PROFIT_LIMIT SELL 订单:
trailingDelta>=minTrailingAboveDeltatrailingDelta<=maxTrailingAboveDelta
对于 STOP_LOSS SELL, STOP_LOSS_LIMIT SELL, TAKE_PROFIT BUY, 和 TAKE_PROFIT_LIMIT BUY 订单:
-
trailingDelta>=minTrailingBelowDelta -
trailingDelta<=maxTrailingBelowDelta/exchangeInfo format:
Code
MAX_NUM_ORDER_AMENDS 过滤器
此过滤器定义了指定交易对的订单修改次数上限。
如果单笔订单的修改次数过多,您将会收到 -2038 错误代码。
/exchangeInfo format:
Code
MAX_NUM_ORDER_LISTS
此过滤器定义了账户在交易对上可持有的最大未平仓订单列表数量。请注意,OTOCO 交易计为一个订单列表。
/exchangeInfo format:
Code
交易所级别过滤器
EXCHANGE_MAX_NUM_ORDERS 最多订单数
EXCHANGE_MAX_NUM_ORDERS过滤器定义了允许在交易对上开设账户的最大订单数。请注意,此过滤器同时计算"algo"订单和常规订单。
/exchangeInfo 响应中的格式:
Code
EXCHANGE_MAX_NUM_ALGO_ORDERS 最多条件单数
EXCHANGE_MAX_NUM_ALGO_ORDERS
过滤器定义了允许在交易上开设账户的"algo"订单的最大数量。"Algo"订单是STOP_LOSS,STOP_LOSS_LIMIT,TAKE_PROFIT和TAKE_PROFIT_LIMIT订单。
/exchangeInfo 响应中的格式:
Code
EXCHANGE_MAX_NUM_ICEBERG_ORDERS 冰山订单的最大订单数
此过滤器定义了允许账号持有的最大冰山订单数量.
/exchangeInfo 响应中的格式:
Code
EXCHANGE_MAX_NUM_ORDER_LISTS
此过滤器定义了允许账号持有的最大未平仓订单列表数量。请注意,OTOCO 交易计为一个订单列表。
/exchangeInfo format:
Code
资产过滤器
MAX_ASSET
MAX_ASSET 过滤器定义了一个账户在单笔订单中可交易的资产最大数量。
- 当资产是交易对的基础资产时,该限制适用于订单的数量。
- 当资产是交易对的报价资产时,该限制适用于订单的名义价值。
- 例如,针对 USDC 的 MAX_ASSET 过滤器适用于所有以 USDC 作为基础资产或报价资产的交易对,例如:
- USDCBNB
- BNBUSDC
/myFilters format:
Code