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:

  1. Does not correctly import crypto transfers (between wallets or websites) into Microsoft Money. These have to be done manually.
  2. Only works with a subset of CoinTracking options, including Trade, Deposit, Withdrawal, Income, and Spend (not Mining, etc.)
  3. Only works with long/cash positions, not short or margin. I think.

Here's what you'll need:

  1. 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.
  2. 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.
  3. My Python script (and Python installed). CoinTrackingCSVConverter.py (save to a local directory)
  4. 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:

  1. Cointracking:
    1. At your CoinTracking account, go to Reporting->Trade List (click to full view): Cointracking Full Trade List
    2. Click Manage Columns, and at least add columns 4, 8, 10, 11, and 18. (You can select them all)
    3. Click CSV and save your file to a local directory. Rename it "CoinTracking.csv" within the directory where my converter script is.
  2. Local Script (CoinTrackingCSVConverter.py)
    1. 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.
    2. 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).
    3. 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.
  3. iCreateOFX Investment
    1. Open iCreateOFX Investment.
    2. Enable the "Crypto" script and select one of your CSV output files. You may have to map some of the transaction types:
    3. 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.
    4. Load the OFX file into Money.
    5. For each new currency, name it and select an appropriate ticker (e.g. Bitcoin, BTC; Litecoin, LTC). Choose STOCK for the security type.
  4. Optional Quote Updates
    1. 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>
    2. This will work for any currency pair on Yahoo Finance and send it to Money as the symbol after "s:".
    3. 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: