--- Begin Message ---
Package: libfinance-quote-perl
Version: 1.13-4
Severity: normal
1.13-4 broke retrieval of quotes of (some?) mutual funds (of the Dutch
market) through the yahoo_europe method. Example in case is INGBM.AS.
Here's my test code:
------ begin ----------
use Finance::Quote;
use Data::Dumper;
my $q = Finance::Quote->new();
my %data = $q->fetch('yahoo_europe', 'INGBM.AS');
#my %data = $q->fetch('yahoo_europe', 'KPN.AS');
print Dumper( {%data} );
------ end ----------
Output with 1.13-4 (with "undef" lines removed for brevity):
'INGBM.ASlast' => '28.88',
'INGBM.ASname' => 'IBP ING BASIC MAT 6',
'INGBM.AStime' => ' 9:46PM',
'INGBM.ASisodate' => '2009-02-27',
'INGBM.ASopen' => '28.43',
'INGBM.ASsuccess' => 1,
'INGBM.ASvolume' => '+1.58%',
'INGBM.ASprice' => '28.88',
'INGBM.ASdate' => '02/27/2009',
'INGBM.ASp_change' => '+0.45',
'INGBM.ASmethod' => 'yahoo_europe',
'INGBM.ASsymbol' => 'INGBM.AS',
'INGBM.ASdiv_yield' => '0.00',
In particular:
- currency is undef, which makes it unusable by Gnucash
- p_change contains a net change, should contain percent
- net is undef
- volume contains what should be p_change
Output with 1.13-3 (on another machine):
'INGBM.ASnet' => '+0.45',
'INGBM.ASlast' => '28.88',
'INGBM.ASname' => 'IBP ING BASIC MAT 6',
'INGBM.AStime' => ' 9:46PM',
'INGBM.ASisodate' => '2009-02-27',
'INGBM.ASclose' => '28.43',
'INGBM.ASprice' => '28.88',
'INGBM.AScurrency' => 'EUR',
'INGBM.ASdate' => '02/27/2009',
'INGBM.ASp_change' => '+1.58',
'INGBM.ASmethod' => 'yahoo_europe',
'INGBM.ASsymbol' => 'INGBM.AS',
'INGBM.ASdiv' => '0.00',
In particular:
- currency is now set, which saves the day for use with Gnucash
- p_change is now correct
- net is correct
But there is indeed something fishy going on with (Dutch) mutual funds
in yahoo UK finance: the yahoo CSV data is not in the same format for
stocks and for mutual funds! Mutual funds have an extra column
inserted between the third and fourth, which shifts all columns after
that one to the right. Apparently 1.13-3 had some magic so that it
still works, but 1.13-4 broke that.
A concrete example. I take a stock:
GET /d/quotes.csv?f=snl1d1t1c1p2vbapomwerr1dyj1qa2c4&e=.csv&s=KPN.AS HTTP/1.1
Host: uk.finance.yahoo.com
HTTP/1.1 200 OK
Date: Sat, 28 Feb 2009 23:28:17 GMT
Content-Type: application/vnd.ms-excel
KPN.AS,KONINKLIJKE KPN NV ,10.19,
9:46PM,02/27/2009,-0.03,-0.24%,10311130,10.19,10.20,10.22,10.15,N/A,N/A,0.77,0.77,0.35,5.39,N/A,8442941,EUR
Here, the fourth column is last trade time, and yahoo_europe method of
version 1.13-3 makes an OK, if not 100% correct job of decoding it
(e.g. div_date is supposed to contain the dividend pay date, but
contains its amount):
'KPN.ASclose' => '10.22',
'KPN.AScap' => '8442941',
'KPN.ASname' => 'KONINKLIJKE KPN NV ',
'KPN.ASsuccess' => 1,
'KPN.ASvolume' => '10311130',
'KPN.ASdate' => '02/27/2009',
'KPN.AScurrency_set_by_fq' => 1,
'KPN.ASnet' => '-0.03',
'KPN.ASprice' => '10.19',
'KPN.ASdiv' => '5.39',
'KPN.AScurrency' => 'EUR',
'KPN.ASask' => '10.20',
'KPN.ASopen' => '10.15',
'KPN.ASpe' => '0.77',
'KPN.ASisodate' => '2009-02-27',
'KPN.ASeps' => '0.77',
'KPN.ASdiv_date' => '0.35',
'KPN.ASsymbol' => 'KPN.AS',
'KPN.ASp_change' => '-0.24',
'KPN.ASlast' => '10.19',
'KPN.ASmethod' => 'yahoo_europe',
'KPN.ASex_div' => 'EUR ',
'KPN.AStime' => ' 9:46PM',
'KPN.ASbid' => '10.19'
1.13-4 gives exactly the same result.
'KPN.ASclose' => '10.22',
'KPN.AScap' => '7905630',
'KPN.ASname' => 'KONINKLIJKE KPN NV ',
'KPN.ASsuccess' => 1,
'KPN.ASvolume' => '10311130',
'KPN.ASdate' => '02/27/2009',
'KPN.AScurrency_set_by_fq' => 1,
'KPN.ASnet' => '-0.03',
'KPN.ASprice' => '10.19',
'KPN.ASdiv' => '3.53',
'KPN.AScurrency' => 'EUR',
'KPN.ASask' => '10.20',
'KPN.ASopen' => '10.15',
'KPN.ASpe' => '0.77',
'KPN.ASisodate' => '2009-02-27',
'KPN.ASeps' => '0.77',
'KPN.ASdiv_date' => '0.36',
'KPN.ASsymbol' => 'KPN.AS',
'KPN.ASp_change' => '-0.24',
'KPN.ASlast' => '10.19',
'KPN.ASmethod' => 'yahoo_europe',
'KPN.ASex_div' => 'EUR ',
'KPN.AStime' => ' 9:46PM',
'KPN.ASbid' => '10.19'
Now, if I take INGBM.AS (a mutual fund), here's the result:
GET /d/quotes.csv?f=snl1d1t1c1p2vbapomwerr1dyj1qa2c4&e=.csv&s=INGBM.AS HTTP/1.1
Host: uk.finance.yahoo.com
HTTP/1.1 200 OK
Date: Sat, 28 Feb 2009 23:28:45 GMT
Content-Type: application/vnd.ms-excel
INGBM.AS,IBP ING BASIC MAT 6,28.88,N/A,
9:46PM,02/27/2009,+0.45,+1.58%,N/A,N/A,N/A,28.43,N/A,N/A,N/A,N/A,N/A,N/A,0.00,N/A,N/A,N/A,N/A,EUR
You see? The fourth column, which contains "N/A" pushes the last trade
time & date, the net change, etc one column more to the right, and
gives the results already detailed above.
-- System Information:
Debian Release: 5.0
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_LU.UTF-8, LC_CTYPE=fr_LU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages libfinance-quote-perl depends on:
ii libcrypt-ssleay-perl 0.57-1+b1 Support for https protocol in LWP
ii libhtml-tableextract-perl 2.10-3 module for extracting the content
ii libwww-perl 5.820-1 WWW client/server library for Perl
ii perl 5.10.0-19 Larry Wall's Practical Extraction
libfinance-quote-perl recommends no packages.
libfinance-quote-perl suggests no packages.
-- no debconf information
The other machine (with 1.13-3):
ii libcrypt-ssleay-perl 0.57-1+b1
ii libhtml-tableextract-perl 2.10-3
ii libwww-perl 5.813-1
ii perl 5.10.0-19
--- End Message ---