1) Basket Orders. According to the user's guide, you can create a basket file
either by using the TWS ("automatically"), or by simply using a text editor and
writing out each line ("manually"). When I attempt to use a manually-created
basket file, TWS prompts me for the "program trading flag." I am not prompted
for this on basket files created automatically. The user's guide has the
following list of flags:
A Agency single order
P Principal
U Program order, index arb, for other agency
Y Program order, non-index arb, for other agency
Why am I only prompted for this on manually created files? I've compared
a manually-created file with the file resulting from creating it within
the TWS, and they are identical. What is the default flag used by
automatically-created baskets? Any way to avoid being asked when submitting
manually-created baskets?
2) Funds requirement. It appears to me that when an order is placed, IB
checks that you have enough money to cover the trade by:
(# of shares) * (market price)
Ignoring margin for the moment. Why isn't it figured as:
(# of shares) * (order price)
As an example, at one point I submitted each of the following two orders,
each one being the only open order when submitted:
Buy 160 MSFT $64
Buy 10000 CSCO $1
The MSFT order was accepted, CSCO was not. The reason given for the CSCO
rejection was "equity must exceed margin". In a long session with IBhelp,
the person claimed that (#shares * order-price) was what IB used, but could
not explain why the CSCO order was rejected. The help-person had
several helpful ideas ("CSCO is not trading at $1!", "We think because you
entered the order at $1, the system views it as unmarginable"), none of
which support his claim that (shares * orderprice) is used.
3) OCA orders. I've already mentioned this to def, and he said he would pass
it along, but if more interest is shown it might speed the programmers along.
I would like to see a new order type that is basically an OCA order that is
dependent upon the $-value spent. So, order(s) in the group are filled until
the total amount paid reaches a specified limit, at which any remaining
orders are cancelled.