Tracking Your Multi-currency Stock Investment in GnuCash

apple devices books business coffee 

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.

Book Recommendation

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.



Install Finance::Quote

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 Security

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

Edit Price

Add Price (Automaticly)

Click on "Get Quotes" in Price Database. It will automatically download the latest stock prices and currency conversion rates.

Get Quotes

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

Current 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.

Creat Current 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.

Stock Accounts

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 Stock Account

Add Expense Accounts

Trading Commissions

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”.

Currency Transfer

Step 2 - buy stocks

There are three entries required for each purchase in GnuCash.

  1. US current account (Asset)
  2. Trading Commissions (Expense)
  3. 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.

Buy Stock

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.





  1. I found decent information in your article.Managed Investment Account I am impressed with how nicely you described this subject, It is a gainful article for us. Thanks for share it.

  2. I found one successful example of this truth through this blog. I am going to use such information now. Stock Trading Account

  3. You wrote this post very carefully.Bug Sweeping London The amount of information is stunning and also a gainful article for us. Keep sharing this kind of articles, Thank you.


Post a Comment