[plt-dev] Racket web page

From: John Clements (clements at brinckerhoff.org)
Date: Mon May 24 13:20:53 EDT 2010

From my computational finance class today, a function that computes (log)mean and (log)stdev for the last 20 years of a stock:

#lang racket

(require net/url (planet williams/science/statistics))
(define (ticker->url t) (format "http://ichart.finance.yahoo.com/table.csv?s=~a&a=04&b=24&c=1990&d=04&e=24&f=2010&g=d&ignore=.csv" t))

(define (pair-from-ticker ticker)
  (let* ([prices 
          (map (lambda (l) (string->number (seventh (regexp-split #rx"," l))))
               (rest (port->lines (get-pure-port (string->url (ticker->url ticker))))))]
         [logdiffs (list->vector (for/list ([p1 (in-list (rest prices))]
                                            [p2 (in-list prices)])
                                   (log (/ p2 p1))))])
    (vector (standard-deviation logdiffs)
            (mean logdiffs))))

(map pair-from-ticker '("T" "IBM"))


... bummer about the long url.

I'm about to combine this with a web-scraper to get the last 20 years of data for every member of the S&P that's been around for 20 years, but that *really* won't fit in the box.

John


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4669 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20100524/a4b5fc05/attachment.p7s>

Posted on the dev mailing list.