I've been using Microsoft Money to manage my finances for a
number of years. I recently started trading cryptocurrencies and
I wanted an easy way, automated way to update my accounts in
Money.
Current Issues:
- Does not correctly import crypto transfers (between
wallets or websites) into Microsoft Money. These have to
be done manually.
- Only works with a subset of CoinTracking options,
including Trade, Deposit, Withdrawal, Income, and Spend (not
Mining, etc.)
- Only works with long/cash positions, not short or margin.
I think.
Here's what you'll need:
- An account at CoinTracking.
This will be the toughest part to setup. You can create a
free account that will track up to 200 trades for you. It
will import CSV files (or via web APIs if you pay to
upgrade) from all of your exchanges and collect them in
one place. Your account balances will need to be
correctly displayed here before you go any farther.
Otherwise, garbage in = garbage out.
- A for-pay software called iCreateOFX Investment available
here. It's
about $15 and it will convert correctly formatted CSV
files to OFX files that Microsoft Money (or Quicken) can
read. There's a 30-day trial period.
- My Python script (and Python installed). CoinTrackingCSVConverter.py
(save to a local directory)
- Optionally: PocketSense.
This software (Python scripts) connects to your bank OFX
server, downloads your transactions, fixes any known
issues in the OFX file, and sends it to Money. It also is
able to download stock quotes, including the
cryptocurrency quotes on Yahoo, and update your crypto
prices in Microsoft Money. You'll need to configure it
with a "Tickers" dummy account per the
instructions and setup the stock quotes as below.
The process:
- Cointracking:
- At your CoinTracking account, go to Reporting->Trade
List (click to full view): Cointracking
Full Trade List
- Click Manage Columns, and at least add columns 4,
8, 10, 11, and 18. (You can select them all)
- Click CSV and save your file to a local directory.
Rename it "CoinTracking.csv" within the
directory where my converter script is.
- Local Script (CoinTrackingCSVConverter.py)
- If this is your first time importing into
Microsoft Money, it is easiest to import all of
your "buys" first, manually add all of
your crypto transfers (anytime you transfer
crypto between accounts in MS Money; Exchange ->
Exchange, Wallet -> Exchange, etc.), then
import all of your sell transactions. This will
prevent problems with not having enough "shares"
of a currency when selling. To do this, enable
the "bSeparateBuys" option in the
header by setting it to "True". Or, you
can also just track all of your crypto in one
Money account. There's a section of the script
you can edit to change all of the account names
to a default.
- If it is your subsequent time, you should be able
to run the script as-is. You can enable the
bLimitDates option and set a number of days to
look back when loading (e.g. 21 will only include
transactions within the last 21 days).
- This script will take "CoinTracking.csv"
and will output a "[ExchangeName].csv"
file for each exchange. Trades with no exchange
will be in a ".csv" file.
- iCreateOFX Investment
- Open iCreateOFX Investment.
- Enable the "Crypto" script and select
one of your CSV output files. You may have to map
some of the transaction types:

- Change the "Account Number" to the name
of your exchange. This will make it easier for
Money to handle follow-on OFX files because it
will associate "Account Number" with
your Money account.
- Load the OFX file into Money.
- For each new currency, name it and select an
appropriate ticker (e.g. Bitcoin, BTC; Litecoin,
LTC). Choose STOCK for the
security type.
- Optional Quote Updates
- You can configure PocketSense to send your crypto
quotes to Money. Add the following to your
PocketSense "sites.dat" file:
<stocks>
#--- stocks ---
BTC-USD s:BTC
ETH-USD s:ETH
LTC-USD s:LTC
BCH-USD s:BCH
XRP-USD s:XRP
XLM-USD s:XLM
XMR-USD s:XMR
DASH-USD s:DASH
ZEC-USD s:ZEC
</stocks>
- This will work for any currency pair on Yahoo
Finance and send it to Money as the symbol after
"s:".
- Run the "GetData.py" script to update
your quotes.
Please contact me if you find this script useful or if you run
into a problem.
shaferandrew@gmail.com
UPDATES:
- 2019-01-23 Reoganized the website and fixed some typos.
- 2018-06-24 Added a script option to limit the number of
days to export.
- 2018-06-02 Initial publication.