Main Description
The Portfolio Timing using Moving Average Channels Tool allows users to enter a list of symbols and corresponding weightings to construct a standard “Buy and Hold” portfolio and apply a moving average channel to each fund in the portfolio. This tool allows users to see the hypothetical results of buying the funds in the portfolio when they cross above the moving average + a channel offset and holding until they cross below that moving average – a channel offset. When a fund crosses below the lower channel the backtester will invest in the cash fund specified. When the fund crosses above the upper channel again the backtester will then invest in portfolio fund again.

Below shows green arrows on buys (when the price crosses above the upper channel), and sells in a red arrow (when the price crosses below the lower channel)

Settings


Select Data Feed
Select a data feed to use. The Universal Data Feed has been our default data feed, and provides stock, ETF, and mutual fund data for the US and non-US markets. The Professional Quality Data Feed provides high quality data for US stocks, ETFs, and mutual funds. Additionally there is an option to select historical data, which allows users to select funds with histories that go back as far as 1924.

Load a Pre-Built Portfolio
If you would like to load one of our example portfolios into the Risk On Portfolio, select it from the dropdown list, and click the “Load Example Portfolio Settings into App”. This will load settings for the selected portfolio into the application, overwriting the current values. Please keep in mind these are examples, and not financial advice.

Symbol List

Enter almost any stock, ETF, or mutual fund ticker one per input box into the symbol field. Up to 100.

Weight List
Enter a corresponding weight value in percent for each symbol entered. If a 50 is entered on line 1, and a symbol of SPY is entered on line 1 of the symbol list, this means that 50% of the portfolio will be composed of the ETF: SPY. The total weight is displayed to the right of the weight list near the Run Backtest button, this button will show you the total weighting % of your portfolio, values over 100% (leveraging) is allowed.

Start/End Simulation Date
The date values to start and end the simulation. If a ticker is unavailable for some of the date range entered the default behavior will be to only test the dates when all tickers are available.

Frequency of Updates
This setting allows the user to choose how often the conditions are evaluated and updates to allocation are made. For example a monthly update means once a month (at the end of the month), the back tester calculates the new weight values based on each one of the 5 algorithms and adjusts the weightings of each ticker to match the weightings reported by each of the algorithms. These weightings will be held until the end of next month when the back tester will evaluate (ask the question) again and re-weight the portfolio according to the new values for each algorithm.

 

Moving Average Filter
This setting allows the user to choose what type of moving average, and how long the moving average is that will be used to determine if the stock ticker is above or below the moving average. Selections for the moving average type are, simple moving average, exponential, weighted, wilder exponential, double exponential, and look back length. The length of the moving average can be set as well, longer values will result in a slower to react moving average but prevent crossovers from happening too frequently.

Second Moving Average Filter
You can enable the second moving average filter by checking the box ‘Use Second Moving Average’. A popup will now allow you to setup the length of the 2nd moving average, keep in mind this should be shorter than the main moving average, same moving average method is used for both moving averages. The second moving average allows you to define a moving average that the main moving average (above) has to cross over to be considered above or below, instead of just using the price of the fund entered.

For example, without a second moving average (box deselected) if the price of the stock at the end of the period is 57.00, and the moving average (main ma, shown above) is at 57.10 then the moving average tool will consider the stock below the moving average and invest in the cash fund instead.

If we are using the second moving average (box selected) the price is 57.00, the main moving average is 57.10, but the second moving average value (50 day moving average show to the right) is 57.20, then the tool will consider the stock above the moving average since we are comparing the second moving average price of 57.20 to the main moving average with value 57.10 and that value is above, so therefore we are in the stock fund.

Channel Sizing
​These settings set how high above the moving average (in percent above) the fund’s price has to go before a buy is generated, and the lower sell channel is how low it must go before a sell happens


Buy Rule: Buy when price of the fund goes above the top moving average channel line.
Sell Rule: Sell when price of the fund goes below the bottom moving average channel line.
Hold Rule: Don’t buy or sell until price goes above or below the top/bottom line.

Save Your Settings For Later
At the bottom of the settings area there is a URL, bookmark or save this URL and you will automatically be able to load and save all your settings automatically, without re-entering it every time.

Outputs

​The tool outputs fully interactive charts showing day to day equity (not just monthly data), day to day draw down, transitions from stock to cash symbol, a summary of performance, % allocation per symbol, annual/monthly performance table, and a full trade list.

Downloads

Downloads that are available are a full trade spreadsheet, day by day strategy equity spreadsheet (which can be uploaded to any of our portfolio combination tools), and a list of settings you used to create the results. You may also download an HTML report with fully interactive graphs that you can save and send to others.