API Release Notes - Build 9.6

The modifications below are in build 9.6 of the TWS API. Please note that all the enhancements for release 9.6 require the minimum server version 42 (TWS 887), and are valid for the Socket/ActiveX based APIs.

Enhancements
Support for IBALGO Orders

You can now submit IBALGO orders using the API.

We've added the following new fields to the Order structure:

Available Algos and parameters include:

IBALGO Strategy Parameters
For US Stocks:  
Arrival Price (ArrivalPx) Max percentage: maxPctVol
(double in a range 0.01 to 50)
Urgency/Risk aversion: riskAversion
(Valid values: Get Done; Aggressive; Neutral; Passive)
Attempt completion by EOD: forceCompletion (boolean)
Percentage of Volume (PctVol) Target Percentage: pctVol
(double in a range 0.01 to 50)
Volume-Weighted Average Price (Vwap) Max Percentage: maxPctVol
(double in a range 0.01 to 50)
Time-Weighted Average Price (Twap) Trade when: strategyType
(Valid values: Marketable; Matching Midpoint; Matching Same Side; Matching Last)
For US Options:  
Balance Impact and Risk (maxPctVol) Max percentage: maxPctVol
(double in a range 0.01 to 50)
Urgency/Risk aversion: riskAversion
(Valid values: Get Done; Aggressive; Neutral; Passive)
Attempt completion by EOD: forceCompletion (boolean)
Minimize Impact (minImpact) Max Percentage: maxPctVol
(double in a range 0.01 to 50)

 

RFQ Samples

We have included samples for Requests for Quotes (RFQ's) in this API release. Pay special attention to the samples/rfq/SampleRFQ.java sample, which implements a small-state machine and shows how to submit RFQ's for:

Due to the design of RFQ's, use orderId's starting with a relatively high number to avoid clashes. This is because market data is returned in the form of tickPrice()/tickSize() callbacks with the tickerId matching the orderId of the RFQ, and additional space is required for a regular tickerId.

Note: The RFQ functionality in previous versions of the API is incomplete. Beginning with API 9.6 and TWS 887, RFQ implementation via the API is complete and correct.

New underConId Field in ContractDetails Structure

A new field, underConId (underlying contract ID), has been added to the ContractDetails structure to allow unambiguous identification with the underlying contract (you no longer have to match by symbol, etc.). This new field applies to derivatives only.

End-of-Download Marker for Orders

We have added the openOrderEnd() callback, which is invoked when all orders are sent to a client as a response to reqOpenOrders().

End-of-Download Marker for Account Data

We have added the accountDownloadEnd(String:accountName) callback, which is invoked when a complete snapshot of an account state is sent to a client as a response to reqAccountUpdates(). The new callback will be invoked once after a batch of updateAccountValue() and updatePortfolio() is sent. accountDownloadEnd() notification will not be sent for subsequent account updates.

End-of-Download Marker for Executions

We have added the execDetailsEnd() callback, which is invoked when all executions are sent to a client as a response to reqExecutions(). There could be several requests for executions submitted simulteneously (for example, with different filters); therefore, we added int:reqId to all reqExecutions() requests and executionDetails()/execDetailsEnd() callbacks that allow matching results with requests on the client side.

New Order Statuses

When using reqAllOpenOrders() or reqOpenOrders(), such open orders will be reported by TWS using the orderStatus() callback with a new status of ApiPending. You can cancel such orders using cancelOrder(). TWS reports such order cancellations using the orderStatus() callback with a new status of ApiCancelled.

© 2001, - 2008 Interactive Brokers LLC. All rights reserved. Sun, Sun Microsystems, the Sun Logo and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Excel is a trademark or registered trademark of Microsoft Corporation in the United States and/or other countries.