bulk load of historical commodity prices

John Ralls jralls at ceridwen.us
Sat Mar 24 11:19:01 EDT 2012


On Mar 23, 2012, at 10:13 PM, Stuart McGraw wrote:

> I have some questions about commodity prices in Gnucash...
> 
> I would like to do a bulk load of historical prices for several
> stocks and mutual funds.  I am using a Postgresql database and
> looking at the price and commodity tables in there, it seems like
> it should be pretty straight forward.
> 
> First, I know mucking with the database is highly dis-recommended
> so rather than asking if I can do this, I'll ask if there are any
> specific known reasons why it will break something?
Not in the price tables, no.
> 
> Secondly, I am wondering about the "value_num" and "value_denom"
> columns in the "prices" table.  Is it necessary to reduce them 
> to reduced fraction form (as they appear to be stored; that is,
> $6.22 is stored as value_num=311, value_denom=50), or can I just 
> store price*100 in "value_num" and 100 in "value_denom"?  (Just 
> out of curiosity, why isn't the value stored as a integer multiple 
> of the commodity's "fraction" value?)

Yes, you can store 6.22 as {622, 100}.  The GncNumeric class automatically reduces fractions when it does calculations because that guarantees the best chance of maintaining precision (fewer bits -> less chance of an overflow), but you needn't worry about it for input.

> 
> Finally, is the "prices.source" value (which contains strings like
> "Finance::Quote" and "user:price-editor") used for anything other
> than display?  I.e., can I write "user:bulk-load" or similar in 
> there?

As far as I know, yes.

Regards,
John Ralls




More information about the gnucash-user mailing list