Updating Prices

There are two ways of updating the prices for your investments. You can either enter the new price manually or have KMyMoney fetch it from the web.

Manual Price Updates

You can enter prices for your investments using the same Price Editor as used for currencies.

Online Price Quotes

KMyMoney has the ability to download the latest prices for your investments and currencies via the web.

How Online Quotes Work

At your request, KMyMoney will fetch a page from the web that contains the latest price for each item. By default, prices are fetched from finance.yahoo.com, and are subject to the terms and conditions of that site.

The online quote lookup uses the investment's trading symbol to find the price. Therefore, it's important to set the symbol correctly. Yahoo supports stocks from most major world markets, so it's usually just a matter of finding the correct symbol. For example, TietoEnator trades on the Stockholm Stock Exchange market, and its Yahoo symbol is TIEN.ST.

To find the trading symbol for a security supported by Yahoo, use the Symbol Lookup feature at finance.yahoo.com.

Assigning a Quote Source

In order to get online price quotes, you first have to enable it for each investment or currency you want updated, by setting a Online Quote Source. This is the name of the service from which the quote should be fetched. KMyMoney ships with several sources to choose from. Yahoo is the recommended default source, and should work for most investments and all currencies.

To assign a quote source to an investment, navigate to the investment summary view for the account in which the security is held. Edit the security by right-clicking it and selecting Edit Investment .... In the Investment Detail Wizard, click Next twice, for the Online Update section. In the Online source dropdown box, select the online source.

Versions of KMyMoney starting with 0.9 contain support for the Finance::Quote package for obtaining online quotes. This is intended primarily as a convenience for those users converting from the GnuCash finance package, which uses it as its native method. If you do select this option, you should see a different list of sources, those supported by Finance::Quote. If the list is empty, it suggests that the package is not properly installed. See their web site at http://finance-quote.sourceforge.net for more information.

Adjusting a quote

Some online sources do not report the price in a base quantity (e.g., EUR) but in a fraction (e.g., Cent). Using this information as price will produce wrong values for your investments.

If this is the case for your online source, you can use the Factor field to enter an adjusting factor. For the above mentioned example the factor would be 0.01.

The Factor field is only available if a Quote Source has been selected.

Fetching Quotes

Typically, you will update the prices for all your investments and currencies at once. Choose the ToolsUpdate Stock and Currency Prices... menu option to bring up the online price quotes dialog. Press Update All to fetch quotes for all investments and currencies in your KMyMoney file.


Online Stock and Currency Price Update

Adding or Editing Quote Sources

Adding or editing quote sources is not recommended for anyone but the most technical user. You should feel comfortable reading HTML and writing complex regular expressions. If this doesn't sound like you, we recommend writing to the developer's list if none of the quote sources work for you. Ideally, please point us to a web page where these quotes can be obtained.

If you do feel up to the challenge, here's how it works. The quote sources are contained in the settings dialog. Choose SettingsConfigure KMyMoney. From there, choose the Online Quotes section. You can choose an existing source to edit, or create a new one. When you are done with your changes, be sure to press the Update button before exiting the dialog. Your changes are not saved by default.

The first thing to worry about in an online quote source is the URL. This is the page that is fetched from the web. You will see a %1 in all sources, and a %2 in currency sources. For investments, %1 is replaced by the trading symbol. For currencies, %1 is replaced by the From currency, and %2 is replaced by the To currency. This URL is then fetched, all HTML tags are removed, and that stripped file is then sent to the page parser.

Note that the URL can also be a file: URL, which the quote fetcher takes to mean an executable script. It will pass any command-line arguments to it that you have specified, and feed the stdout to the page parser. For example, you might have a script called getquote.sh that contains custom quote logic, taking the symbol as a single parameter. Your URL would be file:/path/to/getquote.sh %1.

The page parser looks for a symbol, a date, and a price. Regular expressions tell it how to extract those items from the page. Please review the documentation for the QRegExp class for the exact makeup of the regular expressions. There should be exactly one capture expression, surrounded by parentheses, in each regexp. The date format further tells the date parser the order of year, month, and day. This date format should always be in the form "%x %x %x". where x is y, m, or d. The date parser is very smart. %m %d %y will parse December 31st, 2005 as easily as 12/31/05. Two digit years are interpreted as being in the range of 1950-2049.