寻找可替代quantmod的R语言免费买卖报价获取方案
可行的免费方案推荐
针对你的需求,以下是几个适合R语言用户、满足每天查询少于10次的免费买卖报价获取方案:
1. 使用rvest爬取公开财经数据(需注意合规)
部分免费财经网站会公开股票的买卖报价信息,你可以用rvest包编写简单爬虫提取数据。示例代码(需根据目标网站结构调整):
library(rvest) # 替换为实际提供Bid/Ask的免费站点URL url <- "https://example.com/stock/ABC" page <- read_html(url) # 根据页面HTML结构调整选择器提取数据 bid_price <- page %>% html_element(".bid-price") %>% html_text() %>% as.numeric() ask_price <- page %>% html_element(".ask-price") %>% html_text() %>% as.numeric() volume <- page %>% html_element(".volume") %>% html_text() %>% as.numeric() # 整理结果 result <- data.frame(Symbol = "ABC", Bid = bid_price, Ask = ask_price, Volume = volume) print(result)
注意:爬取前需确认目标网站的robots.txt协议允许爬取,且网站结构变化可能导致代码失效,需定期维护。
2. 使用IBrokers连接Interactive Brokers模拟账户
Interactive Brokers(IB)的模拟账户可免费获取专业级买卖报价数据,完全满足每天少于10次的查询需求:
- 先注册IB模拟账户(免费)
- 安装
IBrokers包:install.packages("IBrokers") - 示例代码:
library(IBrokers) # 连接IB模拟账户(替换为你的端口和客户端ID) tws <- twsConnect(port = 7497, clientId = 1) # 创建股票合约对象 contract <- twsEquity("AAPL", "SMART", "USD") # 获取买卖报价及成交量数据 data <- reqMktData(tws, contract, tickers = c("BID", "ASK", "VOLUME")) # 断开连接 twsDisconnect(tws) # 整理结果 result <- data.frame( Symbol = "AAPL", Bid = data$BID, Ask = data$ASK, Volume = data$VOLUME ) print(result)
3. 使用finnhubr调用Finnhub免费API
Finnhub免费账户提供每天60次API调用额度,支持获取股票买卖报价:
- 注册Finnhub免费账户获取API密钥
- 安装
finnhubr包:devtools::install_github("finnhubr/finnhubr") - 示例代码:
library(finnhubr) # 设置你的Finnhub API密钥 finnhub_api_key("YOUR_API_KEY") # 获取指定股票的报价数据 data <- finnhub_quote(symbol = "AAPL") # 整理结果 result <- data.frame( Symbol = "AAPL", Bid = data$bid, Ask = data$ask, Volume = data$volume ) print(result)
内容的提问来源于stack exchange,提问作者ixodid
相关产品推荐
相关产品推荐

