|
|
This documentation is now deprecated. Please switch to the IBKR Campus for up-to-date information regarding IBKR's API solutions. |
TWS/Gateway client class This client class contains all the available methods to communicate with IB. Up to 32 clients can be connected to a single instance of the TWS/Gateway simultaneously. From herein, the TWS/Gateway will be referred to as the Host. More...
Public Member Functions | |
EClientSocket(EWrapper wrapper, EReaderSignal eReaderSignal) void EClientMsgSink. | serverVersion (int version, string time) |
void | eConnect (string host, int port, int clientId) |
Establishes a connection to the designated Host. This earlier version of eConnect does not have extraAuth parameter. | |
void | eConnect (string host, int port, int clientId, bool extraAuth) |
Establishes a connection to the designated Host. After establishing a connection successfully, the Host will provide the next valid order id, server's current time, managed accounts and open orders among others depending on the Host version. More... | |
void | redirect (string host) |
Redirects connection to different host. | |
override void | eDisconnect (bool resetState=true) |
Closes the socket connection and terminates its thread. | |
Public Member Functions inherited from EClient | |
EClient (EWrapper wrapper) | |
Constructor. More... | |
void | SetConnectOptions (string connectOptions) |
Ignore. Used for IB's internal purposes. | |
void | DisableUseV100Plus () |
Allows to switch between different current (V100+) and previous connection mechanisms. | |
bool | IsConnected () |
Indicates whether the API-TWS connection has been closed. Note: This function is not automatically invoked and must be by the API client. More... | |
void | startApi () |
Initiates the message exchange between the client application and the TWS/IB Gateway. | |
void | Close () |
Terminates the connection and notifies the EWrapper implementing class. More... | |
void | reqCompletedOrders (bool apiOnly) |
Requests completed orders. . More... | |
void | cancelTickByTickData (int requestId) |
Cancels tick-by-tick data. . More... | |
void | reqTickByTickData (int requestId, Contract contract, string tickType, int numberOfTicks, bool ignoreSize) |
Requests tick-by-tick data. . More... | |
void | cancelHistoricalData (int reqId) |
Cancels a historical data request. More... | |
void | calculateImpliedVolatility (int reqId, Contract contract, double optionPrice, double underPrice, List< TagValue > impliedVolatilityOptions) |
Calculate the volatility for an option. Request the calculation of the implied volatility based on hypothetical option and its underlying prices. The calculation will be return in EWrapper's tickOptionComputation callback. . More... | |
void | calculateOptionPrice (int reqId, Contract contract, double volatility, double underPrice, List< TagValue > optionPriceOptions) |
Calculates an option's price based on the provided volatility and its underlying's price. The calculation will be return in EWrapper's tickOptionComputation callback. . More... | |
void | cancelAccountSummary (int reqId) |
Cancels the account's summary request. After requesting an account's summary, invoke this function to cancel it. More... | |
void | cancelCalculateImpliedVolatility (int reqId) |
Cancels an option's implied volatility calculation request. More... | |
void | cancelCalculateOptionPrice (int reqId) |
Cancels an option's price calculation request. More... | |
void | cancelFundamentalData (int reqId) |
Cancels Fundamental data request. More... | |
void | cancelMktData (int tickerId) |
Cancels a RT Market Data request. More... | |
void | cancelMktDepth (int tickerId, bool isSmartDepth) |
Cancel's market depth's request. More... | |
void | cancelNewsBulletin () |
Cancels IB's news bulletin subscription. More... | |
void | cancelOrder (int orderId, string manualOrderCancelTime) |
Cancels an active order placed by from the same API client ID. Note: API clients cannot cancel individual orders placed by other clients. Only reqGlobalCancel is available. . More... | |
void | cancelPositions () |
Cancels a previous position subscription request made with reqPositions. More... | |
void | cancelRealTimeBars (int tickerId) |
Cancels Real Time Bars' subscription. More... | |
void | cancelScannerSubscription (int tickerId) |
Cancels Scanner Subscription. More... | |
void | exerciseOptions (int tickerId, Contract contract, int exerciseAction, int exerciseQuantity, string account, int ovrd, string manualOrderTime) |
Exercises an options contract Note: this function is affected by a TWS setting which specifies if an exercise request must be finalized. More... | |
void | placeOrder (int id, Contract contract, Order order) |
Places or modifies an order. More... | |
void | replaceFA (int reqId, int faDataType, string xml) |
Replaces Financial Advisor's settings A Financial Advisor can define three different configurations: More... | |
void | requestFA (int faDataType) |
Requests the FA configuration A Financial Advisor can define three different configurations: More... | |
void | reqAccountSummary (int reqId, string group, string tags) |
Requests a specific account's summary. This method will subscribe to the account summary as presented in the TWS' Account Summary tab. The data is returned at EWrapper::accountSummary https://www.interactivebrokers.com/en/software/tws/accountwindowtop.htm. More... | |
void | reqAccountUpdates (bool subscribe, string acctCode) |
Subscribes to a specific account's information and portfolio. Through this method, a single account's subscription can be started/stopped. As a result from the subscription, the account's information, portfolio and last update time will be received at EWrapper::updateAccountValue, EWrapper::updateAccountPortfolio, EWrapper::updateAccountTime respectively. All account values and positions will be returned initially, and then there will only be updates when there is a change in a position, or to an account value every 3 minutes if it has changed. Only one account can be subscribed at a time. A second subscription request for another account when the previous one is still active will cause the first one to be canceled in favour of the second one. Consider user reqPositions if you want to retrieve all your accounts' portfolios directly. More... | |
void | reqAllOpenOrders () |
Requests all current open orders in associated accounts at the current moment. The existing orders will be received via the openOrder and orderStatus events. Open orders are returned once; this function does not initiate a subscription. More... | |
void | reqAutoOpenOrders (bool autoBind) |
Requests status updates about future orders placed from TWS. Can only be used with client ID 0. More... | |
void | reqContractDetails (int reqId, Contract contract) |
Requests contract information. This method will provide all the contracts matching the contract provided. It can also be used to retrieve complete options and futures chains. This information will be returned at EWrapper:contractDetails. Though it is now (in API version > 9.72.12) advised to use reqSecDefOptParams for that purpose. . More... | |
void | reqCurrentTime () |
Requests TWS's current time. More... | |
void | reqExecutions (int reqId, ExecutionFilter filter) |
Requests current day's (since midnight) executions matching the filter. Only the current day's executions can be retrieved. Along with the executions, the CommissionReport will also be returned. The execution details will arrive at EWrapper:execDetails. More... | |
void | reqFundamentalData (int reqId, Contract contract, string reportType, List< TagValue > fundamentalDataOptions) |
Legacy/DEPRECATED. Requests the contract's fundamental data. Fundamental data is returned at EWrapper::fundamentalData. More... | |
void | reqGlobalCancel () |
Cancels all active orders. This method will cancel ALL open orders including those placed directly from TWS. More... | |
void | reqHistoricalData (int tickerId, Contract contract, string endDateTime, string durationStr, string barSizeSetting, string whatToShow, int useRTH, int formatDate, bool keepUpToDate, List< TagValue > chartOptions) |
Requests contracts' historical data. When requesting historical data, a finishing time and date is required along with a duration string. For example, having: More... | |
void | reqIds (int numIds) |
Requests the next valid order ID at the current moment. More... | |
void | reqManagedAccts () |
Requests the accounts to which the logged user has access to. More... | |
void | reqMktData (int tickerId, Contract contract, string genericTickList, bool snapshot, bool regulatorySnaphsot, List< TagValue > mktDataOptions) |
Requests real time market data. Returns market data for an instrument either in real time or 10-15 minutes delayed (depending on the market data type specified) More... | |
void | reqMarketDataType (int marketDataType) |
Switches data type returned from reqMktData request to "frozen", "delayed" or "delayed-frozen" market data. Requires TWS/IBG v963+. The API can receive frozen market data from Trader Workstation. Frozen market data is the last data recorded in our system. During normal trading hours, the API receives real-time market data. Invoking this function with argument 2 requests a switch to frozen data immediately or after the close. When the market reopens, the market data type will automatically switch back to real time if available. More... | |
void | reqMarketDepth (int tickerId, Contract contract, int numRows, bool isSmartDepth, List< TagValue > mktDepthOptions) |
Requests the contract's market depth (order book). This request must be direct-routed to an exchange and not smart-routed. The number of simultaneous market depth requests allowed in an account is calculated based on a formula that looks at an accounts equity, commissions, and quote booster packs. More... | |
void | reqNewsBulletins (bool allMessages) |
Subscribes to IB's News Bulletins. More... | |
void | reqOpenOrders () |
Requests all open orders places by this specific API client (identified by the API client id). For client ID 0, this will bind previous manual TWS orders. More... | |
void | reqPositions () |
Subscribes to position updates for all accessible accounts. All positions sent initially, and then only updates as positions change. More... | |
void | reqRealTimeBars (int tickerId, Contract contract, int barSize, string whatToShow, bool useRTH, List< TagValue > realTimeBarsOptions) |
Requests real time bars Currently, only 5 seconds bars are provided. This request is subject to the same pacing as any historical data request: no more than 60 API queries in more than 600 seconds. Real time bars subscriptions are also included in the calculation of the number of Level 1 market data subscriptions allowed in an account. More... | |
void | reqScannerParameters () |
Requests an XML list of scanner parameters valid in TWS. Not all parameters are valid from API scanner. More... | |
void | reqScannerSubscription (int reqId, ScannerSubscription subscription, List< TagValue > scannerSubscriptionOptions, List< TagValue > scannerSubscriptionFilterOptions) |
Starts a subscription to market scan results based on the provided parameters. More... | |
void | reqScannerSubscription (int reqId, ScannerSubscription subscription, string scannerSubscriptionOptions, string scannerSubscriptionFilterOptions) |
void | setServerLogLevel (int logLevel) |
Changes the TWS/GW log level. The default is 2 = ERROR 5 = DETAIL is required for capturing all API messages and troubleshooting API programs Valid values are: 1 = SYSTEM 2 = ERROR 3 = WARNING 4 = INFORMATION 5 = DETAIL . | |
void | verifyRequest (string apiName, string apiVersion) |
For IB's internal purpose. Allows to provide means of verification between the TWS and third party programs. | |
void | verifyMessage (string apiData) |
For IB's internal purpose. Allows to provide means of verification between the TWS and third party programs. | |
void | verifyAndAuthRequest (string apiName, string apiVersion, string opaqueIsvKey) |
For IB's internal purpose. Allows to provide means of verification between the TWS and third party programs. | |
void | verifyAndAuthMessage (string apiData, string xyzResponse) |
For IB's internal purpose. Allows to provide means of verification between the TWS and third party programs. | |
void | queryDisplayGroups (int requestId) |
Requests all available Display Groups in TWS. More... | |
void | subscribeToGroupEvents (int requestId, int groupId) |
Integrates API client and TWS window grouping. More... | |
void | updateDisplayGroup (int requestId, string contractInfo) |
Updates the contract displayed in a TWS Window Group. More... | |
void | unsubscribeFromGroupEvents (int requestId) |
Cancels a TWS Window Group subscription. | |
void | reqPositionsMulti (int requestId, string account, string modelCode) |
Requests position subscription for account and/or model Initially all positions are returned, and then updates are returned for any position changes in real time. More... | |
void | cancelPositionsMulti (int requestId) |
Cancels positions request for account and/or model. More... | |
void | reqAccountUpdatesMulti (int requestId, string account, string modelCode, bool ledgerAndNLV) |
Requests account updates for account and/or model. More... | |
void | cancelAccountUpdatesMulti (int requestId) |
Cancels account updates request for account and/or model. More... | |
void | reqSecDefOptParams (int reqId, string underlyingSymbol, string futFopExchange, string underlyingSecType, int underlyingConId) |
Requests security definition option parameters for viewing a contract's option chain. More... | |
void | reqSoftDollarTiers (int reqId) |
Requests pre-defined Soft Dollar Tiers. This is only supported for registered professional advisors and hedge and mutual funds who have configured Soft Dollar Tiers in Account Management. Refer to: https://www.interactivebrokers.com/en/software/am/am/manageaccount/requestsoftdollars.htm?Highlight=soft%20dollar%20tier. More... | |
void | reqFamilyCodes () |
Requests family codes for an account, for instance if it is a FA, IBroker, or associated account. More... | |
void | reqMatchingSymbols (int reqId, string pattern) |
Requests matching stock symbols. More... | |
void | reqMktDepthExchanges () |
Requests venues for which market data is returned to updateMktDepthL2 (those with market makers) More... | |
void | reqSmartComponents (int reqId, string bboExchange) |
Returns the mapping of single letter codes to exchange names given the mapping identifier. More... | |
void | reqNewsProviders () |
Requests news providers which the user has subscribed to. More... | |
void | reqNewsArticle (int requestId, string providerCode, string articleId, List< TagValue > newsArticleOptions) |
Requests news article body given articleId. More... | |
void | reqHistoricalNews (int requestId, int conId, string providerCodes, string startDateTime, string endDateTime, int totalResults, List< TagValue > historicalNewsOptions) |
Requests historical news headlines. More... | |
void | reqHeadTimestamp (int tickerId, Contract contract, string whatToShow, int useRTH, int formatDate) |
Returns the timestamp of earliest available historical data for a contract and data type. More... | |
void | cancelHeadTimestamp (int tickerId) |
Cancels a pending reqHeadTimeStamp request . More... | |
void | reqHistogramData (int tickerId, Contract contract, bool useRTH, string period) |
Returns data histogram of specified contract . More... | |
void | cancelHistogramData (int tickerId) |
Cancels an active data histogram request. More... | |
void | reqMarketRule (int marketRuleId) |
Requests details about a given market rule The market rule for an instrument on a particular exchange provides details about how the minimum price increment changes with price A list of market rule ids can be obtained by invoking reqContractDetails on a particular contract. The returned market rule ID list will provide the market rule ID for the instrument in the correspond valid exchange list in contractDetails. . More... | |
void | reqPnL (int reqId, string account, string modelCode) |
Creates subscription for real time daily PnL and unrealized PnL updates. More... | |
void | cancelPnL (int reqId) |
cancels subscription for real time updated daily PnL params reqId | |
void | reqPnLSingle (int reqId, string account, string modelCode, int conId) |
Requests real time updates for daily PnL of individual positions. More... | |
void | cancelPnLSingle (int reqId) |
Cancels real time subscription for a positions daily PnL information. More... | |
void | reqHistoricalTicks (int reqId, Contract contract, string startDateTime, string endDateTime, int numberOfTicks, string whatToShow, int useRth, bool ignoreSize, List< TagValue > miscOptions) |
Requests historical Time&Sales data for an instrument. More... | |
void | reqWshMetaData (int reqId) |
Requests metadata from the WSH calendar. More... | |
void | cancelWshMetaData (int reqId) |
Cancels pending request for WSH metadata. More... | |
void | reqWshEventData (int reqId, WshEventData wshEventData) |
Requests event data from the wSH calendar. More... | |
void | cancelWshEventData (int reqId) |
Cancels pending WSH event data request. More... | |
void | reqUserInfo (int reqId) |
Requests user info. More... | |
bool | IsDataAvailable () |
int | ReadInt () |
byte[] | ReadAtLeastNBytes (int msgSize) |
byte[] | ReadByteArray (int msgSize) |
Protected Member Functions | |
virtual Stream | createClientStream (string host, int port) |
override uint | prepareBuffer (BinaryWriter paramsList) |
override void | CloseAndSend (BinaryWriter request, uint lengthPos) |
Protected Member Functions inherited from EClient | |
void | sendConnectRequest () |
bool | CheckServerVersion (int requiredVersion) |
bool | CheckServerVersion (int requestId, int requiredVersion) |
bool | CheckServerVersion (int requiredVersion, string updatetail) |
bool | CheckServerVersion (int tickerId, int requiredVersion, string updatetail) |
void | CloseAndSend (BinaryWriter paramsList, uint lengthPos, CodeMsgPair error) |
void | CloseAndSend (int reqId, BinaryWriter paramsList, uint lengthPos, CodeMsgPair error) |
bool | CheckConnection () |
void | ReportError (int reqId, CodeMsgPair error, string tail) |
void | ReportUpdateTWS (int reqId, string tail) |
void | ReportUpdateTWS (string tail) |
void | ReportError (int reqId, int code, string message) |
void | SendCancelRequest (OutgoingMessages msgType, int version, int reqId, CodeMsgPair errorMessage) |
void | SendCancelRequest (OutgoingMessages msgType, int version, CodeMsgPair errorMessage) |
bool | VerifyOrderContract (Contract contract, int id) |
bool | VerifyOrder (Order order, int id, bool isBagOrder) |
Additional Inherited Members | |
Public Attributes inherited from EClient | |
EWrapper | Wrapper => wrapper |
Reference to the EWrapper implementing object. | |
int | ServerVersion => serverVersion |
returns the Host's version. Some of the API functionality might not be available in older Hosts and therefore it is essential to keep the TWS/Gateway as up to date as possible. | |
Protected Attributes inherited from EClient | |
int | serverVersion |
ETransport | socketTransport |
EWrapper | wrapper |
volatile bool | isConnected |
int | clientId |
bool | extraAuth |
bool | useV100Plus = true |
bool | allowRedirect |
Stream | tcpStream |
Properties inherited from EClient | |
bool | AllowRedirect [get, set] |
string | ServerTime [get, set] |
string | optionalCapabilities [get, set] |
bool | AsyncEConnect [get, set] |
TWS/Gateway client class This client class contains all the available methods to communicate with IB. Up to 32 clients can be connected to a single instance of the TWS/Gateway simultaneously. From herein, the TWS/Gateway will be referred to as the Host.
|
inline |
Establishes a connection to the designated Host. After establishing a connection successfully, the Host will provide the next valid order id, server's current time, managed accounts and open orders among others depending on the Host version.
host | the Host's IP address. Leave blank for localhost. |
port | the Host's port. 7496 by default for the TWS, 4001 by default on the Gateway. |
clientId | Every API client program requires a unique id which can be any integer. Note that up to 32 clients can be connected simultaneously to a single Host. |