Share It

Share |

Saturday, January 23, 2010

Downloading Financial Data



This is a bit more technical post but I hope it will be helpful to someone.

Downloading raw financial and market data for the stocks you follow to your own computer gives you ability to manipulate it in any way you'd like and to create your own unique trading systems. It could give you a chance to test systems and trading methods with historical data and choose the one that best suits your style and vision toward the financial market.
The data could be downloaded from the web as a comma separated file (.csv) and then imported in your application, be it excel or any other of similar kind. The usual problem with the download link the websites offer is that the file you download will contain only the types of data the website decided to put in. As with the data you could download from the Quotes section of finance.yahoo.com - the download link gives you a file with the company stock symbol, the price of the last deal, the time of the last deal, the change (in percent), open price, high,low and volume. These data types are determined by the values sent to the server through the link which in this case are "sl1d1t1c1ohgv". The result would be a row similar to the following one:

"A",29.17,"1/22/2010","4:00pm",-1.35,30.30,30.35,29.09,3049371

The Yahoo interface however has a much wider capabilities and it could be useful to know them. Below is a table with variables which could be sent to the website and each of them will result in different type of data to be returned to you or your application.

a
Ask
a2
Average Daily Volume
a5
Ask Size
b
Bid
b2
Ask (Real-time)
b3
Bid (Real-time)
b4
Book Value
b6
Bid Size
c
Change & Percent Change
c1
Change
c3
Commission
c6
Change (Real-time)
c8
After Hours Change (Real-time)
d
Dividend/Share
d1
Last Trade Date
d2
Trade Date
e
Earnings/Share
e1
Error Indication (returned for symbol changed / invalid)
e7
EPS Estimate Current Year
e8
EPS Estimate Next Year
e9
EPS Estimate Next Quarter
f6
Float Shares
g
Day’s Low
h
Day’s High
j
52-week Low
k
52-week High
g1
Holdings Gain Percent
g3
Annualized Gain
g4
Holdings Gain
g5
Holdings Gain Percent (Real-time)
g6
Holdings Gain (Real-time)
i
More Info
i5
Order Book (Real-time)
j1
Market Capitalization
j3
Market Cap (Real-time)
j4
EBITDA
j5
Change From 52-week Low
j6
Percent Change From 52-week Low
k1
Last Trade (Real-time) With Time
k2
Change Percent (Real-time)
k3
Last Trade Size
k4
Change From 52-week High
k5
Percebt Change From 52-week High
l
Last Trade (With Time)
l1
Last Trade (Price Only)
l2
High Limit
l3
Low Limit
m
Day’s Range
m2
Day’s Range (Real-time)
m3
50-day Moving Average
m4
200-day Moving Average
m5
Change From 200-day Moving Average
m6
Percent Change From 200-day Moving Average
m7
Change From 50-day Moving Average
m8
Percent Change From 50-day Moving Average
n
Name
n4
Notes
o
Open
p
Previous Close
p1
Price Paid
p2
Change in Percent
p5
Price/Sales
p6
Price/Book
q
Ex-Dividend Date
r
P/E Ratio
r1
Dividend Pay Date
r2
P/E Ratio (Real-time)
r5
PEG Ratio
r6
Price/EPS Estimate Current Year
r7
Price/EPS Estimate Next Year
s
Symbol
s1
Shares Owned
s7
Short Ratio
t1
Last Trade Time
t6
Trade Links
t7
Ticker Trend
t8
1 yr Target Price
v
Volume
v1
Holdings Value
v7
Holdings Value (Real-time)
w
52-week Range
w1
Day’s Value Change
w4
Day’s Value Change (Real-time)
x
Stock Exchange
y
Dividend Yield

So a request to an url like http://download.finance.yahoo.com/d/quotes.csv?s=A+AA+AAPL&f=sohgl1v&e=.csv will give you a .csv file with the following content:

"A",30.30,30.35,29.09,29.17,3049371
"AA",14.18,14.18,13.33,13.40,84478416
"AAPL",206.78,207.50,197.16,197.75,31491696

Notice how the particular companies whose stock you would like to get the data for are written with a plus sign between them. That way you can get data for almost any stock you want. You can also download data for all companies in indexes such as S&P500 - the symbol for that would be "@%5EGSPC" which is to be put instead of the companies symbols in the URL. Yahoo has some limitations to the number of companies you can download data at once so you should respect that number.

The data could be downloaded directly to your favorite application. On the net there are some already prepared .xls files like those on gummy-stuff site. If you know how to make your own macros in .xls or similar files you can perfectly organize your own system and track the data you want.

No comments: