Taking too long? Close loading screen.

Public Model

Based on Graham (Canada)


Benjamin Graham is the father of value investing, and the success of his strategy was based on value and company fundamental strength with an emphasis on survivability and stability. The approach was initially created over 80 years ago when the Graham and Dodd’s college textbook “Security Analysis” was published.

Graham’s approach focuses on the idea of an intrinsic value which is justified by a firm’s assets, earnings, dividends, and financial robustness. Focusing on this value, he felt, would prevent an investor from being misled by the misjudgement frequently made by the market in times of deep pessimism or euphoria.

This strategy is well described on his book  “The Intelligent Investor,”  first written in 1947.

First, it’s important to note that this is not an optimized model – it simply screens stocks as per Graham’s rules and have them ranked in a more optimal level.  Therefore, I view this public model as an active investing model, rather than a more elaborated trading one.

This is a low-turnover model; although purchased stocks are hold for at least 4 weeks, the model is rebalanced weekly due to market signal (as a first filter, to either be in cash or in stocks, according to the rule of this model).

This model is based mostly on fundamentals, and it has been revised to contain a market timing rules, besides momentum criteria for the ranking. According to backtests, the model avoid big drawdowns, however there will be times where the model switches to cash while the market keeps making new highs. That`s by design, since the market timing rules for this model is meant to reduce risk when earnings are estimated to decline broadly in the market – avoiding prices falling further due to negative sentiment. However, the market might stay overvalued a long time and continue making new highs. That doesn`t change the risks of overvaluation, so it`s prudent to follow the signals to minimize the risks associated with market correction.  The model will go back to equities (even if stock prices didn`t correct broadly), as long as it`s supported by rising estimated earnings (which drives stock prices).


Backtest summary performance with current market timing rules applied:


Detailed backtest performance shows maximum drawdown as well as % of invested stocks across different periods:


Backtest performance info:


Backtest stats info:


Backtest risk info:


Backtest Histogram Excess performance (holding for 4 months, which is the average duration for the stocks sold for a loss, rotating it weekly):


Backtest Histogram Portfolio performance (same period):

The universe for this model are the stocks in TSX only – so no Venture Exchange companies.

Buy rules:
– Price > $5 (no penny stocks);
– Current ratio is at least 1.5;
– Long term debt is less than 110% of working capital;
– Last 4 quarters of EPS above breakeven;
– Last 5 years of EPS above breakeven;
– Annual EPS grew over past year and past 5 years;
– Company has paid dividends within past year.
– Rank >= 80
– Average daily total (price * volume) from last 60 days > 100,000

The top 10 companies of the ranking are selected.

Sell rule:
– Ranking < 80

The ranking is built by having equal weight distribution (25%) to the following criteria: Value, Growth, Quality and Momentum.

Value: 65% based on income stream (Current Fiscal Year Projected P/E Ratio, Projected Price/Earnings to Long Term Growth Rate and Market Cap to Adjusted earnings) and 35% based on others (Enterprise Value to Sales, Enterprise Value to Enterprise Asset and a conditional PB that will be applied only if 5-year ROE is above the industry average). These parameters consists the new ranking, updated for November 2015 rebalance, and described here.

Growth: 75% based on EPS growth (change per quarter, TTM and 5 years) and acceleration (formula for recent and long term acceleration ratio) and 25% based on sales growth and acceleration (same interval as EPS growth and acceleration).

Quality: 25% based on operating margin % (TTM and 5-year average), 25% based on asset turnover, 25% based on ROI and ROE (TTM and 5-year average) and 25% based on Finances (current ratio, interest coverage, total debt to capital ratio).

Momentum: 65% based on price changes (ratio between today and different past periods) and 35% based on technical indicators (up down ratio for different periods).

Market Timing rules:
The model relies on estimated earnings for the SP500 companies to enter or exit the market. History shows that when earnings from the biggest 500 US companies decline, the market declines globally (and vice-versa), so it’s more reliable than comparing with earnings from Canadian index, which is too heavy on financials and energy companies, and which the model rarely trades on. Therefore, the model attempt to exit the market when price is estimated to decline due to earnings – not to avoid declines on news, like it happened in 2011 or on a smaller scale, in 2015. History has shown these are short-lived anyway.

First, a daily graph of blended estimated earnings are plotted. This is calculated using a blend of the Current Year and Next Year estimates for the S&P500 stocks. The weight given to the Current Year and Next Year depends on which quarter was the most recent. For each SP500 stocks the following Blended_EPS variable is calculated:

if we’re on Q4 then it uses the Current Fiscal Year estimated EPS mean;
if we’re on Q1 then it uses 75% of the Current Fiscal Year estimated EPS mean and 25% for the Next Fiscal Year estimated EPS mean;
if we’re on Q2 then it uses 50% of the Current Fiscal Year estimated EPS mean and 50% for the Next Fiscal Year estimated EPS mean;
if we’re Q3 then it uses 25% of the Current Fiscal Year estimated EPS mean and 75% for the Next Fiscal Year estimated EPS mean.

The quarters refer to calendar year.

This SP500 Blended_EPS variable above is then computed as (for each stock as “i” from SP500):

num = Sum { Blended_EPS (i) * Shares (i) }
den = Sum { MktCap (i) }

Plotted value: ( S&P500 Close * (num/dem) )

By plotting this daily, a graph is formed. Then, a known strength technical oscillator is used to enter or exit the market when the graph hits a certain threshold value – going to cash when strength confirms a weak signal (which reflects a lower blended earnings, which should move stock prices lower), or going back to stocks when the strength oscillator confirms a stronger signal (which reflects a higher blended earnings, which should move stock prices higher).

Next rebalance date:
November 24, 2019

Last signals (November 17, 2019):
No action required

Current holdings (November 17, 2019):
Below is how the holdings should look like AFTER the rebalance.  This portfolio has an equal weight distribution, so you might want to consider buying / selling shares (where commissions make sense) to achieve the weight below, as a guideline.  It’s ok if you cannot achieve the exact number.  Weight below means how much of the portfolio is on that stock.

Ticker Weight Return Avg Share Cost* Days Held Yield Sector
CGY:CN 9.90% 3.55% $33.90 158 3.19% Industrials
ET:CN 9.30% 1.62% $17.69 18 4.00%
Information Technology
HDI:CN 11.47% 27.50% $12.01 67 2.22% Industrials
KL:CN 11.79% 37.68% $45.04 256 0.51% Materials
RCH:CN 10.69% 11.34% $24.42 123 0.93% Industrials
TIH:CN 12.86% 32.16% $52.96 648 1.54% Industrials

Performance Info:

(last updated on November 17, 2019)


Stats Info:

(last updated on November 17, 2019)



Risk Info:

(last updated on November 17, 2019)


Current holdings allocation:

(last updated on November 17, 2019)


Ranking Information:

(last updated on November 10, 2019)


Market Timing indicator (oscillator based on earnings):

(last updated on November 10, 2019):

Sell signal (switch to cash or bonds) triggers when the blue line crosses below -100;  buy signal (switch to equities) triggers when the blue line crosses above 100:



  1. John

    What platform did you use to generate the above graphs?

    • Rod [Boost Your Income]

      Portfolio123. It’s a platform to design algo trading systems using fundamentals and technical analysis, and simulations are done with non-survivalship biased data. Data is provided by Compustat, which is fed by Standards & Poors Global database, CapitalIQ and Interactive Data. The backtest graph is the result of the buy and sell rules, combined with rebalance and ranking rules, applied to different time frames. The same rules are being used on the live model.

  2. Adam

    Rod, possible to set up a notification on each update? I’m often a few days delayed… sometimes a month delayed. Would love some sort of notification letting me know about an update!

    • Rod [Boost Your Income]

      Hi Adam,

      Since subscription is not required for the public model, there is no way to send notifications. However, updates are done weekly, and it should be in place by Sunday night or Monday morning. This model employs market timing weekly, so it’s a good idea to have a reminder (it can be set on your phone) to check weekly. At this point, only premium models have email notifications.

  3. Slashon (from RFD)

    Hi Rod,

    Is it possible to post the strength oscillator (market timing rules) along with updates? Bi-weekly, or monthly seems sufficient.

    Thank you for your continued work.

    • Rod [Boost Your Income]

      Absolutely, and that’s a great idea. I’ll soon post with the other performance stats.


    • Rod [Boost Your Income]

      Market timing oscillator posted under stats. I’ll update it on a weekly basis, along with other stats info. Thanks for that suggestion.

  4. Alex

    Hi Rod, thanks for creating this, really appreciate it. I was following your thread on RFD off and on previously and recently decided I’d like to try this. After the next re-balance, so Monday November 20th, would I buy all the listed stocks based on their weight after the re-balance? So if buying 50k worth, it would be 50k x weight of each stock?


    • Rod [Boost Your Income]

      Hi Alex,

      Correct, you distribute the weight equally, so you’d start with $5K for each stock. I personally rebalance th equal weight every time there’s $1,000 worth of rebalance to be made.

      Please let me know if there are any other questions.


      • Alex

        Hi Rod,

        Sorry I’m confused by your reply. To follow the model now would i buy 5k of each stock or would it be 50k x the current weight of each stock?


        • Rod [Boost Your Income]

          Hi Alex,

          There are 2 choices: allocate equal weight amount to the stocks ($5k each) or follow the suggested weight model ($50k times the current weight of each stock). Here are the differences:

          When the model started, it had equal weight distribution, so 10% on each stock (if it started with $50k, it would have $5k on each stock). The weights are not perfectly equal now because rebalance happens only if there is a 10% weight deviation between stocks, and winners that have been held for a long time keep driving the weight up. When a sell signal is issued, the proceeds of that sell are used towards the buy of the next stock. If 2 stocks are sold, then I divide the proceeds by 2 and allocate that amount to each new purchase. So which method to use?

          I prefer to start with equal weight, as it balances the risk of the initial stocks when you start, and then the weight will change eventually depending on stock performance. However, that won’t perfectly mimic the model, because the model started before you did. If you truly want to mimic the model performance, then you should have your total amount ($50k) times the current weight of each stock, exactly as the model is setup now. But that means allocating more weight to the winners of the model and less weight to the losers of the model, even though you were not invested on those winners. Hence my personal choice is always to start with equal weight and then go from there.

          This only apply to this model, which doesn’t have rebalance and reconstruction done independently – Premium Models have specific weight allocation, and one should always follow those, as they are rebalanced / reconstructed at every rebalance.

          Please let me know if there are any other questions.


  5. Sam

    Hey Rod – Are you manually entering these trades or if we buy a P123 subscription, the rules entered can connect with IB to algo trade the rules?


    • Rod [Boost Your Income]

      Hi Sam,

      I enter my own trades in P123, as I have different accounts in IB meant for different purposes. P123 offers auto-trade with IB, to have your own models in auto-pilot. See more details here. However, P123 is expensive, and meant to be a platform to design models, so it’s usually recommended that one uses more features than simply their auto-trade feature. This Graham model is public, so any P123 member can copy the rules and ranking and trade themselves, including using auto-trading. It also gives the flexibility for one to modify / improve / optimize the model as well.

  6. Hpad04

    How do you use your market timing rule with your buy sell rule? It appears not part of your buy/sell rule

    • Rod [Boost Your Income]

      The market timing rule is the very first rule checked before it starts scanning for stocks. In Portfolio123, that’s configured under Hedge / Market Timing, where I specify to go to cash if earnings across the board drops according to Lambert’s indicator or switch to equities. Hedge / Market Timing supports formulas for this calculation. Once the model knows that it’s in equities, then it will screen the stocks specific in the Universe (TSX) and go by the rules in the Buy section. Now, it will only buy the stocks that meet these rules. Therefore, the model can hold only a few stocks or maybe nothing (100% cash) if nothing met their buy rules. Portfolio123 doesn’t support Canadian ETFs, so when the market timing flags to go to go to fixed income, the model switches to cash (performance listed in green background), but I personally switch to short term bonds ETF, until the model switches to equities again.

      Please let me know if you have any questions.


  7. TR

    Hi Rod,

    Thank you so much for providing this info. I put my first orders for tomorrow based on your suggestions. I only see 8 picks now. Will there be more?

    • Rod [Boost Your Income]


      The model rebalances weekly, so every week it will be scanning for more stocks that meet all buy rules and are ranked in the top first quintile. Until that happens, the model will continue to hold 8 stocks or less (if other stocks meet the rules to be sold and no other stocks were found to be purchased). For now, this model will have 20% of their allocation in cash.

      Please let me know if you have any questions.


  8. MC

    LNR is taking a beating, would you consider selling and reinvesting the funds elsewhere?

    • Rod [Boost Your Income]

      No, that’s the whole point of trading a model that issues signals via an algorithm. If I lock my losses now, I’m deviating from the model, because it’s supposed to sell when rank falls from the top 20%, and it’s not there yet. This is a model oriented to value, and many times it will find stocks that keeps getting undervalued and hurting performance. So I rather wait for the combination of fundamentals that composes the rank to deteriorate first, before making a decision. Other models have sell rules based on momentum or price reversion, but this model focus mostly on fundamentals to issue a sell signal.

      Having said that, it might continue making new lows until the rank falls enough to have a sell signal, to close lower than today. But it was the lower rank, not performance, that drove that decision. And by consistently following these rules, it allows to take emotions out of the equation.

  9. Randall

    Would you consider doing a Graham model on American stocks?

    • Rod [Boost Your Income]

      At this moment, I’m working to develop new models, and a new US Premium model based on Business Expansion will be launched very soon. I might consider doing a US-based Graham model one day, but it’s not in the short term horizon. Having said that, a lot of the US dividend growth purchases that I post on the blog follows Graham and Lynch principles, and can be used as further candidates for research and purchases.


Submit a Comment

Your email address will not be published. Required fields are marked *

Pin It on Pinterest