@yash101/schwab-api-client
Version:
A TypeScript client library for interacting with the Charles Schwab Brokerage APIs.
377 lines • 11.5 kB
TypeScript
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