Tracking Your Multi-currency Stock Investment in GnuCash
I started to track my finances recently, and I needed an accounting software that tracks multi-currency stock investments in addition to tracking my incomes and expenses. There are two software solutions that suit my need -- GnuCash and Moneydance. Both are excellent solutions. I’m using them both at the moment. I’ll write a blog post to explain why.
The problem that I had with GnuCash is the lack of complete documentation on how to track US stock investment if living outside of the US. That is, my default currency is not US dollars. There are documents on parts of the problem (e.g. how to track currency conversion and how to track stock investments. There is a need for a step by step guide on how to track your US stock investments as a foreigner in GnuCash.
To have a better understanding of accounting, I recommend Accounting Made Simple: Accounting Explained in 100 Pages or Less by Mike Piper.It's a quick read, and it gives you a basic understanding on the accounting language such as Assets, Liabilities, Income and Expenses. It will help you greatly when using any accounting software. Here is the Amazon link to the UK store if you are living in the EU.
Make sure you installed Finance::Quote on your computer. A detailed guide can be found at GnuCash official document.
Linux quick tip: run gnc-fq-update as root if you are on a Linux machine.
Create Securities for Stock Prices
Create a new security (Tools -> Security Editor -> Add). We’ll use IBM as our example.
- Fill in the “Full name”, “Symbol/abbreviation”, “Display symbol”, “Type”.
- Check “Get Online Quotes”
- Choose “Multiple” and select “Nasdaq” (I found Nasdqp to be more reliable).
Add Price (Manually)
Create a new entry in Price Database (Tools -> Price Database)
- Namespace: NASDAQ
- Security: select IBM
- Currency: USD (US Dollar)
- Leave everything else as default
Add Price (Automaticly)
Click on "Get Quotes" in Price Database. It will automatically download the latest stock prices and currency conversion rates.
Linux quick tip: creat a cron job to automatically pull the price periodically:
0 16 * * 5 gnucash --add-price-quotes $HOME/gnucash-filename > /dev/null 2>&1
Create Asset Accounts
Create your Current account (i.e. Checking account) under Assets. The account type is Bank. This article assumes that you want to invest in US stocks.
- US internationals -- Create a US dollar account.
- EU internationals -- Create an Euro account and a US dollar account.
- Other -- Create an account with the currency of your choice and a US dollar account.
Note: The creation of an account in a foreign currency will automatically create a new currency entry in “Price Editor”. The conversion rate is pulled from online sources.
Create your Stock accounts. We’ll continue to use IBM as our example. Click on Actions -> New Account. Fill in the “Account name”, select IBM as your “Security/currency” and choose “Stock” as the “Account Type”.
Add Expense Accounts
Create an expense account for Trading Commissions. Choose US dollars as the currency.
Buying US Stocks as an EU International
Assuming you are an european international, and you want to buy stocks of a US company (e.g. IBM). Your default account is in Euros. Your investment account is in US dollars.
Step 1 - convert your currency
Transfer funds from your Euro account to your US dollars account. Go to your current account in Euro and create a new transaction to your current account in US dollars. A currency conversion window will pop up once you’ve entered an amount. The currency conversion rate was pulled from online sources. Conversion price can be adjusted manually in “Price Database”.
Step 2 - buy stocks
There are three entries required for each purchase in GnuCash.
- US current account (Asset)
- Trading Commissions (Expense)
- Stock Account (Asset)
You’ll need to create a new transaction entry under the stock account (e.g. IBM) and split the entry 3 times. Each entry slot is designated for the previously listed. Add the number of stocks that you purchased, the price and commission rate.
The transaction will be reflected in the US dollar current account.
I had a hard time finding a step by step guide on how to track my multi-currency stock investments in GnuCash. There are guides that deal with currency conversion, and there are guides on how to track stock investments. This blog merges the two and created a guide on how to track multi-currency stock investment in GnuCash.