undefined

EWrapper Interface Reference

This interface's methods are used by the TWS/Gateway to communicate with the API client. Every API client application needs to implement this interface in order to handle all the events generated by the TWS/Gateway. Almost every EClientSocket method call will result in at least one event delivered here.

Public Member Functions
void error (Exception e)
Handles errors generated within the API itself. If an exception is thrown within the API code it will be notified here. Possible cases include errors while reading the information from the socket or even mishandling at EWrapper's implementing class.
void error (string str)
void error (int id, int errorCode, string errorMsg)
Errors sent by the TWS are received here.
void currentTime(long time)
TWS's current time. TWS is synchronized with the server (not local computer) using NTP and this function will receive the current time in TWS.
void tickPrice (int tickerId, int field, double price, TickAttrib attribs)
Market data tick price callback. Handles all price related ticks. Every tickPrice callback is followed by a tickSize. A tickPrice value of -1 or 0 followed by a tickSize of 0 indicates there is no data for this field currently available, whereas a tickPrice with a positive tickSize indicates an active quote of 0 (typically for a combo contract).
void tickSize (int tickerId, int field, int size)
Market data tick size callback. Handles all size-related ticks.
void tickString (int tickerId, int field, string value)
Market data callback. Every tickPrice is followed by a tickSize. There are also independent tickSize callbacks anytime the tickSize changes, and so there will be duplicate tickSize messages following a tickPrice.
void tickGeneric (int tickerId, int field, double value)
Market data callback.
void tickEFP(int tickerId, int tickType, double basisPoints, string formattedBasisPoints, double impliedFuture, int holdDays, string futureLastTradeDate, double dividendImpact, double dividendsToLastTradeDate)
Exchange for Physicals.
void deltaNeutralValidation (int reqId, DeltaNeutralContract deltaNeutralContract)
Upon accepting a Delta-Neutral DN RFQ(request for quote), the server sends a deltaNeutralValidation() message with the DeltaNeutralContract structure. If the delta and price fields are empty in the original request, the confirmation will contain the current values from the server. These values are locked when RFQ is processed and remain locked until the RFQ is cancelled.
void tickOptionComputation (int tickerId, int field, double impliedVolatility, double delta, double optPrice, double pvDividend, double gamma, double vega, double theta, double undPrice)
Receive's option specific market data. This method is called when the market in an option or its underlier moves. TWS’s option model volatilities, prices, and deltas, along with the present value of dividends expected on that options underlier are received.
void tickSnapshotEnd (int tickerId)
When requesting market data snapshots, this market will indicate the snapshot reception is finished. Expected to occur 11 seconds after beginning of request.
void nextValidId (int orderId)
Receives next valid order id. Will be invoked automatically upon successfull API client connection, or after call to EClient.reqIds Important: the next valid order ID is only valid at the time it is received.
void managedAccounts (string accountsList)
Receives a comma-separated string with the managed account ids. Occurs automatically on initial API client connection.
void connectionClosed ()
Callback to indicate the API connection has closed. Following a API <-> TWS broken socket connection, this function is not called automatically but must be triggered by API client code.
void accountSummary (int reqId, string account, string tag, string value, string currency)
Receives the account information. This method will receive the account information just as it appears in the TWS' Account Summary Window.
void accountSummaryEnd (int reqId)
notifies when all the accounts' information has ben received. Requires TWS 967+ to receive accountSummaryEnd in linked account structures.
void bondContractDetails(int reqId, ContractDetails contract)
Delivers the Bond contract data after this has been requested via reqContractDetails.
void updateAccountValue (string key, string value, string currency, string accountName)
Receives the subscribed account's information. Only one account can be subscribed at a time. After the initial callback to updateAccountValue, callbacks only occur for values which have changed. This occurs at the time of a position change, or every 3 minutes at most. This frequency cannot be adjusted.
void updatePortfolio (Contract contract, double position, double marketPrice, double marketValue, double averageCost, double unrealizedPNL, double realizedPNL, string accountName)
Receives the subscribed account's portfolio. This function will receive only the portfolio of the subscribed account. If the portfolios of all managed accounts are needed, refer to EClientSocket::reqPosition After the initial callback to updatePortfolio, callbacks only occur for positions which have changed.
void updateAccountTime (string timestamp)
Receives the last time on which the account was updated.
void accountDownloadEnd (string account)
Notifies when all the account's information has finished.
void orderStatus (int orderId, string status, double filled, double remaining, double avgFillPrice, int permId, int parentId, double lastFillPrice, int clientId, string whyHeld, double mktCapPrice)
Gives the up-to-date information of an order every time it changes. Often there are duplicate orderStatus messages.
void openOrder (int orderId, Contract contract, Order order, OrderState orderState)
Feeds in currently open orders.
void openOrderEnd ()
Notifies the end of the open orders' reception.
void contractDetails (int reqId, ContractDetails contractDetails)
receives the full contract's definitions This method will return all contracts matching the requested via EClientSocket.reqContractDetails . For example, one can obtain the whole option chain with it.
void contractDetailsEnd (int reqId)
After all contracts matching the request were returned, this method will mark the end of their reception.
void execDetails (int reqId, Contract contract, Execution execution)
Provides the executions which happened in the last 24 hours.
void execDetailsEnd(int reqId)
indicates the end of the Execution reception.
void commisionReport (CommissionReport commissionReport)
provides the CommissionReport of an Execution.
void fundamentalData (int reqId, string data)
returns fundamental data.
void historicalData (int reqId, Bar bar)
returns the requested historical data bars.
void historicalDataUpdate (int reqId, Bar bar)
Receives bars in real time if keepUpToDate is set as True in reqHistoricalData. Similar to realTimeBars function, except returned data is a composite of historical data and real time data that is equivalent to TWS chart functionality to keep charts up to date. Returned bars are successfully updated using real time data.
void historicalDataEnd(int reqId, string start, string end)
Marks the ending of the historical bars reception.
void marketDataType (int reqId, int marketDataType)
Returns the market data type (real-time, frozen, delayed, delayed-frozen) of ticker sent by EClientSocket.reqMktData when TWS switches from real-time to frozen and back and from delayed to delayed-frozen and back.
void updateMktDepth (int tickerId, int position, int operation, int side, double price, int size)
Returns the order book.
void updateMktDepthL2 (int tickerId, int position, string marketMaker, int operation, int side, double price, int size, bool isSmartDepth)
Returns the order book.
void updateNewsBulletin(int msgId, int msgType, String message, String origExchange)
provides LYNX's bulletins.
void position(string account, Contract contract, double pos, double avgCost)
provides the portfolio's open positions.
void positionEnd ()
Indicates all the positions have been transmitted.
void realtimeBar (int reqId, long time, double open, double high, double low, double close, long volume, double WAP, int count)
updates the real time 5 seconds bars.
void scannerParameters (string xml)
provides the xml-formatted parameters available from TWS market scanners (not all available in API).
void scannerData (int reqId, int rank, ContractDetails contractDetails, string distance, string benchmark, string projection, string legsStr)
provides the data resulting from the market scanner request.
void scannerDataEnd (int reqId)
Indicates the scanner data reception has terminated.
void receiveFA (int faDataType, string faXmlData)
receives the Financial Advisor's configuration available in the TWS.
void verifyMessageAPI (string apiData)
Not generally available.
void verifyCompleted (bool isSuccessful, string errorText)
Not generally available.
void verifyAndAuthMessageAPI (string apiData, string xyzChallenge)
Not generally available.
void verifyAndAuthCompleted(bool isSuccessful, string errorText)
Not generally available.
void displayGroupList(int reqId, string groups)
a one-time response to querying the display groups.
void displayGroupUpdated (int reqId, string contractInfo)
call triggered once after receiving the subscription request, and will be sent again if the selected contract in the subscribed * display group has changed.
void connectAck()
callback initially acknowledging connection attempt connection handshake not complete until nextValidID is received
void positionMulti (int requestId, string account, string modelCode, Contract contract, double pos, double avgCost)
provides the portfolio's open positions.
void positionMultiEnd (int requestId)
Indicates all the positions have been transmitted.
void accountUpdateMulti (int requestId, string account, string modelCode, string key, string value, string currency)
provides the account updates.
void accountUpdateMultiEnd (int requestId)
Indicates all the account updates have been transmitted.
void securityDefinitionOptionParameter (int reqId, string exchange, int underlyingConId, string tradingClass, string multiplier, HashSet< string > expirations, HashSet< double > strikes)
returns the option chain for an underlying on an exchange specified in reqSecDefOptParams There will be multiple callbacks to securityDefinitionOptionParameter if multiple exchanges are specified in reqSecDefOptParams.
void securityDefinitionOptionParameterEnd(int reqId)
called when all callbacks to securityDefinitionOptionParameter are complete.
void softDollarTiers (int reqId, SoftDollarTier[] tiers)
called when receives Soft Dollar Tier configuration information.
void familyCodes (FamilyCode[] familyCodes)
returns array of family codes.
void symbolSamples (int reqId, ContractDescription[] contractDescriptions)
returns array of sample contract descriptions.
void mktDepthExchanges (DepthMktDataDescription[] depthMktDataDescriptions)
called when receives Depth Market Data Descriptions.
void tickNews (int tickerId, long timeStamp, string providerCode, string articleId, string headline, string extraData)
ticks with news headline.
void smartComponents (int reqId, Dictionary< int, KeyValuePair< string, char >> theMap)
bit number to exchange + exchange abbreviation dictionary.
void tickReqParams (int tickerId, double minTick, string bboExchange, int snapshotPermissions)
tick with BOO exchange and snapshot permissions.
void newsProviders (NewsProvider[] newsProviders)
returns array of subscribed API news providers for this user.
void newsArticle (int requestId, int articleType, string articleText)
called when receives News Article.
void historicalNews (int requestId, string time, string providerCode, string articleId, string headline)
returns news headline.
void historicalNewsEnd (int requestId, bool hasMore)
returns news headlines end marker.
void headTimestamp (int reqId, string headTimestamp)
returns beginning of data for contract for specified data type.
void histogramData (int reqId, HistogramEntry[] data)
returns data histogram.
void rerouteMktDataReq(int reqId, int conId, string exchange)
returns conId and exchange for CFD market data request re-route.
void rerouteMktDepthReq(int reqId, int conId, string exchange)
returns the conId and exchange for an underlying contract when a request is made for level 2 data for an instrument which does not have data in LYNX's database. For example stock CFDs and index CFDs.
void marketRule (int marketRuleId, PriceIncrement[] priceIncrements)
returns minimum price increment structure for a particular market rule ID market rule IDs for an instrument on valid exchanges can be obtained from the contractDetails object for that contract.
void pnl (int reqId, double dailyPnL, double unrealizedPnL, double realizedPnL)
receives PnL updates in real time for the daily PnL and the total unrealized PnL for an account.
void pnlSingle (int reqId, int pos, double dailyPnL, double unrealizedPnL, double realizedPnL, double value)
receives real time updates for single position daily PnL values.
void historicalTicks (int reqId, HistoricalTick[] ticks, bool done)
void historicalTicksBidAsk (int reqId, HistoricalTickBidAsk[] ticks, bool done)
void historicalTicksLast (int reqId, HistoricalTickLast[] ticks, bool done)
void tickByTickAllLast (int reqId, int tickType, long time, double price, int size, TickAttribLast tickAttriblast, string exchange, string specialConditions)
returns "Last" or "AllLast" tick-by-tick real-time tick.
void tickByTickBidAsk (int reqId, long time, double bidPrice, double askPrice, int bidSize, int askSize, TickAttribBidAsk tickAttribBidAsk)
returns "BidAsk" tick-by-tick real-time tick.
void tickByTickMidPoint (int reqId, long time, double midPoint)
returns "MidPoint" tick-by-tick real-time tick.
void orderBound (long orderId, int apiClientId, int apiOrderId)
response to API bind order control message.

Detailed Description

This interface's methods are used by the TWS/Gateway to communicate with the API client. Every API client application needs to implement this interface in order to handle all the events generated by the TWS/Gateway. Almost every EClientSocket method call will result in at least one event delivered here.

See Also

EClientSocket class

Member Function Documentation

void accountDownloadEnd ( string account)

Notifies when all the account's information has finished.

void accountSummary ( int reqId,
string account,
string tag,
string value,
string currency
)

Receives the account information. This method will receive the account information just as it appears in the TWS' Account Summary Window.

Parameters

  • reqId - the request's unique identifier.

  • account - the account id

  • tag the account's attribute being received.

    • AccountType — Identifies the LYNX account structure
    • NetLiquidation — The basis for determining the price of the assets in your account.
    • Total cash value + stock value + options value + bond value
    • TotalCashValue — Total cash balance recognized at the time of trade + futures PNL
    • SettledCash — Cash recognized at the time of settlement - purchases at the time of trade - commissions - taxes - fees
    • AccruedCash — Total accrued cash value of stock, commodities and securities
    • BuyingPower — Buying power serves as a measurement of the dollar value of securities that one may purchase in a securities account without depositing additional funds
    • EquityWithLoanValue — Forms the basis for determining whether a client has the necessary assets to either initiate or maintain security positions. Cash + stocks + bonds + mutual fundsPrevious
    • EquityWithLoanValue — Marginable Equity with Loan value as of 16:00 ET the previous day
    • GrossPositionValue — The sum of the absolute value of all stock and equity option positions
    • RegTEquity — Regulation T equity for universal account
    • RegTMargin — Regulation T margin for universal account
    • SMA — Special Memorandum Account: Line of credit created when the market value of securities in a Regulation T account increase in valueInit
    • MarginReq — Initial Margin requirement of whole portfolio
    • MaintMarginReq — Maintenance Margin requirement of whole portfolio
    • AvailableFunds — This value tells what you have available for trading
    • ExcessLiquidity — This value shows your margin cushion, before liquidation
    • Cushion — Excess liquidity as a percentage of net liquidation value
    • FullInitMarginReq — Initial Margin of whole portfolio with no discounts or intraday credits
    • FullMaintMarginReq — Maintenance Margin of whole portfolio with no discounts or intraday credits
    • FullAvailableFunds — Available funds of whole portfolio with no discounts or intraday credits
    • FullExcessLiquidity — Excess liquidity of whole portfolio with no discounts or intraday credits
    • LookAheadNextChange — Time when look-ahead values take effec
    • tLookAheadInitMarginReq — Initial Margin requirement of whole portfolio as of next period's margin change
    • LookAheadMaintMarginReq — Maintenance Margin requirement of whole portfolio as of next period's margin change
    • LookAheadAvailableFunds — This value reflects your available funds at the next margin change
    • LookAheadExcessLiquidity — This value reflects your excess liquidity at the next margin change
    • HighestSeverity — A measure of how close the account is to liquidation
    • DayTradesRemaining — The Number of Open/Close trades a user could put on before Pattern Day Trading is detected. A value of "-1" means that the user can put on unlimited day trades.
    • Leverage — GrossPositionValue / NetLiquidation
  • value - the account's attribute's value.

  • currency - the currency on which the value is expressed.

See Also

accountSummaryEnd, EClientSocket.reqAccountSummary

void accountSummaryEnd ( int reqId)

notifies when all the accounts' information has ben received. Requires TWS 967+ to receive accountSummaryEnd in linked account structures.

void accountUpdateMulti ( int requestId,
string account,
string modelCode,
string key,
string value,
string currency
)

provides the account updates.

  • Parameters

    requestId - the id of request

    account - the account with updates

    modelCode - the model code with updates

    key - the name of parameter

    value - the value of parameter

    currency - the currency of parameter

    See Also

    accountUpdateMultiEnd, EClient.reqAccountUpdatesMulti

void accountUpdateMultiEnd ( int requestId)

Indicates all the account updates have been transmitted.

See Also

EWrapper.accountUpdateMulti , EClientSocket.reqAccountUpdatesMulti

void bondContractDetails ( int reqId,
ContractDetails contract
)

Delivers the Bond contract data after this has been requested via reqContractDetails.

void commissionReport ( CommissionReport commissionReport)

provides the CommissionReport of an Execution

See Also

execDetails, execDetailsEnd, EClientSocket.reqExecutions , CommissionReport

void connectionClosed ( )

Callback to indicate the API connection has closed. Following a API <-> TWS broken socket connection, this function is not called automatically but must be triggered by API client code.

See Also

EClientSocket.eDisconnect

void contractDetails ( int reqId,
ContractDetails contractDetails
)

receives the full contract's definitions This method will return all contracts matching the requested via EClientSocket.reqContractDetails . For example, one can obtain the whole option chain with it.

void contractDetailsEnd ( int reqId)

After all contracts matching the request were returned, this method will mark the end of their reception.

void currentTime ( long time)

TWS's current time. TWS is synchronized with the server (not local computer) using NTP and this function will receive the current time in TWS.

See Also

EClient.reqCurrentTime

void deltaNeutralValidation ( int reqId,
DeltaNeutralContract deltaNeutralContract
)
  • Upon accepting a Delta-Neutral DN RFQ(request for quote), the server sends a deltaNeutralValidation() message with the DeltaNeutralContract structure. If the delta and price fields are empty in the original request, the confirmation will contain the current values from the server. These values are locked when RFQ is processed and remain locked until the RFQ is cancelled.
  • Parameters

    reqId - the request's identifier.

    deltaNeutralContract - Delta-Neutral Contract

void displayGroupList ( int reqId,
string groups
)

a one-time response to querying the display groups.

  • Parameters

    reqId - the ID of the request

    It returns a list of integers representing visible Group ID separated by the "|" character, and sorted by most used group first.

    See Also

    EClientSocket.queryDisplayGroups

void displayGroupUpdated ( int reqId,
string contractInfo
)

call triggered once after receiving the subscription request, and will be sent again if the selected contract in the subscribed * display group has changed.

void error ( Exception e)

Handles errors generated within the API itself. If an exception is thrown within the API code it will be notified here. Possible cases include errors while reading the information from the socket or even mishandling at EWrapper's implementing class.

  • Parameters

    e - the thrown exception.

void error ( string str)
  • Parameters

    str - The error message received.

void error ( int id,
int errorCode,
string errorMsg
)

Errors sent by the TWS are received here.

  • Parameters

    id - the request identifier which generated the error. Note: -1 will indicate a notification and not true error condition.

    errorCode - the code identifying the error.

    errorMsg - error's description. Currently Latin-1 encoded error messages are supported. If logged into TWS in a different language it is recommended to enabled the setting in TWS Global Configuration -> API -> Settings -> Show API errors in English.

void execDetails ( int reqId,
Contract contract,
Execution execution
)

Provides the executions which happened in the last 24 hours.

void execDetailsEnd ( int reqId)

indicates the end of the Execution reception.

void familyCodes ( FamilyCode[] familyCodes)

returns array of family codes

void fundamentalData ( int reqId,
string data
)

returns fundamental data

void headTimestamp ( int reqId,
string headTimestamp
)
  • returns beginning of data for contract for specified data type
void histogramData ( int reqId,
HistogramEntry[] data
)

returns data histogram

  • Parameters

    requestId

    data - returned Tuple of histogram data, number of trades at specified price level

    See Also

    EClient.reqHistogramData

void historicalData ( int reqId,
Bar bar
)

returns the requested historical data bars

  • Parameters

    reqId - the request's identifier

    bar - the OHLC historical data Bar. The time zone of the bar is the time zone chosen on the TWS login screen. Smallest bar size is 1 second.

    See Also

    EClientSocket.reqHistoricalData

void historicalDataUpdate ( int reqId,
Bar bar
)

Receives bars in real time if keepUpToDate is set as True in reqHistoricalData. Similar to realTimeBars function, except returned data is a composite of historical data and real time data that is equivalent to TWS chart functionality to keep charts up to date. Returned bars are successfully updated using real time data.

  • Parameters

    reqId - the requests identifier

    bar - the OHLC historical data Bar. The time zone of the bar is the time zone chosen on the TWS login screen. Smallest bar size is 1 second.

void historicalNews ( int requestId,
string time,
string providerCode,
string articleId,
string headline
)

returns news headline

void historicalNewsEnd ( int requestId,
bool hasMore
)

returns news headlines end marker

  • Parameters

    requestId

    hasMore - indicates whether there are more results available, false otherwise

    See Also

    EClient.reqHistoricalNews

void historicalTicks ( int reqId,
HistoricalTick[] ticks,
bool done
)
  • Parameters

    reqId

    ticks - list of HistoricalTick data

    done - flag to indicate if all historical tick data has been received

void historicalTicksBidAsk ( int reqId,
HistoricalTickBidAsk[] ticks,
bool done
)
  • Parameters

    reqId

    ticks - list of HistoricalBidAsk data

    done - flag to indicate if all historical tick data has been received

void historicalTicksLast ( int reqId,
HistoricalTickLast[] ticks,
bool done
)
  • Parameters

    reqId

    ticks - list of HistoricalTickLast data

    done - flag to indicate if all historical tick data has been received

void managedAccounts ( string accountsList)

Receives a comma-separated string with the managed account ids. Occurs automatically on initial API client connection.

See Also

EClientSocket.reqManagedAccts

void marketDataType ( int reqId,
int marketDataType
)

Returns the market data type (real-time, frozen, delayed, delayed-frozen) of ticker sent by EClientSocket.reqMktData when TWS switches from real-time to frozen and back and from delayed to delayed-frozen and back.

void marketRule ( int marketRuleId,
PriceIncrement[] priceIncrements
)

returns minimum price increment structure for a particular market rule ID market rule IDs for an instrument on valid exchanges can be obtained from the contractDetails object for that contract

void mktDepthExchanges ( DepthMktDataDescription[] depthMktDataDescriptions)

called when receives Depth Market Data Descriptions

void newsArticle ( int requestId,
int articleType,
string articleText
)

called when receives News Article

  • Parameters

    requestId - The request ID used in the call to EClient.reqNewsArticle

    articleType - The type of news article (0 - plain text or html, 1 - binary data / pdf)

    articleText - The body of article (if articleType == 1, the binary data is encoded using the Base64 scheme)

    See Also

    EClient.reqNewsArticle

void newsProviders ( NewsProvider[] newsProviders)

returns array of subscribed API news providers for this user

void nextValidId ( int orderId)

Receives next valid order id. Will be invoked automatically upon successfull API client connection, or after call to EClient.reqIds Important: the next valid order ID is only valid at the time it is received.

void openOrder ( int orderId,
Contract contract,
Order order,
OrderState orderState
)

Feeds in currently open orders.

void openOrderEnd ( )

Notifies the end of the open orders' reception.

See Also

orderStatus, openOrderEnd, EClientSocket.placeOrder , EClientSocket.reqAllOpenOrders , EClientSocket.reqAutoOpenOrders

void orderBound ( long orderId,
int apiClientId,
int apiOrderId
)

response to API bind order control message

  • Parameters

    orderId - permId

    apiClientId - API client id

    apiOrderId - API order id

    See Also

    EClient.reqOpenOrders

void orderStatus ( int orderId,
string status,
double filled,
double remaining,
double avgFillPrice,
int permId,
int parentId,
double lastFillPrice,
int clientId,
string whyHeld,
double mktCapPrice
)

Gives the up-to-date information of an order every time it changes. Often there are duplicate orderStatus messages.

  • Parameters
    • orderId - the order's client id.
    • status - the current status of the order. Possible values: PendingSubmit - indicates that you have transmitted the order, but have not yet received confirmation that it has been accepted by the order destination. PendingCancel - indicates that you have sent a request to cancel the order but have not yet received cancel confirmation from the order destination. At this point, your order is not confirmed canceled. It is not guaranteed that the cancellation will be successful. PreSubmitted - indicates that a simulated order type has been accepted by the LYNX system and that this order has yet to be elected. The order is held in the LYNX system until the election criteria are met. At that time the order is transmitted to the order destination as specified . Submitted - indicates that your order has been accepted by the system. ApiCancelled - after an order has been submitted and before it has been acknowledged, an API client client can request its cancelation, producing this state. Cancelled - indicates that the balance of your order has been confirmed canceled by the LYNX system. This could occur unexpectedly when LYNX or the destination has rejected your order. Filled - indicates that the order has been completely filled. Market orders executions will not always trigger a Filled status. Inactive - indicates that the order was received by the system but is no longer active because it was rejected or canceled.
    • filled - number of filled positions.
    • remaining - the remnant positions.
    • avgFillPrice - average filling price.
    • permId - the order's permId used by the TWS to identify orders.
    • parentId - parent's id. Used for bracket and auto trailing stop orders.
    • lastFillPrice - price at which the last positions were filled.
    • clientId - API client which submitted the order.
    • whyHeld - this field is used to identify an order held when TWS is trying to locate shares for a short sell. The value used to indicate this is 'locate'.
    • mktCapPrice - If an order has been capped, this indicates the current capped price. Requires TWS 967+ and API v973.04+. Python API specifically requires API v973.06+.

See Also

orderStatus, openOrderEnd, EClientSocket.placeOrder , EClientSocket.reqAllOpenOrders , EClientSocket.reqAutoOpenOrders

void pnl ( int reqId,
double dailyPnL,
double unrealizedPnL,
double realizedPnL
)

receives PnL updates in real time for the daily PnL and the total unrealized PnL for an account

  • Parameters

    reqId

    dailyPnL - dailyPnL updates for the account in real time

    unrealizedPnL - total unRealized PnL updates for the account in real time

    See Also

    EClient.reqPnL

void pnlSingle ( int reqId,
int pos,
double dailyPnL,
double unrealizedPnL,
double realizedPnL,
double value
)

receives real time updates for single position daily PnL values

  • Parameters

    reqId

    pos - current size of the position

    dailyPnL - dailyPnL for the position

    unrealizedPnL - total unrealized PnL for the position (since inception) updating in real time

    value - current market value of the position

    See Also

    EClient.reqSinglePnL

void position ( string account,
Contract contract,
double pos,
double avgCost
)

provides the portfolio's open positions.

void positionEnd ( )

Indicates all the positions have been transmitted.

See Also

position, EClient.reqPositions

void positionMulti ( int requestId,
string account,
string modelCode,
Contract contract,
double pos,
double avgCost
)

provides the portfolio's open positions.

  • Parameters

    requestId - the id of request

    account - the account holding the position.

    modelCode - the model code holding the position.

    contract - the position's Contract

    pos - the number of positions held.

    avgCost - the average cost of the position.

    See Also

    positionMultiEnd, EClientSocket.reqPositionsMulti

void positionMultiEnd ( int requestId)

Indicates all the positions have been transmitted.

See Also

positionMulti, EClient.reqPositionsMulti

void realtimeBar ( int reqId,
long time,
double open,
double high,
double low,
double close,
long volume,
double WAP,
int count
)

updates the real time 5 seconds bars

  • Parameters

    reqId - the request's identifier

    date - the bar's date and time (either as a yyyymmss hh : mm : ss formatted string or as system time according to the request)

    open - the bar's open point

    high - the bar's high point

    low - the bar's low point

    close - the bar's closing point

    volume - the bar's traded volume (only returned for TRADES data)

    WAP - the bar's Weighted Average Price rounded to minimum increment (only available for TRADES).

    count - the number of trades during the bar's timespan (only available for TRADES).

    See Also

    EClientSocket.reqRealTimeBars

void receiveFA ( int faDataType,
string faXmlData
)

receives the Financial Advisor's configuration available in the TWS

  • Parameters

    faDataType - one of:Groups: offer traders a way to create a group of accounts and apply a single allocation method to all accounts in the group.Profiles: let you allocate shares on an account-by-account basis using a predefined calculation value.Account Aliases: let you easily identify the accounts by meaningful names rather than account numbers.

    faXmlData - the xml-formatted configuration

    See Also

    EClientSocket.requestFA , EClientSocket.replaceFA

void rerouteMktDataReq ( int reqId,
int conId,
string exchange
)
  • returns conId and exchange for CFD market data request re-route
  • Parameters

    reqId

    conId - of the underlying instrument which has market data

    exchange - of the underlying

void rerouteMktDepthReq ( int reqId,
int conId,
string exchange
)

returns the conId and exchange for an underlying contract when a request is made for level 2 data for an instrument which does not have data in LYNX's database. For example stock CFDs and index CFDs.

  • Parameters

    reqId

    conId

    exchange

void scannerData ( int reqId,
int rank,
ContractDetails contractDetails,
string distance,
string benchmark,
string projection,
string legsStr
)

provides the data resulting from the market scanner request.

void scannerDataEnd ( int reqId)

Indicates the scanner data reception has terminated.

void scannerParameters ( string xml)

provides the xml-formatted parameters available from TWS market scanners (not all available in API).

void securityDefinitionOptionParameter ( int reqId,
string exchange,
int underlyingConId,
string tradingClass,
string multiplier,
HashSet< string > expirations,
HashSet< double > strikes
)

returns the option chain for an underlying on an exchange specified in reqSecDefOptParams There will be multiple callbacks to securityDefinitionOptionParameter if multiple exchanges are specified in reqSecDefOptParams

  • Parameters

    reqId - ID of the request initiating the callback

    underlyingConId - The conID of the underlying security

    tradingClass - the option trading class

    multiplier - the option multiplier

    expirations - a list of the expiries for the options of this underlying on this exchange

    strikes - a list of the possible strikes for options of this underlying on this exchange

    See Also

    EClient.reqSecDefOptParams

void securityDefinitionOptionParameterEnd ( int reqId)

called when all callbacks to securityDefinitionOptionParameter are complete

void smartComponents ( int reqId,
Dictionary< int, KeyValuePair< string, char >> theMap
)

bit number to exchange + exchange abbreviation dictionary

void softDollarTiers ( int reqId,
SoftDollarTier[] tiers
)

called when receives Soft Dollar Tier configuration information

void symbolSamples ( int reqId,
ContractDescription[] contractDescriptions
)

returns array of sample contract descriptions

void tickByTickAllLast ( int reqId,
int tickType,
long time,
double price,
int size,
TickAttribLast tickAttriblast,
string exchange,
string specialConditions
)

returns "Last" or "AllLast" tick-by-tick real-time tick

  • Parameters

    reqId - unique identifier of the request

    tickType - tick-by-tick real-time tick type: "Last" or "AllLast"

    time - tick-by-tick real-time tick timestamp

    price - tick-by-tick real-time tick last price

    size - tick-by-tick real-time tick last size

    tickAttribLast - tick-by-tick real-time last tick attribs (bit 0 - past limit, bit 1 - unreported)

    exchange - tick-by-tick real-time tick exchange

    specialConditions - tick-by-tick real-time tick special conditions

    See Also

    EClient.reqTickByTickData

void tickByTickBidAsk ( int reqId,
long time,
double bidPrice,
double askPrice,
int bidSize,
int askSize,
TickAttribBidAsk tickAttribBidAsk
)

returns "BidAsk" tick-by-tick real-time tick

  • Parameters
    • reqId - unique identifier of the request
    • time - tick-by-tick real-time tick timestamp
    • bidPrice - tick-by-tick real-time tick bid price
    • askPrice - tick-by-tick real-time tick ask price
    • bidSize - tick-by-tick real-time tick bid size
    • askSize - tick-by-tick real-time tick ask size
    • tickAttribBidAsk - tick-by-tick real-time bid/ask tick attribs (bit 0 - bid past low, bit 1 - ask past high)

See Also

EClient.reqTickByTickData

void tickByTickMidPoint ( int reqId,
long time,
double midPoint
)

returns "MidPoint" tick-by-tick real-time tick

  • Parameters

    reqId - unique identifier of the request

    time - tick-by-tick real-time tick timestamp

    midPoint - tick-by-tick real-time tick mid point

    See Also

    EClient.reqTickByTickData

void tickEFP ( int tickerId,
int tickType,
double basisPoints,
string formattedBasisPoints,
double impliedFuture,
int holdDays,
string futureLastTradeDate,
double dividendImpact,
double dividendsToLastTradeDate
)

Exchange for Physicals.

  • Parameters
    • tickerId - The request's identifier.
    • tickType - The type of tick being received.
    • basisPoints - Annualized basis points, which is representative of the financing rate that can be directly compared to broker rates.
    • formattedBasisPoints - Annualized basis points as a formatted string that depicts them in percentage form.
    • impliedFuture - The implied Futures price.
    • holdDays - The number of hold days until the lastTradeDate of the EFP.
    • futureLastTradeDate - The expiration date of the single stock future.
    • dividendImpact - The dividend impact upon the annualized basis points interest rate.
    • dividendsToLastTradeDate - The dividends expected until the expiration of the single stock future.
void tickGeneric ( int tickerId,
int field,
double value
)

Market data callback.

  • Parameters

    tickerId - the request's unique identifier.

    field - the type of tick being received.

    value

void tickNews ( int tickerId,
long timeStamp,
string providerCode,
string articleId,
string headline,
string extraData
)

ticks with news headline

  • Parameters
    • tickerId
    • timeStamp
    • providerCode
    • articleId
    • headline
    • extraData

See Also

EClient.reqMktData

void tickOptionComputation ( int tickerId,
int field,
double impliedVolatility,
double delta,
double optPrice,
double pvDividend,
double gamma,
double vega,
double theta,
double undPrice
)

Receive's option specific market data. This method is called when the market in an option or its underlier moves. TWS’s option model volatilities, prices, and deltas, along with the present value of dividends expected on that options underlier are received.

  • Parameters
    • tickerId - the request's unique identifier.
    • field - Specifies the type of option computation. Pass the field value into TickType.getField(int tickType) to retrieve the field description. For example, a field value of 13 will map to modelOptComp, etc. 10 = Bid 11 = Ask 12 = Last
    • impliedVolatility - the implied volatility calculated by the TWS option modeler, using the specified tick type value.
    • delta - the option delta value.
    • optPrice - the option price.
    • pvDividend - the present value of dividends expected on the option's underlying.
    • gamma - the option gamma value.
    • vega - the option vega value.
    • theta - the option theta value.
    • undPrice - the price of the underlying.

See Also

TickType, tickSize, tickPrice, tickEFP, tickGeneric, tickString, tickSnapshotEnd, marketDataType, EClientSocket.reqMktData

void tickPrice ( int tickerId,
int field,
double price,
TickAttrib attribs
)

Market data tick price callback. Handles all price related ticks. Every tickPrice callback is followed by a tickSize. A tickPrice value of -1 or 0 followed by a tickSize of 0 indicates there is no data for this field currently available, whereas a tickPrice with a positive tickSize indicates an active quote of 0 (typically for a combo contract).

See Also

TickType, tickSize, tickString, tickEFP, tickGeneric, tickOptionComputation, tickSnapshotEnd, marketDataType, EClientSocket.reqMktData

void tickReqParams ( int tickerId,
double minTick,
string bboExchange,
int snapshotPermissions
)

tick with BOO exchange and snapshot permissions

void tickSize ( int tickerId,
int field,
int size
)

Market data tick size callback. Handles all size-related ticks.

void tickString ( int tickerId,
int field,
string value
)

Market data callback. Every tickPrice is followed by a tickSize. There are also independent tickSize callbacks anytime the tickSize changes, and so there will be duplicate tickSize messages following a tickPrice.

void updateAccountTime ( string timestamp)

Receives the last time on which the account was updated.

void updateAccountValue ( string key,
string value,
string currency,
string accountName
)

Receives the subscribed account's information. Only one account can be subscribed at a time. After the initial callback to updateAccountValue, callbacks only occur for values which have changed. This occurs at the time of a position change, or every 3 minutes at most. This frequency cannot be adjusted.

  • Parameters
    • key - the value being updated.
    • AccountCode — The account ID number
    • AccountOrGroup — "All" to return account summary data for all accounts, or set to a specific Advisor Account Group name that has already been created in TWS Global Configuration
    • AccountReady — For internal use only
    • AccountType — Identifies the LYNX account structure
    • AccruedCash — Total accrued cash value of stock, commodities and securities
    • AccruedCash-C — Reflects the current's month accrued debit and credit interest to date, updated daily in commodity segment
    • AccruedCash-S — Reflects the current's month accrued debit and credit interest to date, updated daily in security segment
    • AccruedDividend — Total portfolio value of dividends accrued
    • AccruedDividend-C — Dividends accrued but not paid in commodity segment
    • AccruedDividend-S — Dividends accrued but not paid in security segment
    • AvailableFunds — This value tells what you have available for trading
    • AvailableFunds-C — Net Liquidation Value - Initial Margin
    • AvailableFunds-S — Equity with Loan Value - Initial Margin
    • Billable — Total portfolio value of treasury bills
    • Billable-C — Value of treasury bills in commodity segment
    • Billable-S — Value of treasury bills in security segment
    • BuyingPower — Cash Account: Minimum (Equity with Loan Value, Previous Day Equity with Loan Value)-Initial Margin, Standard Margin Account: Minimum (Equity with Loan Value, Previous Day Equity with Loan Value) - Initial Margin *4
    • CashBalance — Cash recognized at the time of trade + futures PNL
    • CorporateBondValue — Value of non-Government bonds such as corporate bonds and municipal bonds
    • Currency — Open positions are grouped by currency
    • Cushion — Excess liquidity as a percentage of net liquidation value
    • DayTradesRemaining — Number of Open/Close trades one could do before Pattern Day Trading is detected
    • DayTradesRemainingT+1 — Number of Open/Close trades one could do tomorrow before Pattern Day Trading is detected
    • DayTradesRemainingT+2 — Number of Open/Close trades one could do two days from today before Pattern Day Trading is detected
    • DayTradesRemainingT+3 — Number of Open/Close trades one could do three days from today before Pattern Day Trading is detected
    • DayTradesRemainingT+4 — Number of Open/Close trades one could do four days from today before Pattern Day Trading is detected
    • EquityWithLoanValue — Forms the basis for determining whether a client has the necessary assets to either initiate or maintain security positions
    • EquityWithLoanValue-C — Cash account: Total cash value + commodities option value - futures maintenance margin requirement + minimum (0, futures PNL) Margin account: Total cash value + commodities option value - futures maintenance margin requirement
    • EquityWithLoanValue-S — Cash account: Settled Cash Margin Account: Total cash value + stock value + bond value + (non-U.S. & Canada securities options value)
    • ExcessLiquidity — This value shows your margin cushion, before liquidation
    • ExcessLiquidity-C — Equity with Loan Value - Maintenance Margin
    • ExcessLiquidity-S — Net Liquidation Value - Maintenance Margin
    • ExchangeRate — The exchange rate of the currency to your base currency
    • FullAvailableFunds — Available funds of whole portfolio with no discounts or intraday credits
    • FullAvailableFunds-C — Net Liquidation Value - Full Initial Margin
    • FullAvailableFunds-S — Equity with Loan Value - Full Initial Margin
    • FullExcessLiquidity — Excess liquidity of whole portfolio with no discounts or intraday credits
    • FullExcessLiquidity-C — Net Liquidation Value - Full Maintenance Margin
    • FullExcessLiquidity-S — Equity with Loan Value - Full Maintenance Margin
    • FullInitMarginReq — Initial Margin of whole portfolio with no discounts or intraday credits
    • FullInitMarginReq-C — Initial Margin of commodity segment's portfolio with no discounts or intraday credits
    • FullInitMarginReq-S — Initial Margin of security segment's portfolio with no discounts or intraday credits
    • FullMaintMarginReq — Maintenance Margin of whole portfolio with no discounts or intraday credits
    • FullMaintMarginReq-C — Maintenance Margin of commodity segment's portfolio with no discounts or intraday credits
    • FullMaintMarginReq-S — Maintenance Margin of security segment's portfolio with no discounts or intraday credits
    • FundValue — Value of funds value (money market funds + mutual funds)
    • FutureOptionValue — Real-time market-to-market value of futures options
    • FuturesPNL — Real-time changes in futures value since last settlement
    • FxCashBalance — Cash balance in related LYNX-UKL account
    • GrossPositionValue — Gross Position Value in securities segment
    • GrossPositionValue-S — Long Stock Value + Short Stock Value + Long Option Value + Short Option Value
    • IndianStockHaircut — Margin rule for LYNX-IN accounts
    • InitMarginReq — Initial Margin requirement of whole portfolio
    • InitMarginReq-C — Initial Margin of the commodity segment in base currency
    • InitMarginReq-S — Initial Margin of the security segment in base currency
    • IssuerOptionValue — Real-time mark-to-market value of Issued Option
    • Leverage-S — GrossPositionValue / NetLiquidation in security segment
    • LookAheadNextChange — Time when look-ahead values take effect
    • LookAheadAvailableFunds — This value reflects your available funds at the next margin change
    • LookAheadAvailableFunds-C — Net Liquidation Value - look ahead Initial Margin
    • LookAheadAvailableFunds-S — Equity with Loan Value - look ahead Initial Margin
    • LookAheadExcessLiquidity — This value reflects your excess liquidity at the next margin change
    • LookAheadExcessLiquidity-C — Net Liquidation Value - look ahead Maintenance Margin
    • LookAheadExcessLiquidity-S — Equity with Loan Value - look ahead Maintenance Margin
    • LookAheadInitMarginReq — Initial margin requirement of whole portfolio as of next period's margin change
    • LookAheadInitMarginReq-C — Initial margin requirement as of next period's margin change in the base currency of the accoun
    • tLookAheadInitMarginReq-S — Initial margin requirement as of next period's margin change in the base currency of the account
    • LookAheadMaintMarginReq — Maintenance margin requirement of whole portfolio as of next period's margin change
    • LookAheadMaintMarginReq-C — Maintenance margin requirement as of next period's margin change in the base currency of the account
    • LookAheadMaintMarginReq-S — Maintenance margin requirement as of next period's margin change in the base currency of the account
    • MaintMarginReq — Maintenance Margin requirement of whole portfolio
    • MaintMarginReq-C — Maintenance Margin for the commodity segment
    • MaintMarginReq-S — Maintenance Margin for the security segment
    • MoneyMarketFundValue — Market value of money market funds excluding mutual funds
    • MutualFundValue — Market value of mutual funds excluding money market funds
    • NetDividend — The sum of the Dividend Payable/Receivable Values for the securities and commodities segments of the account
    • NetLiquidation — The basis for determining the price of the assets in your account
    • NetLiquidation-C — Total cash value + futures PNL + commodities options value
    • NetLiquidation-S — Total cash value + stock value + securities options value + bond value
    • NetLiquidationByCurrency — Net liquidation for individual currencies
    • OptionMarketValue — Real-time mark-to-market value of options
    • PASharesValue — Personal Account shares value of whole portfolio
    • PASharesValue-C — Personal Account shares value in commodity segment
    • PASharesValue-S — Personal Account shares value in security segment
    • PostExpirationExcess — Total projected "at expiration" excess liquidity
    • PostExpirationExcess-C — Provides a projected "at expiration" excess liquidity based on the soon-to expire contracts in your portfolio in commodity segment
    • PostExpirationExcess-S — Provides a projected "at expiration" excess liquidity based on the soon-to expire contracts in your portfolio in security segment
    • PostExpirationMargin — Total projected "at expiration" margin
    • PostExpirationMargin-C — Provides a projected "at expiration" margin value based on the soon-to expire contracts in your portfolio in commodity segment
    • PostExpirationMargin-S — Provides a projected "at expiration" margin value based on the soon-to expire contracts in your portfolio in security segment
    • PreviousDayEquityWithLoanValue — Marginable Equity with Loan value as of 16:00 ET the previous day in securities segment
    • PreviousDayEquityWithLoanValue-S — IMarginable Equity with Loan value as of 16:00 ET the previous day
    • RealCurrency — Open positions are grouped by currency
    • RealizedPnL — Shows your profit on closed positions, which is the difference between your entry execution cost and exit execution costs, or (execution price + commissions to open the positions) - (execution price + commissions to close the position)
    • RegTEquity — Regulation T equity for universal account
    • RegTEquity-S — Regulation T equity for security segment
    • RegTMargin — Regulation T margin for universal account
    • RegTMargin-S — Regulation T margin for security segment
    • SMA — Line of credit created when the market value of securities in a Regulation T account increase in value
    • SMA-S — Regulation T Special Memorandum Account balance for security segment
    • SegmentTitle — Account segment name
    • StockMarketValue — Real-time mark-to-market value of stock
    • TBondValue — Value of treasury bonds
    • TBillValue — Value of treasury bills
    • TotalCashBalance — Total Cash Balance including Future PNL
    • TotalCashValue — Total cash value of stock, commodities and securities
    • TotalCashValue-C — CashBalance in commodity segment
    • TotalCashValue-S — CashBalance in security segment
    • TradingType-S — Account Type
    • UnrealizedPnL — The difference between the current market value of your open positions and the average cost, or Value - Average Cost
    • WarrantValue — Value of warrants
    • WhatIfPMEnabled — To check projected margin requirements under Portfolio Margin model
  • value - up-to-date value
  • currency - the currency on which the value is expressed.
  • accountName - the account

See Also

updatePortfolio, updateAccountTime, accountDownloadEnd, EClientSocket.reqAccountUpdates

void updateMktDepth ( int tickerId,
int position,
int operation,
int side,
double price,
int size
)

Returns the order book.

  • Parameters
    • tickerId - the request's identifier
    • position - the order book's row being updated
    • operation - how to refresh the row: 0 = insert (insert this new order into the row identified by 'position')· 1 = update (update the existing order in the row identified by 'position')· 2 = delete (delete the existing order at the row identified by 'position').
    • side - 0 for ask, 1 for bid
    • price - the order's price
    • size - the order's size

See Also

updateMktDepthL2, EClientSocket.reqMarketDepth

void updateMktDepthL2 ( int tickerId,
int position,
string marketMaker,
int operation,
int side,
double price,
int size,
bool isSmartDepth
)

Returns the order book.

  • Parameters
    • tickerId - the request's identifier
    • position - the order book's row being updated
    • marketMaker - the exchange holding the order if isSmartDepth is True, otherwise the MPID of the market maker
    • operation - how to refresh the row: 0 - insert (insert this new order into the row identified by 'position')· 1 - update (update the existing order in the row identified by 'position')· 2 - delete (delete the existing order at the row identified by 'position').
    • side - 0 for ask, 1 for bid
    • price - the order's price
    • size - the order's size
    • isSmartDepth - flag indicating if this is smart depth response (aggregate data from multiple exchanges, v974+)

See Also

updateMktDepth, EClientSocket.reqMarketDepth

void updateNewsBulletin ( int msgId,
int msgType,
String message,
String origExchange
)

provides LYNX's bulletins

  • Parameters

    msgId - the bulletin's identifier

    msgType - one of: 1 - Regular news bulletin 2 - Exchange no longer available for trading 3 - Exchange is available for trading

    message - the message

    origExchange - the exchange where the message comes from.

void updatePortfolio ( Contract contract,
double position,
double marketPrice,
double marketValue,
double averageCost,
double unrealizedPNL,
double realizedPNL,
string accountName
)

Receives the subscribed account's portfolio. This function will receive only the portfolio of the subscribed account. If the portfolios of all managed accounts are needed, refer to EClientSocket::reqPosition After the initial callback to updatePortfolio, callbacks only occur for positions which have changed.

  • Parameters
    • contract - the Contract for which a position is held.
    • position - the number of positions held.
    • marketPrice - instrument's unitary price
    • marketValue - total market value of the instrument.

See Also

updateAccountTime, accountDownloadEnd, updateAccountValue, EClientSocket.reqAccountUpdates