openPosition_usage.md 6.0 KB

openPosition 方法使用指南

方法签名

async openPosition(
    symbol: string,
    side: DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum,
    quantity: number,
    price: number,
    options?: {
        // 所有可选参数...
    }
)

必需参数

symbol

  • 类型: string
  • 说明: 交易对符号
  • 示例: 'BTCUSDT', 'ETHUSDT'

side

  • 类型: DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum
  • 说明: 买卖方向
  • 可选值:
    • BUY - 买入
    • SELL - 卖出

quantity

  • 类型: number
  • 说明: 订单数量
  • 示例: 0.001, 1.5

price

  • 类型: number
  • 说明: 订单价格
  • 示例: 50000, 3000.5

可选参数

type

  • 类型: string
  • 默认值: 'LIMIT'
  • 说明: 订单类型
  • 可选值:
    • LIMIT - 限价单
    • MARKET - 市价单
    • STOP - 止损单
    • STOP_MARKET - 止损市价单
    • TAKE_PROFIT - 止盈单
    • TAKE_PROFIT_MARKET - 止盈市价单
    • TRAILING_STOP_MARKET - 追踪止损单

timeInForce

  • 类型: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum
  • 默认值: GTC
  • 说明: 订单有效期
  • 可选值:
    • GTC - Good Till Cancel (一直有效直到取消)
    • 订单会一直有效,直到被手动取消或完全成交
    • 最常见的订单类型,适合长期挂单
    • IOC - Immediate or Cancel (立即成交或取消)
    • 订单必须立即成交,未成交的部分会被取消
    • 适合希望立即成交的场景
    • FOK - Fill or Kill (全部成交或取消)
    • 订单必须全部成交,否则整个订单会被取消
    • 适合不希望部分成交的大额订单
    • GTX - Good Till Crossing (有效直到穿越)
    • 订单在价格穿越指定价格时生效
    • 适合条件订单,如止损单
    • GTD - Good Till Date (有效直到指定日期)
    • 订单在指定日期前有效,过期后自动取消
    • 适合有时间限制的订单

positionSide

  • 类型: DerivativesTradingUsdsFuturesRestAPI.NewOrderPositionSideEnum
  • 说明: 仓位方向
  • 可选值:
    • BOTH - 双向模式(默认)
    • LONG - 多头
    • SHORT - 空头

reduceOnly

  • 类型: string
  • 默认值: 'false'
  • 说明: 是否仅减仓
  • 可选值:
    • 'true' - 仅减仓
    • 'false' - 允许开仓和减仓

closePosition

  • 类型: string
  • 说明: 是否平仓
  • 可选值:
    • 'true' - 平仓
    • 'false' - 不开仓也不平仓

activationPrice

  • 类型: number
  • 说明: 激活价格(用于追踪止损单等)
  • 示例: 50000

callbackRate

  • 类型: number
  • 说明: 回调价格(用于追踪止损单等)
  • 示例: 0.1 (10%)

workingType

  • 类型: DerivativesTradingUsdsFuturesRestAPI.NewOrderWorkingTypeEnum
  • 说明: 工作类型(用于追踪止损单等)
  • 可选值:
    • MARK_PRICE - 标记价格
    • CONTRACT_PRICE - 合约价格

priceProtect

  • 类型: string
  • 说明: 价格保护
  • 可选值:
    • 'TRUE' - 启用价格保护
    • 'FALSE' - 禁用价格保护

newOrderRespType

  • 类型: DerivativesTradingUsdsFuturesRestAPI.NewOrderNewOrderRespTypeEnum
  • 说明: 订单响应类型
  • 可选值:
    • ACK - 仅确认
    • RESULT - 返回结果
    • FULL - 返回完整信息

newClientOrderId

  • 类型: string
  • 说明: 客户端订单ID(可选)
  • 示例: 'my_order_123'

stopPrice

  • 类型: number
  • 说明: 止损价格
  • 示例: 48000

icebergQty

  • 类型: number
  • 说明: 冰山订单显示数量
  • 示例: 0.1

orderTag

  • 类型: string
  • 说明: 订单标签
  • 示例: 'test_order'

使用示例

基础限价单

const result = await futureConnector.openPosition(
  'BTCUSDT',
  DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY,
  0.001,
  50000,
)

市价单

const result = await futureConnector.openPosition(
  'ETHUSDT',
  DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.SELL,
  0.01,
  0, // 市价单价格为0
  {
    type: 'MARKET',
  },
)

止损单

const result = await futureConnector.openPosition(
  'BTCUSDT',
  DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.SELL,
  0.001,
  48000,
  {
    type: 'STOP_MARKET',
    stopPrice: 48000,
    reduceOnly: 'true',
  },
)

追踪止损单

const result = await futureConnector.openPosition(
  'BTCUSDT',
  DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.SELL,
  0.001,
  0,
  {
    type: 'TRAILING_STOP_MARKET',
    activationPrice: 50000,
    callbackRate: 0.1,
    workingType: DerivativesTradingUsdsFuturesRestAPI.NewOrderWorkingTypeEnum.MARK_PRICE,
  },
)

带完整参数的单子

const result = await futureConnector.openPosition(
  'BTCUSDT',
  DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY,
  0.001,
  50000,
  {
    type: 'LIMIT',
    timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.GTC,
    positionSide: DerivativesTradingUsdsFuturesRestAPI.NewOrderPositionSideEnum.BOTH,
    reduceOnly: 'false',
    newOrderRespType: DerivativesTradingUsdsFuturesRestAPI.NewOrderNewOrderRespTypeEnum.RESULT,
    newClientOrderId: `order_${Date.now()}`,
    orderTag: 'my_order',
  },
)

注意事项

  1. API密钥: 确保已正确设置 API_KEY 和 API_SECRET
  2. 余额检查: 下单前请确保账户有足够余额
  3. 价格精度: 注意交易对的价格精度要求
  4. 数量精度: 注意交易对的数量精度要求
  5. 风险控制: 建议在测试环境中先测试
  6. 错误处理: 方法会返回 null 如果下单失败

错误处理

方法内部已包含错误处理,如果下单失败会:

  1. 在控制台输出错误信息
  2. 返回 null
  3. 不会抛出异常

建议在使用时添加额外的错误处理逻辑。