[GNC] Finance::Quote - AlphaVantage Trade Currencies

Bruce Schuck bschuck at asgard-systems.com
Tue Jul 18 13:12:45 EDT 2023


On 7/17/23 9:06 PM, john wrote:

> Well, a user wouldn't want to set GBX as their default currency,
> just to create an account in their tree denominated in it to be a
> parent for stock accounts that are priced in GBX. But you're right
> that it's not something that a user can do now because GBX isn't an
> ISO4217 currency and that's historically how we decide what's a
> currency. Implementing it would require making an exception to that
> policy and adding an entry to our currency file.

Probably why AlphaVantage and YahooJSON convert GBX quotes to GBP. I
started to get involved with Finance::Quote after AV was added because a
Google finance API was discontinued.

> To be pure it would also require F::Q to leave the GBX->GBP 
> conversion to the client program, because while it's reasonable to 
> expect a user who owns GBP.L shares to know that they trade in GBX 
> it's not reasonable to expect them to know that it's one of the 
> exceptions that doesn't get adjusted automatically when getting the 
> price from AlphaVantage, but *does* get adjusted automatically when 
> retrieved from Yahoo!.

YahooJSON and now YahooWeb are already doing the GBX->GBP conversion
(not my doing). Easy because both of those sources have the pricing
currency in the data returned. I hope you are not suggesting that the
conversion is removed from both of those modules?

There-in lies why I figure the additional lookup to get the correct
currency is needed. So the user doesn't need to worry about what modules
may or may not be doing GBX->GBP or ZAc->ZAR conversion. Consistent with
two Yahoo modules, AV would return the ISO currency. At least that was
my thinking.

> And repeating myself for emphasis, that's how GnuCash could handle it
> but I have no idea if it's reasonable for other programs. From that
> standpoint the extra suffix is more straightforward: Just add it and
> F::Q will unconditionally multiply the price by 100. That will work
> for any client and is pretty easy to explain to users.
To clarify, are you suggesting have AlphaVantage check for the 
additional (let's say ".X") suffix? Or any quote source? Much easier to 
accomplish on a per module basis, than F::Q in general. But as stated, 
that means the user needs to know to use GBP.L.X (Global Petroleum) for 
AV to return GBP, but YahooJSON does not need the extra ".X". Then 
again, that's what man pages are for... ;)

Definitely validates what I tried to explain in the F::Q issue, where 
the solution is *not* just a simple "remove the adjustment".

I may just shelve this for a while longer. Thanks for the discussion and 
insight.

Bruce S.


More information about the gnucash-user mailing list