Tradesy is a personal finance app for Mac, designed for the small investor. It will help manage your trading: watching stocks, tracking your portfolios, calculating capital gains, and more!
Tradesy runs on MacOS 12 (“Monterey”) or newer.
Features
Stock & ETF performance graphing:
Auto-updating watchlist. Track real-time performance of your favourite stocks and securities.
Flexible historical performance querying. Browse detailed past performance in graphs and tables.
Strategy-based back-testing. See what returns could have been realized by trading according to adjustable rules.
Portfolio tracking:
Full text-based import and export (CSV or tab-delimited). Bring in the trading activity from your brokerage.
Automatic cost base and capital gains calculation. Know the value of your gains and dispositions to make tax time a snap.
Accounting for a variety of transaction types. Trades, splits, dividends, reinvested capital gains, cash transfers, etc.
Flexibility and data privacy:
Portable and durable document format. Watchlists and portfolio data saved as .tradesy documents are easily backed up or shared.
All data stays local. Portfolio data are not transmitted to or stored on any remote server.
Forward-thinking architecture:
Market data are locally cached for increased performance and reduced network demand.
A Tradesy document contains a stock watchlist and any number of portfolios. You can create as many different Tradesy documents as you’d like, and save them as distinct files.
The watchlist and portfolio list appear on the left side of the window, and to the right are displayed the particulars of whichever stock or portfolio is selected. Each of these things is discussed in the following sections.
A sample document, containing a watchlist of several stocks and a couple of fictitious portfolios, can be opened with the Help → Open Sample Document menu command.
Watchlist
Search for a particular stock by entering a name or symbol in the “Search” text field at the top of the window.
To add a stock to the watchlist, click “+”. The watchlist is refreshed at a regular interval to maintain an up-to-date snapshot of performance in the current (or most recent) trading day.
💡
Stocks? Securities? Equities? Financial instruments? Whatever you call them, they’re things of value that are traded on an exchange and denoted by a alpha-numeric symbol. This document might use a few of these terms interchangeably; they all refer to the same concept in Tradesy.
Stock details
The tab bar in the adjacent main part of the window offers a variety of views and analyses for the selected stock, each of which is discussed next.
Overview
A line graph plots the recent performance.
Click an interval below the graph to choose between the current (or most recent) trading period and a several other common intervals. Hover the mouse over the graph to see the performance at a particular time.
A history of stock splits and dividends, if applicable, is shown below.
History
Detailed historical performance information, in graph and tabular form, can be retrieved for any date range and quantized by a selectable interval by using the controls to the left of the graph. Some common presets are offered in a pop-up menu.
Click in the graph or the table to highlight the corresponding entry in its counterpart.
💡
See the price adjustment setting for control over how the price values are interpreted in respect of stock splits.
Strategy
Here you can retroactively conduct a trading plan and see what it would have yielded given a stock’s actual past performance. A sequence of hypothetical trades will be evaluated over the date range specified.
You may adjust various parameters to govern the trading decisions.
Interval: Stock prices will be sampled at the specified frequency. (This can have a significant effect on the outcome.)
Initial investment: The starting amount of cash which will be used to buy stock on the first trade.
Strategy
Buy after drop: When the stock price falls by this amount (in percentage) a buy will be made if sufficient cash is available.
Buy up to: When a buy is made, a maximum of this amount (in the trading currency) will be spent on new stock.
Sell after gaining: When the stock price rises by this amount (in percentage) a sell will be made.
Sell up to: When a sell is made, a maximum of this amount (in percentage of holdings) will be made.
Stop Loss
The following parameters will be applied when the Active checkbox is enabled:
Buy after rise: When the stock price rises by this amount (in percentage) a buy will be made if sufficient cash is available.
Buy up to: When a stop-loss buy is made, a maximum of this amount (in the trading currency) will be spent on new stock.
Sell after losing: When the stock price falls by this amount (in percentage) a sell will be made.
Sell up to: When a stop-loss sell is made, a maximum of this amount (in percentage of holdings) will be made.
The graph will indicate the investment's performance as it compares to a simple buy-and-hold over the same period. The table will show all the transactions that would be made.
Clicking the “Make Batch” button will transfer all of the current parameters over to the Strategy Batch tab, in order to run the same analysis over a range of other time periods.
Strategy Batch
A derivative view of a Strategy, where a similar analysis is performed repeatedly over a series of date ranges.
The graph and table will indicate the final results of each iteration, allowing for visualization of the stability of the algorithm described by the parameters. (For example, an erratic rate of return would prove the algorithm unreliable, while a consistent rate of return might suggest some merit in the parameters.)
Currently three batch schemes are offered via a pop-up menu above the graph:
Each day in period: An analysis is run for each distinct trading day in the specified date range. In principle, a stable yield would present similar results across the graph.
Accumulating daily from start: Each analysis begins on the first day in the specified date range, and an additional day is added at each iteration until the end of the period. (The first analysis is one day only; the last encompasses the whole period.) In principle, a stable yield would present a steadily-increasing rate of return over the time axis.
Accumulating daily from end: Similar to the preceding except in reverse, advancing the start date while moving toward the end of the date range. (The first analysis encompasses the whole period; the last analysis covers only the final day.) In principle, a stable yield would present a steadily-decreasing rate of return over the time axis.
Double-clicking on a particular result (in either the table or the graph), or clicking the “Go to Detail” button with a result selected, will transfer that analysis to the Strategy tab in order to examine all the transactions it embodies.
Portfolios
Creating a portfolio
Add a new portfolio by clicking the “+” button or by choosing the Portfolio → New Portfolio… menu command.
In addition to soliciting a name for the portfolio, a couple of options will be presented:
Track deposits and withdrawals: When selected, cash contributions will be accounted for in the ledger. When not selected, the “Transfer In” and “Transfer Out” transaction types will be unavailable, and Tradesy will infer transfers corresponding to buys and sells.
Allow negative balances: When selected, cash and share amounts of less than zero will be permitted. Otherwise, you’ll be prohibited from logging a buy with insufficient cash, or a sell of more shares than are held, for example.
To change the settings for an existing portfolio, choose the Portfolio → Portfolio Settings… menu command.
Once the portfolio contains some transactions, its gross valuation will be shown in the summary and in the graph. A green line atop the graph indicates the net cash deposits made to the portfolio. (When the blue is above the green, you’re in the money.)
💡
Securities trading in a foreign currency (different from the portfolio currency) will have the appropriate exchange rate for the day applied automatically. The displayed valuations are all shown in the portfolio’s primary currency.
Choose the date range to display by using the controls to the left of the graph. Several common presets are offered in the pop-up menu.
A tab bar beneath the graph provides access to several different tables that provide a view into your portfolio: Transactions, Holdings, and Trading Summary. These are discussed below, but first you will want to log some transactions in the portfolio.
Entering transactions
Logging manually
To add a new transaction, click the “New Transaction” button in the upper right or choose the Portfolio → New Transaction… menu command.
You can import transactions into a portfolio from a CSV (comma-separated values) or tab-delimited text file by using the Portfolio → Import… menu command.
After choosing a file, you’ll be prompted to specify the column layout of the data so that Tradesy can parse the rows.
💡
Tradesy will make its best interpretation of number and date formatting, though you are free to be explicit about the latter. The specified default currency will be used for interpreting money values if a Transaction Currency column is not specified.
Portfolio details
Transactions
The Transactions tab shows activity in the portfolio’s ledger that occurred during the selected date range, including gains/losses realized thereupon, as well as running share and cash totals.
Transactions table columns:
Traded: Date upon which the transaction was booked.
Settled: Date upon which the transaction settled. For trades this is typically two business days after the trade date.
Asset: The security or currency being dealt in this transaction.
± Shares: The number of shares acquired or disposed (if applicable).
Per Share: The price or yield per share (if applicable).
Total Value: The total value of the transaction (cost, proceeds, or yield, as applicable).
Capital Gain: The capital gain realized on this transaction (if applicable).
Cost Base Δ: The change in cost base caused by the transaction (if applicable).
Adj. Cost Base: The net adjusted cost base for the security after the transaction (if applicable).
Net Shares: The quantity of shares of the affected security held after the transaction (if applicable).
Net Cash: The quantity of cash on hand after the transaction (if “Track deposits and withdrawals” is enabled for the portfolio).
Note: A free text annotation to the transaction. You may edit this at leisure.
To edit existing transactions, select one or more and double click, or choose the Portfolio → Modify Transaction… menu command. To delete them, choose Portfolio → Delete Transaction.
If more than one transaction is selected, a subset of available properties will be editable in bulk.
The order of transactions occurring on the same date can be changed by dragging and dropping them within the list.
Holdings
The Holdings tab hows the portfolio holdings and valuations as of the selected “To” date, including the average cost incurred per share, market-value gains seen during the selected period, and market value at the end of the period.
Holdings table columns:
Name: The currency or security.
The remaining columns apply only to securities:
Shares: The number of shares held as of the “To” date.
Avg. Price: The average price paid for the security (adjusted cost base divided by the number of shares).
Market Price: The share price of the security on the “To” date.
Adj. Cost Base: The total adjusted cost base for the held shares as of the “To” date.
Market Value: The total market value of the held shares, based on the share price as of the “To” date.
Market Gain: The total market value of the held shares as of the “To” date minus the adjusted cost base.
Trading Summary
The Trading Summary tab shows the gains (and/or losses) realized from all trading activity that occurred during the selected date range. Figures herein can be used to correlate with T5008 and T3 forms and for reporting capital gains/losses on the T1 Schedule 3.
Trading Summary table columns:
Name: The security in question.
Shares Bought: The cumulative number of shares bought.
Shares Sold: The cumulative number of shares sold.
Shares Net: The total number of shares held as of the “To” date.
Cost Base Added: The cumulative change in cost base as a result of shares bought.
Proceeds of Sale: The total revenue received as a result of shares sold.
Cost Base Sold: The cumulative change in cost base as a result of shares sold (i.e., the prior cost base prorated by the proportion of shares sold).
Capital Gain/Loss: The total capital gains (or losses) realized from shares sold (i.e., the proceeds of sale minus the cost base sold).
Exporting portfolio data
You can export portfolio data from any of the tab views—Transactions, Holdings, and Trading Summary—by choosing the Portfolio → Export… menu command. You’ll be prompted to configure the output format to your liking, including file type (comma- or tab-separated text), date format, and the order of columns.
General settings
Several settings allow you to make Tradesy work the best for you.
Time zone
Options in the View → Time Zone menu control how the time is displayed in the graphs and market performance data:
Market Time: Dates and times are with respect to the relevant trading venue (e.g., Eastern Time for stocks on the TSX or NYSE).
Local Time: Dates and times are always in the current time zone of your computer.
Quote price adjustment
Options in the View → Price Adjustment menu provide control over the display of quote price values as shown in the equity Overview and History tabs:
As At Market: The values reflect actual raw market prices.
Adjusted for Splits: The values are adjusted in respect of splits/consolidations. (This is the default.)
Adjusted for Splits & Dividends: The values are adjusted in respect of splits/consolidations as well as dividends.
Tradesy will periodically check for new versions of the app and notify you if one is available. To disable this behaviour, choose the Tradesy → Settings… menu command and turn off the Check for app updates automatically checkbox.
By default only official release versions will be sought. If you’d like to receive beta builds as well, enable the Update to pre-release versions checkbox.
Help and support
Visit the Tradesy web site for the latest. You may e-mail Zygoat Support for help, and consider joining the Tradesy e-mail list for discussion with other users and to stay abreast of upcoming work.
When Tradesy is running in trial mode, some features are purposefully limited. Buy your Tradesy licence to unlock full functionality and help support future development.
Limitations
To find a security its symbol must be available on Yahoo Finance. If you have problems loading a symbol that you know should exist, please get in touch.
Additional diagnostic tools are available by enabling a hidden setting (issue defaults write ca.zygoat.Tradesy diagnosticToolsEnabled -bool true at a Terminal prompt).
The View → Data Source menu provides some commands related to the quote data cache. The cache can be bypassed (or used exclusively), and emptied. Turning on Show Fetched Rows will cause quote data loaded from the network to be highlighted in brown (useful for visualizing cache performance).
Network requests and responses can be viewed in a monitoring window that can be revealed via the Window → Show Network Activity menu command.
A Pre-populate with random transactions checkbox will be offered when creating a new portfolio, which does as its name implies.