I could not find a sample for placing VWAP orders.
I tried the following but get mixed results (i.e. on first click I get an error message in ibc Status, on second click it gets entered as a limit order).
I tried it with and without attributes - to no avail. Attributes were taken from IB's website https://interactivebrokers.github.io/tws-api/ibalgos.html#vwap
Thanks for any help.
function fEntryVWAPtime(ibc, Symbol, shares, Limitprice)
fullUntilTimeString = NumToStr(Year(), 4.0, False) + StrFormat("%02.0f", Now(7)) + StrFormat("%02.0f", Now(6)) + " " + "15:54:30 EST";
fullFromTimeString = NumToStr(Year(), 4.0, False) + StrFormat("%02.0f", Now(7)) + StrFormat("%02.0f", Now(6)) + " " + "10:54:30 EST";
VWMaxPctVol = NumToStr(0.2, 1.1);
VWAPAttributes = VWMaxPctVol + ";" +
fullFromTimeString + ";" +
fullUntilTimeString + ";" +
"1" + ";" +
"1" + ";" +
"1" + ";" +
ibc.placeorder( symbol, "Buy", shares, "VWAP", round(LimitPrice), 0, "Day", true, 100, VWAPAttributes);
TriggerOrder= ParamTrigger("Place order","Click");
ibc = GetTradingInterface("IB");
if( TriggerOrder )
if( ibc.IsConnected() )
Symbol = Name();
shares = 100;
Limitprice = lastvalue(C) - 0.1;
fEntryVWAPTime(ibc, Symbol, shares, Limitprice);
Please read PlaceOrder documentation carefully and the details to 10th argument "Attributes" of that function:
Attributes - is a string that allows to specify additional order attributes (comma separated list).
outsideRTH - if specified means that order will trigger not only during Regular Trading Hours (RTH), but also in extended trading (pre/after market); this applies to stop orders, conditional orders, and alerts; it is used by the triggering logic. If not specified (false) orders will trigger ONLY during RTH.
allOrNone - fill all or nothing at all
eTradeOnly - trade with electronic quotes only
firmQuoteOnly - trade with firm quotes only
Version 1.1 ignoreRth / rthOnly flags are OBSOLETE now and not supported as TWS API dropped support for those.
By default all those flags are INACTIVE (OFF)
ibc.PlaceOrder("MSFT", "BUY", 1000, "LMT", 27, 0, "GTD 20051215 19:00:00 GMT", True, 100, "allOrNone" );
(Note that optional parameter TickSize MUST be specified if you want to use Attributes)
Please pay special attention to specially marked key words "Comma separated" and "Supported attributes" (-> those four ones). So by strictly following help your custom attribute is not supported.
Futher note: IBcontroller is provided "as is" since it is free one.
Another note: IBcontroller source code can be found here.
Unfortunately, the AT documentation does not provide a VWAP order example but states that they are possible. The attributes mentioned are not applicable to VWAP orders according to IB. So, if anyone has a working example, that would be great. Thanks.