I am trying to do some market analysis using R. Is there any way to get real time stock quotes at minutely intervals using a package? I am familiar with quantmod and have used the getSymbols() function, however, all data I am able to mine is 15 minutes old. Thank you.
-
Are you asking for a way to get historical data, or the latest price? – GSee Nov 19 '14 at 21:32
-
latest price within the last few minutes (15 minutes is too long) – user3731327 Nov 20 '14 at 20:31
2 Answers
My qmao
package has getQuote
"methods" for both BATS and google which are both near real time
Sys.time()
#[1] "2014-11-19 14:27:48.727988 CST"
getQuote("SPY", src="google")
# TradeTime Last Change PctChg Exchange GoogleID
#SPY 2014-11-19 15:27:00 205.17 -0.38 -0.18 NYSEARCA 700145
getQuote("SPY", src="bats", what="bbo")
# TradeTime BidSize BidPrice AskPrice AskSize Last LastSize row.names
#1 15:27:24 15000 205.16 205.17 300 205.17 300 SPY
getQuote.bats
has a few options for how you want the data to print:
getQuote("SPY", src="bats", what="ladder")
# SPDR S&P 500 ETF TR TR UNIT
# Time: 15:27:44
# Volume: 8779553
# Last: 300 @ 205.17
#
#+-------+--------+-------+
#| | 205.21 | 16700 |
#+-------+--------+-------+
#| | 205.2 | 21900 |
#+-------+--------+-------+
#| | 205.19 | 17300 |
#+-------+--------+-------+
#| | 205.18 | 5572 |
#+-------+--------+-------+
#| | 205.17 | 300 |
#+-------+--------+-------+
#| 15000 | 205.16 | |
#+-------+--------+-------+
#| 12100 | 205.15 | |
#+-------+--------+-------+
#| 11300 | 205.14 | |
#+-------+--------+-------+
#| 23900 | 205.13 | |
#+-------+--------+-------+
#| 10600 | 205.12 | |
#+-------+--------+-------+
getQuote("SPY", src="bats", what="depth")
#
#
# BidQty BidPrice AskPrice AskQty
#-------- ---------- ---------- --------
# 15000 205.16 205.17 300
# 12100 205.15 205.18 5572
# 11300 205.14 205.19 17300
# 23900 205.13 205.2 21900
# 10600 205.12 205.21 16700
There are also plot methods
plot(getQuote("SPY", src="bats"))
plot(getQuote("SPY", src="bats", what="ladder"))
plot(getQuote("SPY", src="bats", what="depth"))
And, if you're still reading, there is a shiny app included in the package so you can make those "plots" update in real time. Just run this:
shinyBATS()

- 48,880
- 13
- 125
- 145
-
I'm getting an error message trying to follow your commands. I'm assuming this is because I am running on Mac? I did the install via the R Console but it is giving me an error - "currentQuote <- getQuote("AAPL", src="google") Error in do.call(paste("getQuote", src, sep = "."), args) : could not find function "getQuote.google" – sgerbhctim Mar 30 '17 at 03:58
-
IB would probably be best for real-time stock data. You won't need to pay for it (*), but last time I looked you will need to open an account with a minimum amount of real money.
There is an R package: http://cran.r-project.org/web/packages/IBrokers/index.html
There is a vignette on getting real-time data, but it was last updated in 2009, so I would go with the general vignette: http://cran.r-project.org/web/packages/IBrokers/vignettes/IBrokers.pdf which was last update sep 2014.
(*: Not strictly true: for some exchanges you will need to pay an extra exchange fee.)

- 27,837
- 13
- 117
- 217
-
1In addition to the market data costs, you also have to pay a monthly fee unless you spend that much in commissions. – GSee Nov 21 '14 at 13:33
-
1[TradeKing](https://developers.tradeking.com/documentation/r) has an API with example R code. You have to open an account, but it's free and you don't have to fund it. – GSee Nov 21 '14 at 13:38