UNPKG

@yash101/schwab-api-client

Version:

A TypeScript client library for interacting with the Charles Schwab Brokerage APIs.

377 lines 11.5 kB
import { AccountsInstrument, EncryptedAccountNumber, AccountNumberString } from "./accounts.types"; import { APIRuleAction, ErrorMessageAndErrors, NoParametersResponse } from "./api.types"; import { AssetType } from "./asset.types"; import { CommissionAndFee } from "./fee.types"; import { DestinationEnum, DurationEnum, SessionEnum } from "./market.types"; export interface GetOrdersForAccountRequest extends BaseGetOrdersRequest { accountNumber: EncryptedAccountNumber; } export type GetOrdersForAccountResponse = Order[]; export interface PostOrderForAccountRequest { accountNumber: EncryptedAccountNumber; order: OrderRequest; } export type PostOrderForAccountResponse = Order; export interface GetOrderForAccountByOrderIdRequest { accountNumber: EncryptedAccountNumber; orderId: number; } export type GetOrderForAccountByOrderIdResponse = Order; export interface DeleteOrderForAccountByOrderIdRequest { accountNumber: EncryptedAccountNumber; orderId: number; } export type DeleteOrderForAccountByOrderIdResponse = NoParametersResponse | ErrorMessageAndErrors; export interface ReplaceOrderForAccountByOrderIdRequest { accountNumber: EncryptedAccountNumber; orderId: number; order: OrderRequest; } export type ReplaceOrderForAccountByOrderIdResponse = NoParametersResponse | ErrorMessageAndErrors; export interface GetOrdersForAllAccountsRequest extends BaseGetOrdersRequest { } export type GetOrdersForAllAccountsResponse = Order[]; export type PreviewOrderForAccountRequest = PostOrderForAccountRequest; export type PreviewOrderForAccountResponse = PreviewOrder; export interface BaseGetOrdersRequest { maxResults?: number; fromEnteredTime: Date; toEnteredTime: Date; status?: OrderStatusEnum; } export declare enum OrderStatusEnum { AWAITING_PARENT_ORDER = "AWAITING_PARENT_ORDER", AWAITING_CONDITION = "AWAITING_CONDITION", AWAITING_STOP_CONDITION = "AWAITING_STOP_CONDITION", AWAITING_MANUAL_REVIEW = "AWAITING_MANUAL_REVIEW", ACCEPTED = "ACCEPTED", AWAITING_UR_OUT = "AWAITING_UR_OUT", PENDING_ACTIVATION = "PENDING_ACTIVATION", QUEUED = "QUEUED", WORKING = "WORKING", REJECTED = "REJECTED", PENDING_CANCEL = "PENDING_CANCEL", CANCELED = "CANCELED", PENDING_REPLACE = "PENDING_REPLACE", REPLACED = "REPLACED", FILLED = "FILLED", EXPIRED = "EXPIRED", NEW = "NEW", AWAITING_RELEASE_TIME = "AWAITING_RELEASE_TIME", PENDING_ACKNOWLEDGEMENT = "PENDING_ACKNOWLEDGEMENT", PENDING_RECALL = "PENDING_RECALL", UNKNOWN = "UNKNOWN" } /** * Represents an order response from the API. * Use OrderRequest for placing/replacing orders. */ export interface Order { session: SessionEnum; duration: DurationEnum; orderType: OrderTypeEnum; cancelTime?: string; complexOrderStrategyType: ComplexOrderStrategyTypeEnum; quantity: number; filledQuantity: number; remainingQuantity: number; requestedDestination: DestinationEnum; destinationLinkName: string; releaseTime?: string; stopPrice?: number; stopPriceLinkBasis: StopPriceLinkBasisEnum; stopPriceLinkType: StopPriceLinkTypeEnum; stopPriceOffset?: number; stopType: StopTypeEnum; priceLinkBasis: PriceLinkBasisEnum; priceLinkType: PriceLinkTypeEnum; price?: number; taxLotMethod: TaxLotMethodEnum; orderLegCollection: OrderLegCollection[]; activationPrice?: number; specialInstruction: SpecialInstructionEnum; orderStrategyType: OrderStrategyTypeEnum; orderId: number; cancelable: boolean; editable: boolean; status: OrderStatusEnum; enteredTime: string; closeTime?: string; tag?: string; accountNumber: AccountNumberString; orderActivityCollection: OrderActivity[]; replacingOrderCollection: Order[]; childOrderStrategies: ChildOrderStrategy[]; statusDescription: string; } /** * Represents the structure for placing or replacing an order. */ export interface OrderRequest { session: SessionEnum; duration: DurationEnum; orderType: OrderTypeEnum; cancelTime?: string; complexOrderStrategyType: ComplexOrderStrategyTypeEnum; quantity: number; requestedDestination: DestinationEnum; destinationLinkName: string; releaseTime?: string; stopPrice?: number; stopPriceLinkBasis: StopPriceLinkBasisEnum; stopPriceLinkType: StopPriceLinkTypeEnum; stopPriceOffset?: number; stopType: StopTypeEnum; priceLinkBasis: PriceLinkBasisEnum; priceLinkType: PriceLinkTypeEnum; price?: number; taxLotMethod: TaxLotMethodEnum; orderLegCollection: OrderLegCollection[]; activationPrice?: number; specialInstruction: SpecialInstructionEnum; orderStrategyType: OrderStrategyTypeEnum; tag?: string; } export interface ChildOrderStrategy { orderStrategyType: OrderStrategyTypeEnum; orders: Order[]; } export interface OrderLegCollection { orderLegType: AssetType; legId: number; instrument: AccountsInstrument; instruction: InstructionEnum; positionEffect: PositionEffectEnum; quantity: number; quantityType: QuantityTypeEnum; divCapGains?: DivCapGainsEnum; toSymbol?: string; } export interface OrderActivity { activityType: OrderActivityTypeEnum; executionType: 'FILL'; quantity: number; orderRemainingQuantity: number; executionLegs: ExecutionLeg[]; } export interface PreviewOrder { orderId: number; orderStrategy: OrderStrategy; orderValidationResult: OrderValidationResult; commissionAndFee: CommissionAndFee; } export interface OrderValidationResult { alerts: OrderValidationDetail[]; accepts: OrderValidationDetail[]; rejects: OrderValidationDetail[]; reviews: OrderValidationDetail[]; warns: OrderValidationDetail[]; } export interface OrderValidationDetail { validationRuleName: string; message: string; activityMessage: string; originalSeverity: APIRuleAction; overrideName: string; overrideSeverity: APIRuleAction; } export interface OrderStrategy { accountNumber: AccountNumberString; advancedOrderType: AdvancedOrderTypeEnum; closeTime?: string; enteredTime: string; orderBalance: OrderBalance; orderStrategyType: OrderStrategyTypeEnum; orderVersion: number; session: SessionEnum; status: OrderStatusEnum; allOrNone: boolean; discretionary: boolean; duration: DurationEnum; filledQuantity: number; orderType: OrderTypeEnum; orderValue: number; price?: number; quantity: number; remainingQuantity: number; sellNonMarginableFirst: boolean; settlementInstruction: SettlementInstructionEnum; strategy: ComplexOrderStrategyTypeEnum; amountIndicator: AmountIndicatorEnum; orderLegs: OrderLegCollection[]; } export interface OrderBalance { orderValue: number; projectedAvailableFund: number; projectedBuyingPower: number; projectedCommission: number; } export interface ExecutionLeg { legId: number; price: number; quantity: number; mismarkedQuantity: number; instrumentId: number; time: string; } export declare enum SettlementInstructionEnum { REGULAR = "REGULAR", CASH = "CASH", NEXT_DAY = "NEXT_DAY", UNKNOWN = "UNKNOWN" } export declare enum AmountIndicatorEnum { DOLLARS = "DOLLARS", SHARES = "SHARES", ALL_SHARES = "ALL_SHARES", PERCENTAGE = "PERCENTAGE", UNKNOWN = "UNKNOWN" } export declare enum PositionEffectEnum { OPEN = "OPEN", CLOSE = "CLOSE", ROLL = "ROLL", OFFSET = "OFFSET", UNKNOWN = "UNKNOWN" } export declare enum OrderTypeEnum { MARKET = "MARKET", LIMIT = "LIMIT", STOP = "STOP", STOP_LIMIT = "STOP_LIMIT", TRAILING_STOP = "TRAILING_STOP", CABINET = "CABINET", NON_MARKETABLE = "NON_MARKETABLE", MARKET_ON_CLOSE = "MARKET_ON_CLOSE", EXERCISE = "EXERCISE", TRAILING_STOP_LIMIT = "TRAILING_STOP_LIMIT", NET_DEBIT = "NET_DEBIT", NET_CREDIT = "NET_CREDIT", NET_ZERO = "NET_ZERO", LIMIT_ON_CLOSE = "LIMIT_ON_CLOSE", UNKNOWN = "UNKNOWN" } export declare enum ComplexOrderStrategyTypeEnum { NONE = "NONE", COVERED = "COVERED", VERTICAL = "VERTICAL", BACK_RATIO = "BACK_RATIO", CALENDAR = "CALENDAR", DIAGONAL = "DIAGONAL", STRADDLE = "STRADDLE", STRANGLE = "STRANGLE", COLLAR_SYNTHETIC = "COLLAR_SYNTHETIC", BUTTERFLY = "BUTTERFLY", CONDOR = "CONDOR", IRON_CONDOR = "IRON_CONDOR", VERTICAL_ROLL = "VERTICAL_ROLL", COLLAR_WITH_STOCK = "COLLAR_WITH_STOCK", DOUBLE_DIAGONAL = "DOUBLE_DIAGONAL", UNBALANCED_BUTTERFLY = "UNBALANCED_BUTTERFLY", UNBALANCED_CONDOR = "UNBALANCED_CONDOR", UNBALANCED_IRON_CONDOR = "UNBALANCED_IRON_CONDOR", UNBALANCED_VERTICAL_ROLL = "UNBALANCED_VERTICAL_ROLL", MUTUAL_FUND_SWAP = "MUTUAL_FUND_SWAP", CUSTOM = "CUSTOM" } export declare enum AdvancedOrderTypeEnum { NONE = "NONE", OTO = "OTO",// One Triggers Other OCO = "OCO",// One Cancels Other OTOCO = "OTOCO",// One Triggers OCO OT2OCO = "OT2OCO",// One Triggers Two OCO OT3OCO = "OT3OCO",// One Triggers Three OCO BLAST_ALL = "BLAST_ALL", OTA = "OTA",// One Triggers All PAIR = "PAIR" } export declare enum StopPriceLinkBasisEnum { MANUAL = "MANUAL", BASE = "BASE", TRIGGER = "TRIGGER", LAST = "LAST", BID = "BID", ASK = "ASK", ASK_BID = "ASK_BID", MARK = "MARK", AVERAGE = "AVERAGE" } export declare enum StopPriceLinkTypeEnum { VALUE = "VALUE", PERCENT = "PERCENT", TICK = "TICK" } export declare enum StopTypeEnum { STANDARD = "STANDARD", BID = "BID", ASK = "ASK", LAST = "LAST", MARK = "MARK" } export declare enum PriceLinkBasisEnum { MANUAL = "MANUAL", BASE = "BASE", TRIGGER = "TRIGGER", LAST = "LAST", BID = "BID", ASK = "ASK", ASK_BID = "ASK_BID", MARK = "MARK", AVERAGE = "AVERAGE" } export declare enum PriceLinkTypeEnum { VALUE = "VALUE", PERCENT = "PERCENT", TICK = "TICK" } export declare enum TaxLotMethodEnum { FIFO = "FIFO", LIFO = "LIFO", HIGH_COST = "HIGH_COST", LOW_COST = "LOW_COST", AVERAGE_COST = "AVERAGE_COST", SPECIFIC_LOT = "SPECIFIC_LOT", LOSS_HARVESTER = "LOSS_HARVESTER" } export declare enum SpecialInstructionEnum { ALL_OR_NONE = "ALL_OR_NONE", DO_NOT_REDUCE = "DO_NOT_REDUCE", ALL_OR_NONE_DO_NOT_REDUCE = "ALL_OR_NONE_DO_NOT_REDUCE" } export declare enum OrderStrategyTypeEnum { SINGLE = "SINGLE", CANCEL = "CANCEL", RECALL = "RECALL", PAIR = "PAIR", FLATTEN = "FLATTEN", TWO_DAY_SWAP = "TWO_DAY_SWAP", BLAST_ALL = "BLAST_ALL", OCO = "OCO", TRIGGER = "TRIGGER" } export declare enum InstructionEnum { BUY = "BUY", SELL = "SELL", BUY_TO_COVER = "BUY_TO_COVER", SELL_SHORT = "SELL_SHORT", BUY_TO_OPEN = "BUY_TO_OPEN", BUY_TO_CLOSE = "BUY_TO_CLOSE", SELL_TO_OPEN = "SELL_TO_OPEN", SELL_TO_CLOSE = "SELL_TO_CLOSE", EXCHANGE = "EXCHANGE", SELL_SHORT_EXEMPT = "SELL_SHORT_EXEMPT" } export declare enum QuantityTypeEnum { ALL_SHARES = "ALL_SHARES", DOLLARS = "DOLLARS", SHARES = "SHARES" } export declare enum DivCapGainsEnum { REINVEST = "REINVEST", PAYOUT = "PAYOUT" } export declare enum OrderActivityTypeEnum { EXECUTION = "EXECUTION", ORDER_ACTION = "ORDER_ACTION" } //# sourceMappingURL=orders.types.d.ts.map