or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

account.mdcore.mdindex.mdinstruments.mdorders.mdpositions.mdpricing.mdtrades.mdtransactions.mdusers.md
tile.json

positions.mddocs/

Position Management

Track and manage positions by instrument. Positions aggregate all open trades for an instrument.

API Methods

list

List all positions (including zero units).

list(accountID: string, responseHandler: (response: Response) => void): void;

Response: { positions: Position[], lastTransactionID: string }

listOpen

List only open positions (non-zero units).

listOpen(accountID: string, responseHandler: (response: Response) => void): void;

Response: { positions: Position[], lastTransactionID: string }

get

Get position for specific instrument.

get(accountID: string, instrument: string, responseHandler: (response: Response) => void): void;

Response: { position: Position, lastTransactionID: string }

close

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

Data Classes

Position

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

PositionSide

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

CalculatedPositionState

Real-time calculated position metrics.

class CalculatedPositionState extends Definition {
  instrument: string;
  netUnrealizedPL: string;
  longUnrealizedPL: string;
  shortUnrealizedPL: string;
  marginUsed: string;
}

Position Concepts

  • Position = Net exposure aggregating all trades in an instrument
  • Long Side = Sum of all long trades
  • Short Side = Sum of all short trades
  • Hedged Position = Both long and short sides open simultaneously

Error Handling

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