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);