I tried to request historical futures data but for a beginner the ibrokers.pdf document is not well enough documented.
example Gold Miny Contract Dec11 NYSELIFFE:
goldminy<-twsFuture("YG","NYSELIFFE","201112",multiplier="33.2")
reqHistoricalData(conn,
Contract= "goldminy",
endDateTime"",
barSize = "1 S",
duration = "1 D",
useRTH = "0",
whatToShow = "TRADES","BID", "ASK", "BID_ASK",
timeFormat = "1",
tzone = "",
verbose = TRUE,
tickerId = "1",
eventHistoricalData,
file)
I also don’t know how to specify some of the data parameters correctly ?
whatToShow ? i need Date,Time,BidSize,Bid,Ask,AskSize,Last,LastSize,Volume
tickerID ?
eventHistoricalData ?
file ?
I wrote the twsInstrument package (on RForge) to alleviate these sorts of headaches.
getContract will find the contract for you if you give it anything reasonable. Any of these formats should work:
“YG_Z1”, “YG_Z11”, “YGZ1”, “YGZ11”, “YGZ2011”, “YGDEC2011”, “YG_DEC2011”, etc.
(also you could use the conId, or give it an instrument object, or the name of an instrument object)
I don’t have a subscription to market data for NYSELIFFE, so I will use the Dec 2011 e-mini S&P future for the rest of this answer.
You could get historical data like this
This will give you back these columns, and it will all be ‘TRADES’ data
whatToShow must be one of ‘TRADES’, ‘BID’, ‘ASK’, or ‘BID_ASK’. If your request uses whatToShow=’BID’ then you will get the OHLC etc. of the BID prices. “BID_ASK” means that the Ask price will be used for the High and the Bid price will be used for the Low.
Since you said the vignette was too advanced, it bears repeating that Interactive Brokers limits historical data requests to 6 every 60 seconds. So you should pause for 10 seconds between each request (or for getting lots of data I usually pause for 30 seconds after I make 3 requests so that if I have BID data for something I am also likely have ASK data for it)
The function getBAT will download the BID, ASK and TRADES data, and merge together only the closing values of those into a single xts object that looks like this:
You asked for both LastSize and Volume. The “Volume” that getBAT returns is the total amount traded over the time of the bar. So, with 1 minute bars, it’s the total volume that took place in that 1 minute.
Here’s an answer that doesn’t use twsInstrument:
I’m almost certain this will work, but as I said, I don’t have the required market data subscription, so I can’t test.
Using the e-mini S&P again:
One of the problems with your attempt is that if you’re using a barSize of ‘1 S’, your duration cannot be greater than ’60 S’ See IB Historical Data Limitations