On the Backtest page, start by selecting the starting date for the backtest (1). In this example, remember that the variable with the shortest history is CFOA, which begins in August 2004. It is important to select this as the starting date, as the application will not alert you if you choose an earlier date. If the backtest begins before August 2004, the strategy will be fully in cash before that date, leading to misleading results.
The end date is typically set to the latest available date in the database by default, but you can adjust it to an earlier date if you wish to conduct more focused analysis over a specific time period.
Next, choose a benchmark for performance comparison from the dropdown menu (2). In this case, the S&P TSX Index is selected as the benchmark.
Then, click on the Portfolio Settings tab (3). Here, input the maximum number of stocks to be held in the portfolio by entering a value in the Maximum Number of Stocks box (4). In this example, we’ve selected a maximum of 25 stocks.
Additionally, you can decide whether to Buy Shares in Lots by toggling Yes or No in the corresponding tick box (5). This setting can affect the results, especially if the initial value of the investment is small.

In the Portfolio Settings tab (1), the user begins by entering the initial value of the investment (2). For this example, we have set the starting value at $1 million, which represents the initial capital that the strategy will work with throughout the backtest period. This initial investment figure can be adjusted depending on the specific portfolio size the user wishes to simulate, but using a rounded number like $1 million often provides a clear baseline for evaluating performance metrics.
After setting the initial investment amount, the user must then choose the frequency at which the strategy will apply the Buy-Sell list to make adjustments to the portfolio (3). In the backtest module, the most frequent interval available is monthly, and it can be extended to quarterly, semi-annually, or annually based on the user's preferences and the desired trading frequency.
It's worth noting that the backtest module operates with a minimum interval of one month due to the complexity of managing a point-in-time database. Point-in-time databases are crucial for backtesting because they ensure that only the data available at any given time is used in the simulation, preventing future data from influencing past decisions. This restriction to monthly data updates is a necessary compromise to ensure historical accuracy.
In this particular example, the Monthly interval has been chosen as the frequency at which the Buy-Sell list is applied, meaning the portfolio will be reviewed and potentially adjusted every month based on the strategy’s rules. Monthly adjustments ensure that the portfolio stays aligned with the ranking criteria and maintains an active approach to stock selection.
However, if the user finds that the strategy generates excessive turnover—leading to higher transaction costs and potential slippage—they may prefer to reduce the frequency of adjustments. In such cases, the user can select Quarterly as the Buy-Sell frequency. This would mean that the strategy would only review and modify the portfolio every three months, helping to reduce turnover while still applying the ranking and selection criteria periodically.
When choosing Quarterly, the backtest will only evaluate the Buy-Sell candidate list once every three months, which can be particularly useful for long-term investors seeking to minimize transaction costs, or for those who wish to balance between active management and reduced portfolio churn. By fine-tuning the frequency, the user has the flexibility to adapt the strategy to different risk tolerances, investment horizons, and cost considerations, making it a valuable step in the backtest configuration process.

If you want the portfolio review to occur at the traditional end of the quarter (March, June, September, and December), you can select the Calendar Year End option (2). This setting ensures that the Buy-Sell list will be reset at these standard intervals. For instance, if you begin the backtest in August, the Buy-Sell list will be updated at the end of September, aligning with the quarterly schedule.
Alternatively, if you choose not to follow the Calendar Year End, the review will take place three months after the starting point. For example, if the backtest starts in August, the Buy-Sell list will be reviewed in November, and then every three months afterward. This non-calendar option provides flexibility for rebalancing without aligning with the typical quarter-end periods.
Avoiding the traditional end-of-quarter periods can help mitigate the quarter-end crowding effect, where many institutional investors make portfolio adjustments at the same time, leading to market inefficiencies such as price impacts and liquidity issues. By choosing a non-calendar cycle, you may enhance the performance of your strategy by rebalancing at less crowded times in the market.
This approach is often used in momentum strategies as an example, where rebalancing outside of the traditional quarter-end dates can help capture market trends without being affected by the noise and increased trading volume typically seen at the end of quarters.

The next step in the Backtest Section is to decide how the stocks will be weighted in the portfolio, which is done under the Stock Weights tab (1). Here, the user needs to select how the size or weight of each stock will be determined in the strategy. There are four options available in the Weight Stock dropdown menu (2): Equal Weight, Market Cap, Market Float, and Score Percentile.
In this example, we will use the Equal Weight method, meaning each stock in the portfolio will have the same weight, regardless of its size or market value. This method provides a simple and balanced approach, distributing the investment evenly across all selected stocks.
If the user chooses Market Cap or Market Float, it becomes important to set a maximum and minimum weight to prevent situations where a single large-cap stock dominates the portfolio, while smaller stocks have very little influence. Without these limits, a portfolio could become overly concentrated in one or two stocks, increasing risk. As a general guideline, the user could set the maximum weight to 10% and the minimum weight to 0.5%. This ensures a more diversified and balanced portfolio, avoiding extreme concentration while still reflecting the relative size of each stock based on its market capitalization.
This weighting decision can significantly impact the strategy's overall performance and risk profile, making it crucial to carefully consider the appropriate method and set sensible limits when necessary.

If the user has selected Equal Weight, they must then decide whether to enable the Preserve Cash option by choosing Yes or No (2). In this example, where the maximum number of stocks is set to 25, each stock would typically receive a 4% allocation. However, if only 24 stocks are available, the system will adjust the allocation based on the Preserve Cash setting:
- If Preserve Cash is set to No, any excess funds will be automatically distributed among the existing stocks, meaning the system will allocate 4.17% to each of the 24 stocks. This ensures that the portfolio remains fully invested, with no cash held, which can help reduce transactions over the long term as all funds are consistently deployed in the stock positions.
- If Preserve Cash is set to Yes, the system will allocate 4% to each of the 24 stocks, and the remaining 4% will be held as cash in the portfolio. This option allows for the preservation of a cash balance when fewer stocks are available, which may be useful for certain strategies or market conditions where holding cash is desirable.
By selecting No, the user avoids creating a Cash Position and ensures that the portfolio is fully invested, minimizing the need for adjustments over time. However, if maintaining some cash for flexibility or risk management is preferred, the Yes option allows for a controlled cash allocation.
In future versions of the software, an Equitize Option will be introduced, allowing any unallocated cash to be automatically invested in an Index ETF or the underlying benchmark, rather than sitting as cash. This will provide users with even more control over how uninvested funds are managed, improving overall portfolio efficiency. Stay tuned for this feature.
Next, the user must choose the Trim Frequency, which determines how often the positions will be adjusted back toward the target weight (3). In this example, where the target weight is 4% (assuming 25 stocks), the system will periodically trim positions to maintain this allocation. The user needs to decide how frequently this should occur.
A general rule of thumb is to ensure that the Trim Frequency is not shorter than the Buy-List Frequency. For example, if the Buy-List Frequency is set to quarterly, it is advisable to avoid trimming positions on a monthly basis, as this would lead to more frequent portfolio adjustments than the Buy-Sell list updates.
In this example, we have selected Monthly as the Trim Frequency, meaning the system will review and rebalance the positions every month, ensuring they stay as close as possible to the target 4% allocation. This monthly rebalancing can help maintain a more consistent portfolio structure but may also result in slightly higher transaction costs due to the more frequent adjustments.

Once the Trim Frequency has been set, the user must decide what Trim Boundary (2) should be applied to trigger rebalancing in the portfolio. This determines how much deviation from the target weight (in this case, 4%) is acceptable before the system rebalances. If the user wants the holdings to be reset to 4% every month, regardless of the deviation, they could set the boundary at zero. However, this may result in excessive trading, which could increase costs.
To avoid unnecessary transactions, the user could set a rebalancing trigger only when the deviation exceeds a certain percentage, such as 50%. This means that a stock would only be rebalanced if its weight deviates by more than 50% from the target. Setting the boundary at 0% is generally not recommended, as it would lead to constant rebalancing even for small deviations. As a general rule of thumb, we recommend using a 33% threshold as a minimum to strike a balance between maintaining the target weight and minimizing turnover.
Additionally, if the strategy generates Hold Positions, the user will need to decide how to manage Trim Down Overweight Stocks and Trim Up Underweight Stocks. To reduce turnover, one possible approach is to use the "Holds Only" option for overweight positions (trimming down) and "Buys Only" for underweight positions (adding more). This method ensures that only necessary adjustments are made, helping to preserve portfolio stability while minimizing unnecessary trading. If the strategy does not generate any Hold Positions, these settings will not impact the portfolio.
Finally, the user can set the ownership limit for each stock (4). This limit defines the maximum percentage of each stock’s market float that the portfolio can own. As a general guideline, we recommend limiting ownership to 10% of Market Float to avoid liquidity issues and potential market impact when trading larger positions. This rule ensures that the portfolio remains diversified and prevents the concentration of too much ownership in any one stock, which could lead to reduced flexibility in buying or selling that stock.
Once all settings have been configured, the user must click on the Save button (5). After doing so, the system will automatically redirect the user to the Buy-Sell List page, where they can review the stocks selected for purchase or sale according to the strategy's rules. This allows the user to verify that the strategy is correctly implemented before moving forward with additional steps, such as running the backtest or making further adjustments to the strategy's parameters.

Next, to generate the initial backtest, the user should click on the Backtest Result tab (1) and then select the Trigger a Backtest button (2). This will initiate the backtest process, allowing the system to simulate the strategy's performance based on the selected parameters, including the Buy-Sell rules, stock weights, trim settings, and rebalancing frequency. Once triggered, the backtest will calculate historical results for review and analysis.

Please be patient, as generating a backtest for several years may take a few minutes to complete. The process involves running complex calculations over historical data, so depending on the length of the backtest and the number of variables involved, it could take some time before the results are available.

Accessing the Strategy Module
Creating a New Strategy
Defining Ranking, Buy and Sell Rules
Advanced Configuration
Analyzing Back-Test Results
Sector Weights and Strategy Description