currentStocks.R

nate — Jun 25, 2014, 6:28 PM

rm(list=ls())

# OPTION PARAMETERS FOR YAHOO API
pricingOptions = c('a','b','b2','b3','p','o')
dividendOptions = c('y','d','r1','q')
dateOptions = c('c1','c','c6','k2','p2','d1','d2','t1')
averagesOptions = c('c8','c3','m5','m6','m7','m8','m3','m4','g','h','k1','l','l1', 't8')
miscOptions = c('w1','w4','p1','m','m2','g1','g3','g4','g5','g6','t7','t6','i5','l2','l3','v1','v7','s6')
weekOptions = c('k','j','j5','k4','j6','k5','w')
symbolOptions = c('v','j1','j3','f6','n','n4','s','s1','x','s2')
ratioOptions = c('e','e7','e8','e9','b4','j4','p5','p6','r','r2','r5','r6','r7','s7')

# DESCRIPTIONS FOR OPTIONS PARAMETERS
pricingOptionsNames = c('ask', 'bid', 'ask (realtime)', 'bid (realtime)', 'previous close', 'open')
dividendOptionsNames = c('dividend yield', 'dividend per share', 'dividend pay rate', 'ex-dividend rate')
dateOptionsNames = c('change', 'change and % change', 'change (realtime)', 'change percent (realtime)', 'change in percent', 'last trade date', 'trade date', 'last trade time')
averagesOptionsNames = c('after hours change (realtime)', 'commission', 'change from 200 day moving avg', '% change from 200 day moving avg', 'change from 50 day moving avg', '% change from 50 day moving avg', '50 day moving day average', '200 day moving average', 'Todays low', 'Todays high', 'Last trade (realtime) with time', 'Last trade (with time)', 'Last trade (price only)', '1-year target price')
miscOptionsNames = c('Days value change', 'Days value change (realtime)', 'price paid', 'days range', 'days range (realtime)', 'holdings gain percent', 'annualized gain', 'holdings gain', 'holdings gain percent (realtime)', 'holding gain (realtime)', 'ticker trend', 'trade links', 'order book (realtime)', 'high limit', 'low limit', 'holdings value', 'holdings value (realtime)', 'revenue')
weekOptionsNames = c('52week high', '52week low', 'change from 52week low', 'change from 52week high', '% change from 52week low', '% change from 52week high', '52week range')
symbolOptionsNames = c('more info', 'market capitalization', 'market cap (realtime)', 'float shares', 'name', 'notes', 'symbol', 'shares owned', 'stock exchange', 'shares outstanding')
ratioOptionsNames = c('eps', 'eps estimate current year', 'eps estimate next year', 'eps estimate next quarter', 'book-value', 'EBITDA', 'price/sales', 'price/book', 'p/e ratio', 'p/e ratio (realtime', 'peg ratio', 'price/eps estimate current year', 'price/eps estimate next year', 'short ratio')

# COMBINE OPTION AND DESCRIPTION ARRAYS
options=c(pricingOptions,dividendOptions,dateOptions,averagesOptions,miscOptions,weekOptions,symbolOptions,ratioOptions)
names=c(pricingOptionsNames,dividendOptionsNames,dateOptionsNames,averagesOptionsNames,miscOptionsNames,weekOptionsNames,symbolOptionsNames,ratioOptionsNames)

rm(pricingOptions,dividendOptions,dateOptions,averagesOptions,miscOptions,weekOptions,symbolOptions,ratioOptions)
rm(pricingOptionsNames,dividendOptionsNames,dateOptionsNames,averagesOptionsNames,miscOptionsNames,weekOptionsNames,symbolOptionsNames,ratioOptionsNames)

# CREATE THE URL
base = "http://finance.yahoo.com/d/quotes.csv"
symbols = "?s=GOOGL" 
info = "&f="

for (i in 1:length(options)) info = paste(info,options[i],sep="")
url = paste(base,symbols,info,sep="")

# PARSE THE CSV FILE
data = read.csv(url, header=FALSE)

stockInfo <- character(0)
for(i in 1:length(data)) { 
  stockInfo = c(stockInfo, data[1,i])
}
rm(data,base,symbols,info,i)

google=data.frame(names,stockInfo[1:length(names)])
names(google)=c('category','value')
print(google)
                           category   value
1                               ask     587
2                               bid       1
3                    ask (realtime)     587
4                    bid (realtime)       0
5                    previous close  572.54
6                              open     574
7                    dividend yield       1
8                dividend per share       0
9                 dividend pay rate       1
10                 ex-dividend rate       1
11                           change   13.39
12              change and % change       1
13                change (realtime)   13.39
14        change percent (realtime)       1
15                change in percent       1
16                  last trade date       1
17                       trade date       1
18                  last trade time       1
19    after hours change (realtime)       1
20                       commission       1
21   change from 200 day moving avg  20.412
22 % change from 200 day moving avg       1
23    change from 50 day moving avg  30.785
24  % change from 50 day moving avg       1
25        50 day moving day average 555.145
26           200 day moving average 565.518
27                       Todays low  573.26
28                      Todays high   587.3
29  Last trade (realtime) with time       1
30           Last trade (with time)       1
31          Last trade (price only)  585.93
32              1-year target price  660.88
33                Days value change       1
34     Days value change (realtime)       1
35                       price paid       1
36                       days range       1
37            days range (realtime)       1
38            holdings gain percent       1
39                  annualized gain       1
40                    holdings gain       1
41 holdings gain percent (realtime)       1
42          holding gain (realtime)       1
43                     ticker trend       1
44                      trade links       1
45            order book (realtime)       1
46                       high limit       1
47                        low limit       1
48                   holdings value       1
49        holdings value (realtime)       1
50                          revenue       1
51                      52week high 615.055
52                       52week low 421.912
53           change from 52week low 164.018
54          change from 52week high -29.125
55         % change from 52week low       1
56        % change from 52week high       1
57                     52week range       1
58                        more info 2114743
59            market capitalization       1
60            market cap (realtime)       1
61                     float shares     565
62                             name     765
63                            notes       0
64                           symbol       1
65                     shares owned       1
66                   stock exchange       1
67               shares outstanding       1
68                              eps       1
69        eps estimate current year       1
70           eps estimate next year  19.085
71        eps estimate next quarter   26.78
72                       book-value   31.66
73                           EBITDA    6.63
74                      price/sales 135.977
75                       price/book       1
76                        p/e ratio     6.2
77              p/e ratio (realtime    4.21
78                        peg ratio      30
79  price/eps estimate current year       1
80     price/eps estimate next year    1.33
81                      short ratio   21.38