Hello Tim,

I was just working on something similar, and would be happy to share my solution.  
Below is a function which gets stock data from yahoo.  Although this function gets 
historic data via http, it might be of some use to you.  Writing the result of this 
function will give you a .csv file with the historic data, which can then be imported 
into a spreadsheet or directly manipulated.

    Good Luck,
    Matt Licholai



--------------------------------------------------------------------------------


REBOL [
 Title: "Download stock data as csv"
 Date: 10-Nov-2001
 Author: "Matt Licholai"
 Email: [EMAIL PROTECTED]
 File: %get-csv.r
 Rights: "(C) Matt Licholai 2001 "
 Version: 0.1
 History: [0.1 ["Initial version"]]
 Purpose: {Get stock data in csv format from Yahoo}
 Comment: {Downloads historic data for a stock between two date from Yahoo.
  Gets date, open, high, low, close and volume in a comma separated format 
  for each date within the range. Newest data is at the top of the string.}
 Usage: {Example: 
  get-stock-csv "IBM" 01-Oct-2001 now/date
  }
 Language: 'English
]

get-stock-csv: func [
 {Download historic data for the specified stock from Yahoo}
 ticker [string!] "Stock ticker"
 start [date!] "data start date"
 end [date!] "data end date"
 /local
 yahoo-url data-path refiner codes id val
][
 yahoo-url: http://chart.yahoo.com
 data-path: copy "table.csv?"

 refiner: func [
  str [string!]
  const 
  var 
 ][
  append append append append str "&" :const "=" :var
 ]
 
 codes: compose [
  s (ticker)
  a start/month
  b start/day
  c start/year
  d end/month
  e end/day
  f end/year
  g d
  q q
  y 0
  z (:ticker)
  x .csv
 ]

 foreach [id val] codes [
  refiner data-path id val
 ]

 read yahoo-url/:data-path
]


-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to