questrade-mcp-server
Version:
MCP server for Questrade API integration
128 lines (121 loc) • 2.62 kB
text/typescript
export interface QuestradeConfig {
apiUrl: string;
accessToken: string;
refreshToken: string;
}
export interface Account {
type: string;
number: string;
status: string;
isPrimary: boolean;
isBilling: boolean;
clientAccountType: string;
}
export interface Position {
symbol: string;
symbolId: number;
openQuantity: number;
closedQuantity: number;
currentMarketValue: number;
currentPrice: number;
averageEntryPrice: number;
closedPnl: number;
openPnl: number;
totalCost: number;
isRealTime: boolean;
isUnderReorg: boolean;
}
export interface Balance {
currency: string;
cash: number;
marketValue: number;
totalEquity: number;
buyingPower: number;
maintenanceExcess: number;
isRealTime: boolean;
}
export interface Quote {
symbol: string;
symbolId: number;
tier: string;
bidPrice: number;
bidSize: number;
askPrice: number;
askSize: number;
lastTradePriceTrHrs: number;
lastTradePrice: number;
lastTradeSize: number;
lastTradeTick: string;
lastTradeTime: string;
volume: number;
openPrice: number;
highPrice: number;
lowPrice: number;
delay: number;
isHalted: boolean;
high52w: number;
low52w: number;
VWAP: number;
}
export interface Symbol {
symbol: string;
symbolId: number;
description: string;
securityType: string;
listingExchange: string;
region: string;
currency: string;
isQuotable: boolean;
isTradable: boolean;
}
export interface Order {
id: number;
symbol: string;
symbolId: number;
totalQuantity: number;
openQuantity: number;
filledQuantity: number;
cancelledQuantity: number;
side: 'Buy' | 'Sell';
orderType: string;
limitPrice?: number;
stopPrice?: number;
isAllOrNone: boolean;
isAnonymous: boolean;
icebergQuantity?: number;
minQuantity?: number;
avgExecPrice?: number;
lastExecPrice?: number;
source: string;
timeInForce: string;
gtdDate?: string;
state: string;
clientReasonStr?: string;
chainId: number;
creationTime: string;
updateTime: string;
notes?: string;
primaryRoute: string;
orderRoute: string;
venueHoldingOrder?: string;
comissionCharged?: number;
exchangeOrderId?: string;
isSignificantShareHolder: boolean;
isInsider: boolean;
isLimitOffsetInDollar: boolean;
userId: number;
placementCommission?: number;
legs: any[];
strategyType: string;
triggerStopPrice?: number;
orderGroupId: number;
orderClass?: string;
mainChainId: number;
}
export interface TokenResponse {
access_token: string;
token_type: string;
expires_in: number;
refresh_token: string;
api_server: string;
}