I was trying to use IBrokers package with the simplest code like below:
library(IBrokers)
tws <- twsConnect()
aapl.csv <- file("AAPL.csv", open="wa")
# run an infinite-loop ( <C-c> to break )
reqMktData(tws, twsSTK("AAPL"),
eventWrapper=eWrapper.MktData.CSV(1),
file=aapl.csv)
close(aapl.csv)
close(tws)
I get this error:
2 1 321 Error validating request:-'oc' :
cause - Incorrect generic tick list of 100,101,104,106,165,221,225,236.
Legal ones for (STK)
And everything hangs...
the whole log is here:
R version 2.13.0 (2011-04-13)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-mingw32/x64 (64-bit)
> library(IBrokers)
Loading required package: xts
Loading required package: zoo
Attaching package: 'zoo'
The following object(s) are masked from 'package:base':
as.Date, as.Date.numeric
IBrokers version 0.9-3:
Implementing API Version 9.64
This software comes with NO WARRANTY. Not intended for production use!
See ?IBrokers for details
Warning messages:
1: package 'IBrokers' was built under R version 2.13.2
2: package 'xts' was built under R version 2.13.2
3: package 'zoo' was built under R version 2.13.2
>
> tws <- twsConnect()
>
> aapl.csv <- file("AAPL.csv", open="a")
>
> # run an infinite-loop ( <C-c> to break )
> reqMktData(tws, twsSTK("AAPL"),
+ eventWrapper=eWrapper.MktData.CSV(1),
+ file=aapl.csv)
2 -1 2104 Market data farm connection is OK:cashfarm
2 -1 2104 Market data farm connection is OK:usfarm
2 -1 2106 HMDS data farm connection is OK:ushmds2a
2 1 321 Error validating request:-'oc' : cause - Incorrect generic tick list of 100,101,104,106,165,221,225,236. Legal ones for (STK) are: 100(Option Volume),101(Option Open Interest),104(Historical Volatility),105(Average Opt Volume),106(Option Implied Volatility),107(Close Implied Volatility),125(Bond analytic data),165(Misc. Stats),166(CScreen),225(Auction),233(RTVolume),236(inventory),258/47(Fundamentals),291(Close Implied Volatility),293(TradeCount),294(TradeRate),295(VolumeRate),318(LastRTHTrade),370(ParticipationMonitor),370(ParticipationMonitor),377(CttTickTag),377(CttTickTag),381(IB Rate),384(RfqTickRespTag),384(RfqTickRespTag),387(DMM),388(Issuer Fundamentals),391(IBWarrantImpVolCompeteTick),407(FuturesMargins),411(Real-Time Historical Volatility)
> (Command cancelled)
>
> close(aapl.csv)
> close(tws)
What am I doing wrong here? Any idea for resolution or pointer to references highly appreciated.
The error says that your tick list is bad. If you compare it to the valid ones it reports, you'll see that 221 is the culprit. Thankfully, doing ?reqMktData
tells us that you can specify your own tick list with the tickGenerics
option. So just do something like
> reqMktData(tws, twsSTK("AAPL"),
eventWrapper=eWrapper.MktData.CSV(1),
file=aapl.csv, tickGenerics="100,101,104,106,165,225,236")
and you should be good to go.