Download & Extend

Change Type of change

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

Status:active» needs work

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%) ?

nobody click here