Snippet to grab historical data for stocks
It downloads a csv file through yahoo's finance site and then parses it and prints out the date and adjusted close for each business day that has data.
require 'open-uri' require 'csv' def get_adjusted_close stock_symbol puts "-- #{stock_symbol} Adjusted Close - Historical --" url = "http://ichart.finance.yahoo.com/table.csv?s=#{stock_symbol}&d=7&e=1&f=2006&g=d&a=2&b=26&c=1990&ignore=.csv" puts "Connecting to #{url}\n" csv = CSV.parse(open(url).read) csv.each{|row| puts "#{row[0]} - #{row.last}" } puts "---------------------------------" end example_stocks = "CSCO GOOG" print "Enter a series of stock symbols separated by spaces (example: #{example_stocks}) to retrieve the historical adjusted close.\n" stock_symbols = gets stock_symbols ||= example_stocks stock_symbols.split.each{|symbol| get_adjusted_close(symbol) }