I know from experience that it's very difficult to add multi-currency after you've created a portfolio mangement system. It needs to be added at a core level and affects every report and calculation.
Currency needs to be accounted for when you bill, rebalance, or perform any other action on your accounts. I don't like using the word impossible but it would have taken a *long* time to retroactively add multi-currency to Techfi and other systems I've built.
But this ain't our first time at the rodeo. We designed FinFolio to handle multiple currencies from the outset (despite a lack of multi-currency firms in the beta group). We knew how important it was longer-term so we did the work up front to made sure it was there.
How It Works
A local currency is entered on the security and account holdings inherit their currency from the base security. You can set a display currency at the account level, allowing you to have a common reporting currency when your account holds positions of different currencies.
Setting the global system currency determines the currency in which all your main lists will display. You can (optionally) specify currencies to use on each report, report column and in various places like on fee schedules or on the Positions tab.

FX Rates
You can see FX rates on the Exchange Rate screen, which lets you both view and edit. FinFolio lets you enter specific country-to-country exchange rates and doesn't force everything through one system currency. This prevents the currency rounding errors that you see in some other portfolio management systems.

You don't have to hand-enter the FX rates; you can import them automatically from various pricing sources. Plus if you're a bit behind or otherwise don't have an FX rate for a certain day, FinFolio will find the most recent rate to calculate your values (just like prices).
Positions
When you display values or calculations in FinFolio, you can specify which currency to use. You can tell FinFolio to display values in the Local, System and Account currencies or select a specific currency. I'll give you some examples using our Positions tab, which is on many of our edit screens.
By default, the positions tab shows you current values in the local security currency for folio positions. Notice each currency is formatted correctly for the country and it's smart enough not to sum the columns.

On the next screenshot, I specified an as-of date and changed the currency to GBP. FinFolio now uses the FX rate and price on my date, totaling the values at the bottom of the list. All of this happens in real-time.

There's also a Positions tab on the Security edit screen which shows a cross-reference of accounts that own the security. Very handy.

Reports
Instead of building a new batch of reports to support multi-currency we let you adjust the currency on our standard reports. You can select a reporting currency for each report, or you can set a currency for individual columns. Using some of the custom reports, you could add several currency columns, each one showing the Market Value (or other calculation) in a different currency.

It's not just market values--all of the calculations are sensitive to multi-currency. We even expose the cash flow valuation currency on the return calculation. You can also set the currency on charts.
