ib-client
Version:
Interactive Brokers API client library for Node.js
524 lines (498 loc) • 16.3 kB
JavaScript
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.EXERCISE_ACTION = exports.TICK_TYPE = exports.LOG_LEVEL = exports.FA_DATA_TYPE = exports.TIME_IN_FORCE = exports.ORDER_TYPE = exports.DEFAULT_EXCHANGE = exports.DEFAULT_CURRENCY = exports.RIGHT = exports.ACTION = exports.SEC_TYPE = exports.MAX_VERSION = exports.MIN_VERSION = exports.SERVER_VERSION = exports.CLIENT_VERSION = exports.MIN_SERVER_VER = exports.OUTGOING = exports.INCOMING = exports.EOL = exports.QUEUE_RETRY_TIMEOUT_MS = exports.MAX_REQ_PER_SECOND = exports.VERSION = void 0;var VERSION = 'twsapi_macunix.974';exports.VERSION = VERSION;
var MAX_REQ_PER_SECOND = 40;exports.MAX_REQ_PER_SECOND = MAX_REQ_PER_SECOND;
var QUEUE_RETRY_TIMEOUT_MS = 100;exports.QUEUE_RETRY_TIMEOUT_MS = QUEUE_RETRY_TIMEOUT_MS;
var EOL = '\0';exports.EOL = EOL;
var INCOMING = {
END_CONN: -1,
TICK_PRICE: 1,
TICK_SIZE: 2,
ORDER_STATUS: 3,
ERR_MSG: 4,
OPEN_ORDER: 5,
ACCT_VALUE: 6,
PORTFOLIO_VALUE: 7,
ACCT_UPDATE_TIME: 8,
NEXT_VALID_ID: 9,
CONTRACT_DATA: 10,
EXECUTION_DATA: 11,
MARKET_DEPTH: 12,
MARKET_DEPTH_L2: 13,
NEWS_BULLETINS: 14,
MANAGED_ACCTS: 15,
RECEIVE_FA: 16,
HISTORICAL_DATA: 17,
BOND_CONTRACT_DATA: 18,
SCANNER_PARAMETERS: 19,
SCANNER_DATA: 20,
TICK_OPTION_COMPUTATION: 21,
TICK_GENERIC: 45,
TICK_STRING: 46,
TICK_EFP: 47,
CURRENT_TIME: 49,
REAL_TIME_BARS: 50,
FUNDAMENTAL_DATA: 51,
CONTRACT_DATA_END: 52,
OPEN_ORDER_END: 53,
ACCT_DOWNLOAD_END: 54,
EXECUTION_DATA_END: 55,
DELTA_NEUTRAL_VALIDATION: 56,
TICK_SNAPSHOT_END: 57,
MARKET_DATA_TYPE: 58,
COMMISSION_REPORT: 59,
POSITION: 61,
POSITION_END: 62,
ACCOUNT_SUMMARY: 63,
ACCOUNT_SUMMARY_END: 64,
VERIFY_MESSAGE_API: 65,
VERIFY_COMPLETED: 66,
DISPLAY_GROUP_LIST: 67,
DISPLAY_GROUP_UPDATED: 68,
VERIFY_AND_AUTH_MESSAGE_API: 69,
VERIFY_AND_AUTH_COMPLETED: 70,
POSITION_MULTI: 71,
POSITION_MULTI_END: 72,
ACCOUNT_UPDATE_MULTI: 73,
ACCOUNT_UPDATE_MULTI_END: 74,
SECURITY_DEFINITION_OPTION_PARAMETER: 75,
SECURITY_DEFINITION_OPTION_PARAMETER_END: 76,
SOFT_DOLLAR_TIERS: 77,
FAMILY_CODES: 78,
SYMBOL_SAMPLES: 79,
MKT_DEPTH_EXCHANGES: 80,
TICK_REQ_PARAMS: 81,
SMART_COMPONENTS: 82,
NEWS_ARTICLE: 83,
TICK_NEWS: 84,
NEWS_PROVIDERS: 85,
HISTORICAL_NEWS: 86,
HISTORICAL_NEWS_END: 87,
HEAD_TIMESTAMP: 88,
HISTOGRAM_DATA: 89,
HISTORICAL_DATA_UPDATE: 90,
REROUTE_MKT_DATA_REQ: 91,
REROUTE_MKT_DEPTH_REQ: 92,
MARKET_RULE: 93,
PNL: 94,
PNL_SINGLE: 95,
HISTORICAL_TICKS: 96,
HISTORICAL_TICKS_BID_ASK: 97,
HISTORICAL_TICKS_LAST: 98,
TICK_BY_TICK: 99,
ORDER_BOUND: 100 };exports.INCOMING = INCOMING;
var OUTGOING = {
REQ_MKT_DATA: 1,
CANCEL_MKT_DATA: 2,
PLACE_ORDER: 3,
CANCEL_ORDER: 4,
REQ_OPEN_ORDERS: 5,
REQ_ACCOUNT_DATA: 6,
REQ_EXECUTIONS: 7,
REQ_IDS: 8,
REQ_CONTRACT_DATA: 9,
REQ_MKT_DEPTH: 10,
CANCEL_MKT_DEPTH: 11,
REQ_NEWS_BULLETINS: 12,
CANCEL_NEWS_BULLETINS: 13,
SET_SERVER_LOGLEVEL: 14,
REQ_AUTO_OPEN_ORDERS: 15,
REQ_ALL_OPEN_ORDERS: 16,
REQ_MANAGED_ACCTS: 17,
REQ_FA: 18,
REPLACE_FA: 19,
REQ_HISTORICAL_DATA: 20,
EXERCISE_OPTIONS: 21,
REQ_SCANNER_SUBSCRIPTION: 22,
CANCEL_SCANNER_SUBSCRIPTION: 23,
REQ_SCANNER_PARAMETERS: 24,
CANCEL_HISTORICAL_DATA: 25,
REQ_CURRENT_TIME: 49,
REQ_REAL_TIME_BARS: 50,
CANCEL_REAL_TIME_BARS: 51,
REQ_FUNDAMENTAL_DATA: 52,
CANCEL_FUNDAMENTAL_DATA: 53,
REQ_CALC_IMPLIED_VOLAT: 54,
REQ_CALC_OPTION_PRICE: 55,
CANCEL_CALC_IMPLIED_VOLAT: 56,
CANCEL_CALC_OPTION_PRICE: 57,
REQ_GLOBAL_CANCEL: 58,
REQ_MARKET_DATA_TYPE: 59,
REQ_POSITIONS: 61,
REQ_ACCOUNT_SUMMARY: 62,
CANCEL_ACCOUNT_SUMMARY: 63,
CANCEL_POSITIONS: 64,
VERIFY_REQUEST: 65,
VERIFY_MESSAGE: 66,
QUERY_DISPLAY_GROUPS: 67,
SUBSCRIBE_TO_GROUP_EVENTS: 68,
UPDATE_DISPLAY_GROUP: 69,
UNSUBSCRIBE_FROM_GROUP_EVENTS: 70,
START_API: 71,
VERIFY_AND_AUTH_REQUEST: 72,
VERIFY_AND_AUTH_MESSAGE: 73,
REQ_POSITIONS_MULTI: 74,
CANCEL_POSITIONS_MULTI: 75,
REQ_ACCOUNT_UPDATES_MULTI: 76,
CANCEL_ACCOUNT_UPDATES_MULTI: 77,
REQ_SEC_DEF_OPT_PARAMS: 78,
REQ_SOFT_DOLLAR_TIERS: 79,
REQ_FAMILY_CODES: 80,
REQ_MATCHING_SYMBOLS: 81,
REQ_MKT_DEPTH_EXCHANGES: 82,
REQ_SMART_COMPONENTS: 83,
REQ_NEWS_ARTICLE: 84,
REQ_NEWS_PROVIDERS: 85,
REQ_HISTORICAL_NEWS: 86,
REQ_HEAD_TIMESTAMP: 87,
REQ_HISTOGRAM_DATA: 88,
CANCEL_HISTOGRAM_DATA: 89,
CANCEL_HEAD_TIMESTAMP: 90,
REQ_MARKET_RULE: 91,
REQ_PNL: 92,
CANCEL_PNL: 93,
REQ_PNL_SINGLE: 94,
CANCEL_PNL_SINGLE: 95,
REQ_HISTORICAL_TICKS: 96,
REQ_TICK_BY_TICK_DATA: 97,
CANCEL_TICK_BY_TICK_DATA: 98 };exports.OUTGOING = OUTGOING;
var MIN_SERVER_VER = {
REAL_TIME_BARS: 34,
SCALE_ORDERS: 35,
SNAPSHOT_MKT_DATA: 35,
SSHORT_COMBO_LEGS: 35,
WHAT_IF_ORDERS: 36,
CONTRACT_CONID: 37,
PTA_ORDERS: 39,
FUNDAMENTAL_DATA: 40,
UNDER_COMP: 40,
DELTA_NEUTRAL: 40,
CONTRACT_DATA_CHAIN: 40,
SCALE_ORDERS2: 40,
ALGO_ORDERS: 41,
EXECUTION_DATA_CHAIN: 42,
NOT_HELD: 44,
SEC_ID_TYPE: 45,
PLACE_ORDER_CONID: 46,
REQ_MKT_DATA_CONID: 47,
REQ_CALC_IMPLIED_VOLAT: 49,
CANCEL_CALC_IMPLIED_VOLAT: 50,
CANCEL_CALC_OPTION_PRICE: 50,
REQ_CALC_OPTION_PRICE: 50,
SSHORTX_OLD: 51,
SSHORTX: 52,
REQ_GLOBAL_CANCEL: 53,
HEDGE_ORDERS: 54,
REQ_MARKET_DATA_TYPE: 55,
OPT_OUT_SMART_ROUTING: 56,
SMART_COMBO_ROUTING_PARAMS: 57,
DELTA_NEUTRAL_CONID: 58,
SCALE_ORDERS3: 60,
ORDER_COMBO_LEGS_PRICE: 61,
TRAILING_PERCENT: 62,
DELTA_NEUTRAL_OPEN_CLOSE: 66,
POSITIONS: 67,
ACCT_SUMMARY: 67,
TRADING_CLASS: 68,
SCALE_TABLE: 69,
LINKING: 70,
ALGO_ID: 71,
OPTIONAL_CAPABILITIES: 72,
ORDER_SOLICITED: 73,
LINKING_AUTH: 74,
PRIMARYEXCH: 75,
RANDOMIZE_SIZE_AND_PRICE: 76,
FRACTIONAL_POSITIONS: 101,
PEGGED_TO_BENCHMARK: 102,
MODELS_SUPPORT: 103,
SEC_DEF_OPT_PARAMS_REQ: 104,
EXT_OPERATOR: 105,
SOFT_DOLLAR_TIER: 106,
REQ_FAMILY_CODES: 107,
REQ_MATCHING_SYMBOLS: 108,
PAST_LIMIT: 109,
MD_SIZE_MULTIPLIER: 110,
CASH_QTY: 111,
REQ_MKT_DEPTH_EXCHANGES: 112,
TICK_NEWS: 113,
REQ_SMART_COMPONENTS: 114,
REQ_NEWS_PROVIDERS: 115,
REQ_NEWS_ARTICLE: 116,
REQ_HISTORICAL_NEWS: 117,
REQ_HEAD_TIMESTAMP: 118,
REQ_HISTOGRAM: 119,
SERVICE_DATA_TYPE: 120,
AGG_GROUP: 121,
UNDERLYING_INFO: 122,
CANCEL_HEADTIMESTAMP: 123,
SYNT_REALTIME_BARS: 124,
CFD_REROUTE: 125,
MARKET_RULES: 126,
PNL: 127,
NEWS_QUERY_ORIGINS: 128,
UNREALIZED_PNL: 129,
HISTORICAL_TICKS: 130,
MARKET_CAP_PRICE: 131,
PRE_OPEN_BID_ASK: 132,
REAL_EXPIRATION_DATE: 134,
REALIZED_PNL: 135,
LAST_LIQUIDITY: 136,
TICK_BY_TICK: 137,
DECISION_MAKER: 138,
MIFID_EXECUTION: 139,
TICK_BY_TICK_IGNORE_SIZE: 140,
AUTO_PRICE_FOR_HEDGE: 141,
WHAT_IF_EXT_FIELDS: 142,
SCANNER_GENERIC_OPTS: 143,
API_BIND_ORDER: 144,
ORDER_CONTAINER: 145,
SMART_DEPTH: 146,
REMOVE_NULL_ALL_CASTING: 147,
D_PEG_ORDERS: 148 };
// Client version history
//
// 6 = Added parentId to orderStatus
// 7 = The new execDetails event returned for an order filled status and reqExecDetails
// Also market depth is available.
// 8 = Added lastFillPrice to orderStatus() event and permId to execution details
// 9 = Added 'averageCost', 'unrealizedPNL', and 'unrealizedPNL' to updatePortfolio event
// 10 = Added 'serverId' to the 'open order' & 'order status' events.
// We send back all the API open orders upon connection.
// Added new methods reqAllOpenOrders, reqAutoOpenOrders()
// Added FA support - reqExecution has filter.
// - reqAccountUpdates takes acct code.
// 11 = Added permId to openOrder event.
// 12 = requesting open order attributes ignoreRth, hidden, and discretionary
// 13 = added goodAfterTime
// 14 = always send size on bid/ask/last tick
// 15 = send allocation description string on openOrder
// 16 = can receive account name in account and portfolio updates, and fa params in openOrder
// 17 = can receive liquidation field in exec reports, and notAutoAvailable field in mkt data
// 18 = can receive good till date field in open order messages, and request intraday backfill
// 19 = can receive rthOnly flag in ORDER_STATUS
// 20 = expects TWS time string on connection after server version >= 20.
// 21 = can receive bond contract details.
// 22 = can receive price magnifier in version 2 contract details message
// 23 = support for scanner
// 24 = can receive volatility order parameters in open order messages
// 25 = can receive HMDS query start and end times
// 26 = can receive option vols in option market data messages
// 27 = can receive delta neutral order type and delta neutral aux price in place order version 20: API 8.85
// 28 = can receive option model computation ticks: API 8.9
// 29 = can receive trail stop limit price in open order and can place them: API 8.91
// 30 = can receive extended bond contract def, new ticks, and trade count in bars
// 31 = can receive EFP extensions to scanner and market data, and combo legs on open orders
// ; can receive RT bars
// 32 = can receive TickType.LAST_TIMESTAMP
// ; can receive "whyHeld" in order status messages
// 33 = can receive ScaleNumComponents and ScaleComponentSize is open order messages
// 34 = can receive whatIf orders / order state
// 35 = can receive contId field for Contract objects
// 36 = can receive outsideRth field for Order objects
// 37 = can receive clearingAccount and clearingIntent for Order objects
// 38 = can receive multiplier and primaryExchange in portfolio updates
// ; can receive cumQty and avgPrice in execution
// ; can receive fundamental data
// ; can receive deltaNeutralContract for Contract objects
// ; can receive reqId and end marker in contractDetails/bondContractDetails
// ; can receive ScaleInitComponentSize and ScaleSubsComponentSize for Order objects
// 39 = can receive underConId in contractDetails
// 40 = can receive algoStrategy/algoParams in openOrder
// 41 = can receive end marker for openOrder
// ; can receive end marker for account download
// ; can receive end marker for executions download
// 42 = can receive deltaNeutralValidation
// 43 = can receive longName(companyName)
// ; can receive listingExchange
// ; can receive RTVolume tick
// 44 = can receive end market for ticker snapshot
// 45 = can receive notHeld field in openOrder
// 46 = can receive contractMonth, industry, category, subcategory fields in contractDetails
// ; can receive timeZoneId, tradingHours, liquidHours fields in contractDetails
// 47 = can receive gamma, vega, theta, undPrice fields in TICK_OPTION_COMPUTATION
// 48 = can receive exemptCode in openOrder
// 49 = can receive hedgeType and hedgeParam in openOrder
// 50 = can receive optOutSmartRouting field in openOrder
// 51 = can receive smartComboRoutingParams in openOrder
// 52 = can receive deltaNeutralConId, deltaNeutralSettlingFirm, deltaNeutralClearingAccount and deltaNeutralClearingIntent in openOrder
// 53 = can receive orderRef in execution
// 54 = can receive scale order fields (PriceAdjustValue, PriceAdjustInterval, ProfitOffset, AutoReset,
// InitPosition, InitFillQty and RandomPercent) in openOrder
// 55 = can receive orderComboLegs (price) in openOrder
// 56 = can receive trailingPercent in openOrder
// 57 = can receive commissionReport message
// 58 = can receive CUSIP/ISIN/etc. in contractDescription/bondContractDescription
// 59 = can receive evRule, evMultiplier in contractDescription/bondContractDescription/executionDetails
// can receive multiplier in executionDetails
// 60 = can receive deltaNeutralOpenClose, deltaNeutralShortSale, deltaNeutralShortSaleSlot and deltaNeutralDesignatedLocation in openOrder
// 61 = can receive multiplier in openOrder
// can receive tradingClass in openOrder, updatePortfolio, execDetails and position
// 62 = can receive avgCost in position message
// 63 = can receive verifyMessageAPI, verifyCompleted, displayGroupList and displayGroupUpdated messages
// 64 = can receive solicited attrib in openOrder message
// 65 = can receive verifyAndAuthMessageAPI and verifyAndAuthCompleted messages
// 66 = can receive randomize size and randomize price order fields
exports.MIN_SERVER_VER = MIN_SERVER_VER;
var CLIENT_VERSION = 66;exports.CLIENT_VERSION = CLIENT_VERSION;
var SERVER_VERSION = MIN_SERVER_VER.D_PEG_ORDERS;exports.SERVER_VERSION = SERVER_VERSION;
var MIN_VERSION = 100; // envelope encoding, applicable to useV100Plus mode only
exports.MIN_VERSION = MIN_VERSION;var MAX_VERSION = SERVER_VERSION; // ditto
exports.MAX_VERSION = MAX_VERSION;
var SEC_TYPE = {
STOCK: 'STK',
FUTURES: 'FUT',
STOCK_OPTION: 'OPT',
FUTURES_OPTION: 'FOP',
BAG: 'BAG' };exports.SEC_TYPE = SEC_TYPE;
var ACTION = {
BUY: 'BUY',
SELL: 'SELL' };exports.ACTION = ACTION;
var RIGHT = {
CALL: 'CALL',
PUT: 'PUT' };exports.RIGHT = RIGHT;
var DEFAULT_CURRENCY = 'USD';exports.DEFAULT_CURRENCY = DEFAULT_CURRENCY;
var DEFAULT_EXCHANGE = 'SMART'; // let IB to select the best one
exports.DEFAULT_EXCHANGE = DEFAULT_EXCHANGE;
var ORDER_TYPE = {
MARKET: 'MKT',
LIMIT: 'LMT',
STOP: 'STP',
STP_LMT: 'STP LMT',
REL: 'REL',
TRAIL: 'TRAIL',
BOX_TOP: 'BOX TOP',
FIX_PEGGED: 'FIX PEGGED',
LIT: 'LIT',
LMT_PLUS_MKT: 'LMT + MKT',
LOC: 'LOC',
MIT: 'MIT',
MKT_PRT: 'MKT PRT',
MOC: 'MOC',
MTL: 'MTL',
PASSV_REL: 'PASSV REL',
PEG_BENCH: 'PEG BENCH',
PEG_MID: 'PEG MID',
PEG_MKT: 'PEG MKT',
PEG_PRIM: 'PEG PRIM',
PEG_STK: 'PEG STK',
REL_PLUS_LMT: 'REL + LMT',
REL_PLUS_MKT: 'REL + MKT',
SNAP_MID: 'SNAP MID',
SNAP_MKT: 'SNAP MKT',
SNAP_PRIM: 'SNAP PRIM',
STP_PRT: 'STP PRT',
TRAIL_LIMIT: 'TRAIL LIMIT',
TRAIL_LIT: 'TRAIL LIT',
TRAIL_LMT_PLUS_MKT: 'TRAIL LMT + MKT',
TRAIL_MIT: 'TRAIL MIT',
TRAIL_REL_PLUS_MKT: 'TRAIL REL + MKT',
VOL: 'VOL',
VWAP: 'VWAP',
QUOTE: 'QUOTE',
PEG_PRIM_VOL: 'PPV',
PEG_MID_VOL: 'PDV',
PEG_MKT_VOL: 'PMV',
PEG_SRF_VOL: 'PSV' };exports.ORDER_TYPE = ORDER_TYPE;
var TIME_IN_FORCE = {
DAY: 'DAY',
GTC: 'GTC' };exports.TIME_IN_FORCE = TIME_IN_FORCE;
var FA_DATA_TYPE = {
GROUPS: 1,
PROFILES: 2,
ALIASES: 3 };exports.FA_DATA_TYPE = FA_DATA_TYPE;
var LOG_LEVEL = {
SYSTEM: 1,
ERROR: 2,
WARN: 3,
INFO: 4,
DETAIL: 5 };exports.LOG_LEVEL = LOG_LEVEL;
var TICK_TYPE = {
BID_SIZE: 0,
BID: 1,
ASK: 2,
ASK_SIZE: 3,
LAST: 4,
LAST_SIZE: 5,
HIGH: 6,
LOW: 7,
VOLUME: 8,
CLOSE: 9,
BID_OPTION: 10,
ASK_OPTION: 11,
LAST_OPTION: 12,
MODEL_OPTION: 13,
OPEN: 14,
LOW_13_WEEK: 15,
HIGH_13_WEEK: 16,
LOW_26_WEEK: 17,
HIGH_26_WEEK: 18,
LOW_52_WEEK: 19,
HIGH_52_WEEK: 20,
AVG_VOLUME: 21,
OPEN_INTEREST: 22,
OPTION_HISTORICAL_VOL: 23,
OPTION_IMPLIED_VOL: 24,
OPTION_BID_EXCH: 25,
OPTION_ASK_EXCH: 26,
OPTION_CALL_OPEN_INTEREST: 27,
OPTION_PUT_OPEN_INTEREST: 28,
OPTION_CALL_VOLUME: 29,
OPTION_PUT_VOLUME: 30,
INDEX_FUTURE_PREMIUM: 31,
BID_EXCH: 32,
ASK_EXCH: 33,
AUCTION_VOLUME: 34,
AUCTION_PRICE: 35,
AUCTION_IMBALANCE: 36,
MARK_PRICE: 37,
BID_EFP_COMPUTATION: 38,
ASK_EFP_COMPUTATION: 39,
LAST_EFP_COMPUTATION: 40,
OPEN_EFP_COMPUTATION: 41,
HIGH_EFP_COMPUTATION: 42,
LOW_EFP_COMPUTATION: 43,
CLOSE_EFP_COMPUTATION: 44,
LAST_TIMESTAMP: 45,
SHORTABLE: 46,
FUNDAMENTAL_RATIOS: 47,
RT_VOLUME: 48,
HALTED: 49,
BID_YIELD: 50,
ASK_YIELD: 51,
LAST_YIELD: 52,
CUST_OPTION_COMPUTATION: 53,
TRADE_COUNT: 54,
TRADE_RATE: 55,
VOLUME_RATE: 56,
LAST_RTH_TRADE: 57,
RT_HISTORICAL_VOL: 58,
IB_DIVIDENDS: 59,
BOND_FACTOR_MULTIPLIER: 60,
REGULATORY_IMBALANCE: 61,
NEWS_TICK: 62,
SHORT_TERM_VOLUME_3_MIN: 63,
SHORT_TERM_VOLUME_5_MIN: 64,
SHORT_TERM_VOLUME_10_MIN: 65,
DELAYED_BID: 66,
DELAYED_ASK: 67,
DELAYED_LAST: 68,
DELAYED_BID_SIZE: 69,
DELAYED_ASK_SIZE: 70,
DELAYED_LAST_SIZE: 71,
DELAYED_HIGH: 72,
DELAYED_LOW: 73,
DELAYED_VOLUME: 74,
DELAYED_CLOSE: 75,
DELAYED_OPEN: 76,
RT_TRD_VOLUME: 77,
CREDITMAN_MARK_PRICE: 78,
CREDITMAN_SLOW_MARK_PRICE: 79,
DELAYED_BID_OPTION: 80,
DELAYED_ASK_OPTION: 81,
DELAYED_LAST_OPTION: 82,
DELAYED_MODEL_OPTION: 83,
LAST_EXCH: 84,
LAST_REG_TIME: 85,
FUTURES_OPEN_INTEREST: 86,
UNKNOWN: 2147483647 };exports.TICK_TYPE = TICK_TYPE;
var EXERCISE_ACTION = {
EXERCISE: 1,
LAPSE: 2 };exports.EXERCISE_ACTION = EXERCISE_ACTION;