# Time In Force 参数详解 ## 概述 Time In Force (TIF) 是订单有效期参数,用于指定订单的有效期限。不同的 TIF 设置会影响订单的执行方式和生命周期。 ## 参数值详解 ### 1. GTC - Good Till Cancel **中文**: 一直有效直到取消 #### 特点 - 订单会一直有效,直到被手动取消或完全成交 - 最常见的订单类型 - 适合长期挂单策略 #### 使用场景 ```typescript // 限价单 - 希望以特定价格买入 const limitOrder = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY, 0.001, 50000, { type: 'LIMIT', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.GTC, }, ) // 限价单 - 希望以特定价格卖出 const sellOrder = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.SELL, 0.001, 52000, { type: 'LIMIT', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.GTC, }, ) ``` #### 适用策略 - 网格交易 - 长期投资 - 价格预测策略 --- ### 2. IOC - Immediate or Cancel **中文**: 立即成交或取消 #### 特点 - 订单必须立即成交 - 未成交的部分会被取消 - 适合需要立即执行的订单 #### 使用场景 ```typescript // 市价单 - 立即买入 const marketBuy = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY, 0.001, 0, // 市价单价格为0 { type: 'MARKET', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.IOC, }, ) // 限价单 - 立即成交或取消 const immediateOrder = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY, 0.001, 50000, { type: 'LIMIT', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.IOC, }, ) ``` #### 适用策略 - 紧急买入/卖出 - 流动性管理 - 快速执行策略 --- ### 3. FOK - Fill or Kill **中文**: 全部成交或取消 #### 特点 - 订单必须全部成交 - 如果无法全部成交,整个订单会被取消 - 适合大额订单 #### 使用场景 ```typescript // 大额订单 - 要求全部成交 const largeOrder = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY, 1.0, // 大额数量 50000, { type: 'LIMIT', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.FOK, }, ) // 精确数量订单 const preciseOrder = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.SELL, 0.5, 52000, { type: 'LIMIT', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.FOK, }, ) ``` #### 适用策略 - 大额交易 - 精确数量要求 - 避免部分成交 --- ### 4. GTX - Good Till Crossing **中文**: 有效直到穿越 #### 特点 - 订单在价格穿越指定价格时生效 - 适合条件订单 - 常用于止损单 #### 使用场景 ```typescript // 止损单 const stopLoss = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.SELL, 0.001, 48000, { type: 'STOP_MARKET', stopPrice: 48000, timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.GTX, }, ) // 条件限价单 const conditionalOrder = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY, 0.001, 51000, { type: 'LIMIT', stopPrice: 50000, // 当价格达到50000时激活 timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.GTX, }, ) ``` #### 适用策略 - 止损策略 - 条件订单 - 价格触发策略 --- ### 5. GTD - Good Till Date **中文**: 有效直到指定日期 #### 特点 - 订单在指定日期前有效 - 过期后自动取消 - 适合有时间限制的订单 #### 使用场景 ```typescript // 限时订单 const timeLimitOrder = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY, 0.001, 50000, { type: 'LIMIT', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.GTD, // 注意:GTD 需要额外的日期参数 }, ) ``` #### 适用策略 - 短期交易 - 时间限制策略 - 临时订单 ## 选择指南 ### 何时使用 GTC - 长期投资策略 - 网格交易 - 价格预测策略 - 不急于成交的订单 ### 何时使用 IOC - 需要立即执行 - 流动性管理 - 紧急买入/卖出 - 接受部分成交 ### 何时使用 FOK - 大额订单 - 精确数量要求 - 避免部分成交 - 对成交完整性有严格要求 ### 何时使用 GTX - 止损策略 - 条件订单 - 价格触发策略 - 需要价格条件激活的订单 ### 何时使用 GTD - 短期交易 - 有时间限制的订单 - 临时策略 - 避免长期挂单 ## 实际应用示例 ### 策略1: 网格交易 ```typescript // 网格交易使用 GTC const gridOrders = [] for (let i = 0; i < 5; i++) { const price = 50000 + i * 1000 const order = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY, 0.001, price, { type: 'LIMIT', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.GTC, }, ) gridOrders.push(order) } ``` ### 策略2: 紧急平仓 ```typescript // 紧急平仓使用 IOC const emergencySell = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.SELL, 0.001, 0, { type: 'MARKET', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.IOC, }, ) ``` ### 策略3: 大额交易 ```typescript // 大额交易使用 FOK const largeTrade = await futureConnector.openPosition( 'BTCUSDT', DerivativesTradingUsdsFuturesRestAPI.NewOrderSideEnum.BUY, 10.0, 50000, { type: 'LIMIT', timeInForce: DerivativesTradingUsdsFuturesRestAPI.NewOrderTimeInForceEnum.FOK, }, ) ``` ## 注意事项 1. **默认值**: 如果不指定 timeInForce,默认为 GTC 2. **订单类型兼容性**: 某些订单类型可能不支持特定的 timeInForce 设置 3. **市场影响**: IOC 和 FOK 可能对市场产生较大影响 4. **费用考虑**: 不同 timeInForce 设置可能有不同的手续费 5. **风险控制**: 选择合适的 timeInForce 是风险控制的重要部分 ## 总结 选择合适的 Time In Force 参数对于交易策略的成功至关重要。建议根据具体的交易需求和市场条件来选择最合适的设置。