[ts-gen] New series

pippin at owlriver.net pippin at owlriver.net
Mon Dec 22 15:19:16 EST 2008


First, closure of the old, and beginning of a new, series;
2nd, an explanation of a minor new feature, the first of that
series; and 3rd, a speculative roadmap for the new series.
________________________________________________________________

I hope order journalling and cross-session order manipulation are
working fine for our users, and in the absence of any more reports
to the contrary, expect that the implementation of these features
as part of the last series, plus bug fixes up until now, meets the
needs of the user community.  As always, mailing list traffic is
my primary means of learning about user requirements outside our
office.

I've begun a new series in the NEWS file.  This means that I view
the tarball of 081126, the last of the old series, as marking a
major release, and that the tarballs of 12.15 -- 12.22 are new
development.  Although the first few releases of the series until
now have been focused mostly on solving the shim's intolerance
of the IB tws "download open orders" feature as pointed out by Nils,
from this message forward users may expect to encounter bleeding
edge features.
________________________________________________________________

As the first work in the new series, there has been the addition
of a new required parameter to the create order command.

Whereas before, the create order command consisted of the
verb phrase, contract id, order key variable name, and the
(order-type, quantity, lmt-price, aux-price) quadruple, now
there is also a user-defined order set label, the mark or
brand.

E.g., from exs/risk.rb the ruby code has changed from the first
form to the second below:

src3 = "create item          8 #{take_pos} LMT 2  5.0  0.0;"	# old
src3 = "create item #{brand} 8 #{take_pos} LMT 2  5.0  0.0;"	# new

which second form gave, via ruby interpolation during a past
run of the regression test:

create item test-pos 8 take-pos-aa-081217-12-02-20 LMT 2  5.0  0.0;
modify item            take-pos-aa-081217-12-02-20 MKT 1  0.0  0.0;
submit item            take-pos-aa-081217-12-02-20;

create item test-pos 8 exit-pos-aa-081217-12-02-20 LMT 2 10.0  0.0;
modify item            exit-pos-aa-081217-12-02-20 MKT 1  0.0  0.0;
submit item            exit-pos-aa-081217-12-02-20;

In the text above, the string test-pos is the label, mark or
brand.  This label is: stored as part of the CreateEvent record
in the journal, as the request is sent; transmitted as part of
the place-order request, as the order-ref attribute; received
back from the IB tws as part of open order messages; and stored 
by the shim with other parts of such messages in the ActiveOrder
table.  [Note that if you have not sent an open orders subscription
command, and in any case once an order has been filled, you will
not see such open-order messages.]

While we do not proffer tax advice, this order brand is intended
for use in tracking the origin of orders.
________________________________________________________________

Finally, about the first major goals of the new series.  A number
of features --- ranging over primary shim development, downstream
application scripting, and user-support --- have been considered
as part of our planning effort over the last couple of months:

shim:  1. command language support for contract expressions;
       2. table driven api feature and client-version support;
       3. memory management and other component optimization;

ruby:  4. contract fill, and net-based symbol collection;
       5. SWIG bindings, or a prototype ruby shim sample client ...

user:  6. man pages, help, auto-config, and packaging
       7. reference and tutorial documentation

[As indicated by the ellipsis, (5) is not yet very well defined.]

We've also considered some smaller, "nice-to-have" features, 
including initialization commands for shim configuration
variables, and shim aggregation of data from subscriptions,
especially market depth.

Although plans may change with circumstances, and the numbering of
the items above is not meant to signify the order in which they will
be completed, and none of the foregoing represents a commitment to
deliver features --- for that you need to consider paid support ---
I plan to work on (1), command language support for contract
expressions, to start with.
________________________________________________________________

As always, I look with interest on comments by users to the mailing
list.  Thanks for trying the shim, and participating on the list.

Thanks,

Bill


More information about the ts-general mailing list