yahoofinance es un módulo de ruby que se utiliza para obtener las cotizaciones de acciones e índices del sitio web Yahoo! Finance. Permite, además de cotizaciones actuales, obtener cotizaciones históricas.
Su instalación es muy sencilla, ya que está disponible como gema:
$ sudo gem install yahoofinance Bulk updating Gem source index for: http://gems.rubyforge.org Successfully installed yahoofinance-1.2.2
Asimismo es muy fácil de usar. Éste es un script de ejemplo:
require 'rubygems' require_gem 'yahoofinance' quote_type = YahooFinance::StandardQuote quote_symbols = "tef.mc" YahooFinance::get_quotes( quote_type, quote_symbols ) do |qt| puts qt.symbol puts "===============================================" puts qt.to_s end
Y ejecutándolo obtenemos:
TEF.MC =============================================== YahooFinance::StandardQuote volume = 39562432 ask = 22.06 lastTradeWithTime = 11:38am - <b>22.05</b> bid = 22.05 dayRange = 22.03 - 22.42 changePercent = -0.23 date = 11/26/2007 tickerTrend = ====-= changePoints = -0.05 change = -0.05 - -0.23% name = TELEFONICA open = 22.16 previousClose = 22.1 lastTrade = 22.05 averageDailyVolume = 77187648 dayLow = 22.03 time = 11:38am dayHigh = 22.42 symbol = TEF.MC
Y para obtener, por ejemplo, los datos históricos de los últimos 10 días:
require 'rubygems' require_gem 'yahoofinance' # [0] - Date # [1] - Open # [2] - High # [3] - Low # [4] - Close # [5] - Volume # [6] - Adjusted Close YahooFinance::get_historical_quotes_days( 'tef.mc', 10 ) do |row| puts "#{row[0]} #{row[4]}" end
Y ejecutándolo obtenemos:
2007-11-23 22.10 2007-11-22 22.09 2007-11-21 22.39 2007-11-20 22.93 2007-11-19 22.74 2007-11-16 22.86
Se puede observar que devuelve 6 filas en lugar de 10. Esto es porque el valor que le pasamos a get_historical_quotes_days es el número de días naturales, no los días en los que el mercado está abierto.
En la página web del proyecto hay más ejemplos de utilización de este práctico módulo.

![Validate my RSS feed [Valid RSS]](/wp-content/themes/javiervidal/images/valid-rss.png)