From 0b756f6f024c643c10bd1049428ddbdb8c08175e Mon Sep 17 00:00:00 2001 From: DJB31st Date: Thu, 20 Mar 2025 11:39:00 +0000 Subject: [PATCH] Update PositionCloseRequest and position demo Out of the box this doesn't seem to work correctly, it'll return saying its closed but never close, expiry and level are optional --- src/dealing/DealingAPI.ts | 6 +++--- src/demo/position.ts | 8 +++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/dealing/DealingAPI.ts b/src/dealing/DealingAPI.ts index 247b94e6..93b6d02f 100644 --- a/src/dealing/DealingAPI.ts +++ b/src/dealing/DealingAPI.ts @@ -94,11 +94,11 @@ export interface PositionCreateRequest { } export interface PositionCloseRequest { - dealId?: string; + dealId: string; direction: Direction; epic?: string; - expiry: string; - level: number; + expiry?: string; + level?: number; orderType: PositionOrderType; quoteId?: string; size: number; diff --git a/src/demo/position.ts b/src/demo/position.ts index 32c17658..1dfdf7eb 100644 --- a/src/demo/position.ts +++ b/src/demo/position.ts @@ -45,11 +45,9 @@ async function main(): Promise { const closePositionRequest: PositionCloseRequest = { dealId: confirmSession.dealId, - direction: Direction.SELL, - expiry: createPositionRequest.expiry, - level: 860.4, - orderType: createPositionRequest.orderType, - size: createPositionRequest.size, + direction: Direction.SELL, //ensure opposite direction to close the position + orderType: PositionOrderType.MARKET, //seemingly have to use market otherwise it'll wait for the level + size: createPositionRequest.size, //size of existing position / partial size if you want to partially close }; const closePositionSession = await client.rest.dealing.closePosition(closePositionRequest);