Posted by booddha on December 23, 2009 at 4:16am
3 followers
Jump to:
| Project: | Stock |
| Version: | 6.x-1.2 |
| Component: | Code |
| Category: | feature request |
| Priority: | normal |
| Assigned: | booddha |
| Status: | needs work |
Issue Summary
Hello,
If you want the variation displayed in percentage and not in value, you can change the code in a stock-module like this.
The original :
function stock_process_data($data, $headers) {
$columns = array();
foreach ($headers as $key => $value) {
$field = $data[$key];
// Special handling for some fields
switch ($key) {
case 'symbol':
$columns[] = _add_full_quote($field);
break;
case 'change_amt':
$columns[] = _right_align(_up_down_tick(_decimals($field)));
break;
case 'current_price':
case 'opening':
case 'high':
case 'low':
$columns[] = _right_align(_decimals($field));
break;
case 'volume':
$columns[] = _right_align($field);
break;
default:
$columns[] = $field;
break;
}
}
return $columns;
}and the new code
function stock_process_data($data, $headers) {
global $Temp;
$columns = array();
foreach ($headers as $key => $value) {
$field = $data[$key];
// Special handling for some fields
switch ($key) {
case 'symbol':
$columns[] = _add_full_quote($field);
break;
case 'current_price':
$Temp = $field;
case 'opening':
case 'high':
case 'low':
$columns[] = _right_align(_decimals($field));
break;
case 'change_amt':
$columns[] = _right_align(_up_down_tick(_decimals(($field/($Temp-$field))*100)));
break;
case 'volume':
$columns[] = _right_align($field);
break;
default:
$columns[] = $field;
break;
}
}
return $columns;
}Enjoy
Comments
#1
Please submit this as a patch. It will be reviewed by others and then incorporated in the module after that.
See http://drupal.org/patch for details on how to create one.
#2
Another method of keeping the original stock.module.
The amendment is in stockapi.module
On line 83 you change "c1" to "p2"
Original
$fields = 'snl1c1ohgvd1t1';and the new code
$fields = 'snl1p2ohgvd1t1';Enjoy
Downloading Yahoo data
thanks to M.Kishinevsky and M. Higgs
Here's a neat way to download stock data from Yahoo, perhaps into a spreadsheet
(so you can play with the data):
http://finance.yahoo.com/d/quotes.csv?s=
a BUNCH of STOCK SYMBOLS separated by "+"
&f=a bunch of special tags
for example:
http://finance.yahoo.com/d/quotes.csv?s=XOM+BBDb.TO+JNJ+MSFT&f=
where some special tags are (thanks to Mike):
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
#3
Maybe this should be done in stockapi module but wouldn't it be better to show both the change with the percent in brackets, example 0.68(1.58%) ?