Track and manage positions by instrument. Positions aggregate all open trades for an instrument.
List all positions (including zero units).
list(accountID: string, responseHandler: (response: Response) => void): void;Response: { positions: Position[], lastTransactionID: string }
List only open positions (non-zero units).
listOpen(accountID: string, responseHandler: (response: Response) => void): void;Response: { positions: Position[], lastTransactionID: string }
Get position for specific instrument.
get(accountID: string, instrument: string, responseHandler: (response: Response) => void): void;Response: { position: Position, lastTransactionID: string }
Close position (long, short, or both).
close(
accountID: string,
instrument: string,
bodyParams: {
longUnits?: string; // "ALL" or specific amount
longClientExtensions?: ClientExtensions;
shortUnits?: string; // "ALL" or specific amount
shortClientExtensions?: ClientExtensions;
},
responseHandler: (response: Response) => void
): void;Response: { longOrderCreateTransaction?: Transaction, longOrderFillTransaction?: Transaction, shortOrderCreateTransaction?: Transaction, shortOrderFillTransaction?: Transaction, lastTransactionID: string }
Example:
// Close entire long position
ctx.position.close(accountID, 'EUR_USD', { longUnits: 'ALL' }, callback);
// Close both sides
ctx.position.close(accountID, 'EUR_USD', {
longUnits: 'ALL',
shortUnits: 'ALL'
}, callback);Complete position for an instrument.
class Position extends Definition {
instrument: string;
pl: string;
unrealizedPL: string;
marginUsed: string;
resettablePL: string;
financing: string;
commission: string;
guaranteedExecutionFees: string;
long?: PositionSide;
short?: PositionSide;
summary(): string;
name(): string;
}One side (long or short) of a position.
class PositionSide extends Definition {
units: string;
averagePrice: string;
tradeIDs: string[];
pl: string;
unrealizedPL: string;
resettablePL: string;
financing: string;
guaranteedExecutionFees: string;
summary(): string;
}Real-time calculated position metrics.
class CalculatedPositionState extends Definition {
instrument: string;
netUnrealizedPL: string;
longUnrealizedPL: string;
shortUnrealizedPL: string;
marginUsed: string;
}ctx.position.close(accountID, 'EUR_USD', { longUnits: 'ALL' }, (response) => {
if (response.isSuccess()) {
console.log('Position closed');
} else if (response.statusCode === '400') {
console.error('Bad request:', response.body.errorMessage);
} else if (response.statusCode === '404') {
console.error('Position not found');
}
});