Trading Accounts
Since version 2.3.8 resp. 2.4.0 GnuCash supports the internal mechanism of trading accounts as described in Tutorial on multiple currency accounting and Multiple currency accounting in GnuCash by P. Selinger. In short their benefit is to avoid imbalances caused by trading commodites.
Before there was some discussion, because they show unrealized gains and should not be part of the income. So they got their own type and are placed at the top level of the account hierachy.
Setup
Trading Accounts are not enabled by default, and must be explicitly enabled for Gnucash. To do so, use the File->Properties->Account settings tab, and check Use Trading Accounts.
Overview
Trading Accounts are used to represent the imbalances caused by a transaction involving two different currencies, as described in the Tutorial. There will be one such account for each currency which is involved in the Gnucash file.
These accounts are created automatically when a transaction is entered which has a debit to an account in one currency and a credit to an account in a different currency.
Usage
To use Trading Accounts, first ensure that the accounts you are using are denominated in the desired currencies. For example, you might have an asset account 'Canadian Cash' denominated in CAD and an account 'U.S. Cash' denominated in USD.
Then simply enter a transaction which exchanges amounts between the two accounts, starting in the account with the currency you wish to express the initial value in.
The following is example 4.4 from P. Selinger's Tutorial on multiple currency accounting. To exchange 120 CAD for 100 USD, start in the 'Canadian Cash' account and enter a transaction where the Transfer account is 'U.S. Cash'. After entering the amount to spend, press the Enter button, and you will be presented with a Transfer Funds dialog, like the following:
At the bottom, you may enter either the rate of exchange, of the amount of USD dollars corresponding to the other side of the transaction.
After clicking OK, a new top level 'Trading' placeholder account is created, with a sub-account named 'Currency' and two sub-accounts of this, one for USD and the other for CAD. Transactions are automatically created in these accounts, corresponding to the imbalances. These are split transactions, similar to those shown here:
Afterwards, the transaction in the CAD account will look like the following when viewing full splits:
Or in the USD account without splits: