src/api-next/position/position.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { AccountId, Contract, ItemListUpdate } from "../..";

/**
 * A position on an IBKR account.
 */
export interface Position {
  /** The IBKR account Id. */
  readonly account: AccountId;

  /** The position's [[Contract]] */
  readonly contract: Contract;

  /** The number of positions held. */
  readonly pos: number;

  /** The average cost of the position. */
  readonly avgCost?: number;

  /** the market price of the contract. */
  readonly marketPrice?: number;

  /** the market value of the position. */
  readonly marketValue?: number;

  /** The unrealized PNL of the position. */
  readonly unrealizedPNL?: number;

  /** The realized PNL of the position. */
  readonly realizedPNL?: number;
}

/** Summary of all linked accounts, with account id as key. */
export type AccountPositions = ReadonlyMap<AccountId, Position[]>;

/** An update on the account summaries. */
export type AccountPositionsUpdate = ItemListUpdate<AccountPositions>;