You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmymoney/doc/en/details-investments.docbook

624 lines
22 KiB

<?xml version="1.0" encoding="UTF-8"?>
<chapter id="details.investments">
<chapterinfo>
<authorgroup>
<author>
<firstname>Ace</firstname>
<surname>Jones</surname>
<affiliation>
<address><email>acejones@users.sourceforge.net</email></address>
</affiliation>
</author>
</authorgroup>
<date>2009-06-14</date>
<releaseinfo>1.0</releaseinfo>
</chapterinfo>
<title>Investments</title>
<sect1 id="details.investments.overview">
<title>Investments in &kappname;</title>
<sect2>
<title>Investments</title>
<para>
Investments are instruments for investing money that are traded on a market.
Stocks, bonds, and mutual funds are the most common investments; so they are
the ones supported most directly. Futures, commodities, options, and more
complex derivatives are also sometimes used, but &kappname; has no special
functionality for them. As long as they behave like a stock or a bond, they
can be tracked easily.
</para>
</sect2>
<sect2>
<title>Base Currency</title>
<para>
Each investment has a Base Currency. This is the currency in which it is
traded. When a price quote is entered for an investment, the currency of the
value given is always its base currency. A stock on the NYSE (New York Stock
Exchange) would be in US dollars, and one on an Australian market would be in
Australian dollars.
</para>
</sect2>
<sect2>
<title>Investment Accounts</title>
<para>
Investment Accounts hold a collection of investments. An Investment account
contains transactions, such as buys and sells, of those investments. All
transactions in an Investment account must relate to a specific investment.
There is no separate <quote>cash balance</quote> in an investment account. For
that, you need a Brokerage Account.
</para>
</sect2>
<sect2>
<title>Brokerage Accounts</title>
<para>
An investment account often has an associated Brokerage Account. This is also
sometimes referred to as a <quote>Cash Account</quote>. Investment accounts
cannot contain cash transactions, like a transfer from your bank. When a
stock is sold, the proceeds are typically placed in the Brokerage Account.
</para>
<para>
When you create an Investment Account, you have the option of creating an
associated Brokerage Account with it.
</para>
</sect2>
</sect1>
<sect1 id="details.investments.investment">
<title>Creating an Investment Account</title>
<para>
The first step on the path to working with investments is to create an account
to hold your investments. Choose <menuchoice><guimenu>Account</guimenu>
<guimenuitem>New account...</guimenuitem></menuchoice> to begin the process of
adding a new account. Create an account as usual, making sure to choose
<quote>Investment</quote> as the type of account.
</para>
<para>
To work with the new investment account, navigate to the
<guibutton>Investments</guibutton> view, and choose the account you have just
created from the <guilabel>Select Account</guilabel> dropdown box.
</para>
</sect1>
<sect1 id="details.investments.securities">
<title>Adding Investments to Your Account</title>
<para>
To add individual Investments to your Investment Account, navigate to
the <guibutton>Investments</guibutton> view, and choose the account where the
investment is held from the <guilabel>Select Account</guilabel> drop-down box.
</para>
<para>
Right-click the mouse in the empty space in the view. This brings up
the <guimenu>Investment Options</guimenu> context menu. Choose
<guimenuitem>New...</guimenuitem> from this menu. This launches the
<guilabel>New Investment Wizard</guilabel> which you use to create your new
Investment.
</para>
<sect2 id="details.investments.newinvestmentwizard">
<title>New Investment Wizard</title>
<para>
The first thing you'll be asked to enter is the type of investment, whether
it's a stock, bond, etc.
</para>
<para>
Next, the investment details page is presented. The following information is
entered on this page:
</para>
<itemizedlist>
<listitem><para> Trading Symbol. The ticker symbol used to identify the
investment on whatever market it trades. &kappname; requires a trading
symbol for all investments; however some investments do not have symbols.
In this case, you will need to make up a symbol for it.
</para></listitem>
<listitem><para> Full name. The friendly, readable name of the investment
you're creating, e.g., <quote>Advanced Micro Devices, Inc.</quote> This name is
also referred to as the security.
</para></listitem>
<listitem><para> Fraction. The degree of precision to which your holdings are
measured. For example, in the US most mutual funds measure holdings to
three decimal places, so you would enter 1000 in this field. Stocks are
often measured to only whole units, so you could enter 1 for a stock like
this.
</para></listitem>
<listitem><para> Trading market. Where the stock trades. This is an optional
field which is provided for your convenience. This information is not used
anywhere else in &kappname;.
</para></listitem>
<listitem><para>Identification. An optional field to enter additional
identification information you might like to keep track of. Again, this
information is not used anywhere else.
</para></listitem>
<listitem><para>Trading currency. The underlying currency in which this
investment trades on its market.
</para></listitem>
<listitem><para> Price entry. Choose whether the price will be entered as an
individual price, or as the total for all shares.
</para></listitem>
</itemizedlist>
<para>
If you are using Online Quotes, ensure that the symbol exactly matches the
symbol used by your quote source. Yahoo covers most of the world's markets,
and requires a suffix on the end of symbols outside the US. For example,
Rubicon Limited on the New Zealand market should be entered as
<quote>RBC.NZ</quote>.
</para>
<para>
Finally, you're presented with the Online Update screen. This is where you
tell &kappname; how you would like to update the prices of your investment.
The following items are set here:
</para>
<itemizedlist>
<listitem>
<para>
Use Finance::Quote. This is an option for GnuCash users who are used to
this style of quotes. Most users can leave this unchecked.
</para>
</listitem>
<listitem>
<para>
Online Source. The online source you'd like to use for this particular
investment. The most common choice is <quote>Yahoo</quote>. Try that
first, and if the investment cannot be found using this source, then
experiment with the others.
</para>
</listitem>
<listitem>
<para>
Factor. A multiplier that should be applied to quotes retrieved for this
investment. This is most commonly needed for UK stocks where the price
quoted is in pence (1/100), and the stock is denominated in pounds. In
this case, enter 0,01 for the Factor.
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="details.investments.edit">
<title>Editing an Investment</title>
<para>
The Investment view window lists your current holdings in this account, along
with their symbol, value, and price. Right-click the mouse on any of the
investments to bring up the <guimenu>Investment Options</guimenu> context
menu, where you have the option to add, edit, or delete individual investments
from this account. Also, you can update the price of your investments here
either manually or via their online source. In addition, it is possible to
close an empty account, or to reopen a closed account.
</para>
</sect1>
<sect1 id="details.investments.ledger">
<title>Investment Transactions</title>
<para>
<screenshot>
<screeninfo>Investment Transaction Form</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="investment-transactionform.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Investment Transaction Form</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
Investment transactions are entered and edited in the
<link linkend="details.ledgers">ledger</link> view, as with other kinds of
accounts. However, the fields are different, and vary depending on the
investment transaction type or activity. Investment transactions have some
additional elements:
</para>
<itemizedlist>
<listitem><para>Activity</para></listitem>
<listitem><para>Security</para></listitem>
<listitem><para>Account</para></listitem>
<listitem><para>Shares, Price, &amp; Total Amount</para></listitem>
<listitem><para>Fees</para></listitem>
<listitem><para>Interest category</para></listitem>
</itemizedlist>
<sect2>
<title>Activity</title>
<para>
The Activity for an investment transaction describes what action is happening
to the stock. The following activities are supported:
</para>
<itemizedlist>
<listitem>
<para>
Buy/Sell. Use to record purchases or sales of individual investments.
This action requires an account to transfer the funds from/to.
</para>
</listitem>
<listitem>
<para>
Dividend/Yield. Also known as a <quote>Cash Dividend</quote>, this action
is used for when you receive an interest or dividend disbursement from
your investment. This action requires an account to transfer the funds
from/to.
</para>
</listitem>
<listitem>
<para>
Reinvest Dividend. This is a dividend where the proceeds are re-invested
back into the investment.
</para>
</listitem>
<listitem>
<para>
Add/Remove Shares. A simple increase or decrease in your balance. This
should be used very rarely, because it's uncommon for shares to just show
up in your account (or disappear) unless it's a purchase or a sale.
</para>
</listitem>
<listitem>
<para>
Split Shares. Used when the stock is split. Enter the ratio of the split
in the <quote>Split Ratio</quote> field. For example, in a 3:2 split,
enter 1.5
</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Security</title>
<para>
Each investment transaction must be associated with an individual security,
which is here just another name for an investment. Choose the investment name
when adding or editing a transaction. The symbol will be displayed when
viewing it.
</para>
</sect2>
<sect2>
<title>Account</title>
<para>
For any transactions which generate or require money, you must enter the
account where the money is transferred to/from. If your investment account
has an associated brokerage account, it's usually best to transfer the funds
there. This applies to funds for purchase or sale of the investment, as well
as for fees paid or interest or dividends earned.
</para>
</sect2>
<sect2>
<title>Shares, Price &amp; Total Amount</title>
<para>
For buy, sell, and cash dividend transactions, the number of shares, the price
per share, and the total amount of the transaction must be established. You
can enter any two of these, and &kappname; will calculate the third. It's
usually best to enter just the total amount and the number of shares, because
these are the known facts of the transaction. The price per share can be
calculated from these.
</para>
</sect2>
<sect2>
<title>Fees</title>
<para>
With many investment transactions you can include the fees (or commission) you
paid the broker. If you enter a category for the fee, then a field will be
shown to the right where you can enter the amount of the fee. If you need to
enter more than one fee for the transaction, you can use
the <link linkend="details.ledgers.split">Split Transactions</link> feature.
In this case, when you complete entering all the splits, the total amount of
the fees will be shown to the right.
</para>
</sect2>
<sect2>
<title>Interest</title>
<para>
This is how you enter an interest or dividend payment from an invenstment. As
with fees, if you enter a category, then a field will be shown to the right
where you can enter the amount. You can also use the split transaction
feature, if required.
</para>
</sect2>
</sect1>
<sect1 id="details.investments.foreign">
<title>Working With Foreign Investments</title>
<para>
&kappname; supports multiple currencies and investments, and you may want to
combine the two. However, doing so requires extra care. As noted above, when
you added an investment, you had to specify its trading currency. This might
not be the same as your base currency, and it also might not be the same as
the account in which you hold the stock or the account where you transfer your
funds to/from for buys/sells.
</para>
<para>
Consider a hypothetical case. Your base currency is USD. You have an
investment account in EUR, and a brokerage account also in EUR. In that
account, you hold shares of TietoEnator, which is traded in SEK.
</para>
<para>
When you enter a buy transaction on this investment, use SEK as the currency.
So if you buy 100 shares at a price of SEK 248.00, for a total of SEK
24,800.00, enter these values in the transaction.
</para>
<para>
<screenshot>
<screeninfo>Currency Warning</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="investment-currencywarning.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Currency Warning</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
When you choose the brokerage account to fund the transfer, you'll be warned
that it's in a different currency.
</para>
<para>
<screenshot>
<screeninfo>Exchange Rate Editor</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="investment-exchangerateeditor.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Exchange Rate Editor</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
<para>
When you finish the transaction, you will be prompted for a price update to
the investment account's currency, in this case, SEK -> EUR. Review the
documentation on <link linkend="details.currencies.prices">Entering Prices
Manually</link> for more information on the price dialog.
</para>
<para>
If you then switch over to the brokerage account, you will see the transaction
as EUR 2,254.54, assuming an exchange rate is 11.0000 SEK / EUR.
</para>
</sect1>
<sect1 id="details.investments.prices">
<title>Updating Prices</title>
<para>
There are two ways of updating the prices for your investments. You can
either enter the new price manually or have &kappname; fetch it from the web.
</para>
<sect2>
<title>Manual Price Updates</title>
<para>
You can enter prices for your investments using the same
<link linkend="details.currencies.prices">Price Editor</link> as used for
currencies.
</para>
</sect2>
<sect2 id="details.investments.onlinequotes">
<title>Online Price Quotes</title>
<para>
&kappname; has the ability to download the latest prices for your investments
and currencies via the web.
</para>
<sect3>
<title>How Online Quotes Work</title>
<para>
At your request, &kappname; will fetch a page from the web that contains the
latest price for each item. By default, prices are fetched from
http://finance.yahoo.com, and are subject to the terms and conditions of that
site.
</para>
<para>
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.
</para>
<para>
To find the trading symbol for a security supported by Yahoo, use the
<quote>Symbol Lookup</quote> feature at http://finance.yahoo.com.
</para>
</sect3>
<sect3>
<title>Assigning a Quote Source</title>
<para>
In order to get online price quotes, you first have to enable it for each
investment or currency you want updated, by setting a <quote>Online Quote
Source</quote>. 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.
</para>
<para>
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 <guimenuitem>Edit Investment
...</guimenuitem>. In the Investment Detail Wizard,
click <guibutton>Next</guibutton> twice, for the Online Update section. In
the Online source dropdown box, select the online source.
</para>
<para>
Versions of &kappname; 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
<ulink url="http://finance-quote.sourceforge.net">
http://finance-quote.sourceforge.net</ulink> for more information.
</para>
</sect3>
<sect3>
<title>Adjusting a quote</title>
<para>
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.
</para>
<para>
If this is the case for your online source, you can use the
<guilabel>Factor</guilabel> field to enter an adjusting factor. For the above
mentioned example the factor would be 0.01.
</para>
<para>
The <guilabel>Factor</guilabel> field is only available if a
<guibutton>Quote Source</guibutton> has been selected.
</para>
</sect3>
<sect3>
<title>Fetching Quotes</title>
<para>
Typically, you will update the prices for all your investments and currencies
at once. Choose the <menuchoice><guimenu>Tools</guimenu><guimenuitem>Update
Stock and Currency Prices...</guimenuitem></menuchoice> menu option to bring
up the online price quotes dialog. Press <guibutton>Update All</guibutton> to
fetch quotes for all investments and currencies in your &kappname; file.
</para>
<para>
<screenshot>
<screeninfo>Update Stock and Currency Prices</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="investment-onlineupdate.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Online Stock and Currency Price Update</phrase>
</textobject>
</mediaobject>
</screenshot>
</para>
</sect3>
<sect3>
<title>Adding or Editing Quote Sources</title>
<para>
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.
</para>
<para>
If you do feel up to the challenge, here's how it works. The quote sources
are contained in the settings dialog.
Choose <menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
&kappname;</guimenuitem></menuchoice>. From there, choose
the <guilabel>Online Quotes</guilabel> 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 <guibutton>Update</guibutton> button before exiting the
dialog. Your changes are not saved by default.
</para>
<para>
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.
</para>
<para>
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
<quote>file:/path/to/getquote.sh %1</quote>.
</para>
<para>
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 <ulink
url="https://www.trinitydesktop.org/docs/qt3/ntqregexp.html#1">QRegExp class</ulink> at
https://www.trinitydesktop.org/docs/qt3/ntqregexp.html#1 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. <quote>%m %d %y</quote> will parse <quote>December 31st, 2005</quote>
as easily as <quote>12/31/05</quote>. Two digit years are interpreted as
being in the range of 1950-2049.
</para>
</sect3>
</sect2>
</sect1>
<sect1 id="details.investments.unimplemented">
<title>Unimplemented Features</title>
<para>
Certain common features that are normally found with investments are not yet
implemented in &kappname;. These include: Derivatives (options, futures,
etc), capital gains, and tax reporting for investments.
</para>
</sect1>
</chapter>