diff --git a/package.json b/package.json index 67faa63..53dfe5d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitget-api", - "version": "1.0.3", + "version": "1.0.4", "description": "Node.js connector for Bitget REST APIs and WebSockets, with TypeScript & end-to-end tests.", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/futures-client.ts b/src/futures-client.ts index 0560a4a..92444d0 100644 --- a/src/futures-client.ts +++ b/src/futures-client.ts @@ -19,6 +19,7 @@ import { FuturesSymbolRule, FuturesMarginMode, FuturesPosition, + NewFuturesPlanTrailingStopOrder, } from './types'; import { REST_CLIENT_TYPE_ENUM } from './util'; import BaseRestClient from './util/BaseRestClient'; @@ -417,6 +418,13 @@ export class FuturesClient extends BaseRestClient { return this.postPrivate('/api/mix/v1/plan/placeTPSL', params); } + /** Place Trailing Stop order */ + submitTrailingStopOrder( + params: NewFuturesPlanTrailingStopOrder + ): Promise> { + return this.postPrivate('/api/mix/v1/plan/placeTrailStop', params); + } + /** Place Position TPSL */ submitPositionTPSL( params: NewFuturesPlanPositionTPSL diff --git a/src/types/request/futures.ts b/src/types/request/futures.ts index 053dcb7..67dfc32 100644 --- a/src/types/request/futures.ts +++ b/src/types/request/futures.ts @@ -38,7 +38,9 @@ export type FuturesOrderSide = | 'open_long' | 'open_short' | 'close_long' - | 'close_short'; + | 'close_short' + | 'buy_single' + | 'sell_single'; export interface NewFuturesOrder { symbol: string; @@ -100,15 +102,27 @@ export interface ModifyFuturesPlanOrderTPSL { presetStopLossPrice?: string; } -export type FuturesPlanType = 'profit_plan' | 'loss_plan'; +export type FuturesPlanType = 'profit_plan' | 'loss_plan' | 'moving_plan'; export interface NewFuturesPlanStopOrder { symbol: string; marginCoin: string; planType: FuturesPlanType; triggerPrice: string; - holdSide?: FuturesHoldSide; + triggerType?: 'fill_price' | 'market_price'; + holdSide: FuturesHoldSide; size?: string; + rangeRate?: string; +} + +export interface NewFuturesPlanTrailingStopOrder { + symbol: string; + marginCoin: string; + triggerPrice: string; + triggerType?: 'fill_price' | 'market_price'; + size?: string; + side: FuturesOrderSide; + rangeRate?: string; } export interface NewFuturesPlanPositionTPSL { diff --git a/test/futures/private.write.test.ts b/test/futures/private.write.test.ts index 781c360..8301894 100644 --- a/test/futures/private.write.test.ts +++ b/test/futures/private.write.test.ts @@ -227,6 +227,7 @@ describe('Private Futures REST API POST Endpoints', () => { marginCoin, symbol, planType: 'profit_plan', + holdSide: 'long', triggerPrice: '100', }) ).toMatchObject({