Hi, Shrewd!        Login  
Shrewd'm.com 
A merry & shrewd investing community
Best Of MI | Best Of | Favourites & Replies | All Boards | Post of the Week!
Search MI
Shrewd'm.com Merry shrewd investors
Best Of MI | Best Of | Favourites & Replies | All Boards | Post of the Week!
Search MI


Investment Strategies / Mechanical Investing
Unthreaded | Threaded | Whole Thread (11) |
Post New
Author: lizgdal   😊 😞
Number: of 3959 
Subject: Scatter of Dartboard Screen Results
Date: 07/19/2023 3:36 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 3
A Dartboard screen picks at random from the S&P 1500. The average CAGR of a group of Dartboard screens will be about the same as the S&P 1500 equal weight, but there will be variation depending on the depth, backtest length, and start date. The scatter of Dartboard screen CAGRs should roughly scale with the square root of depth and square root of time. Average CAGR and GSD will be similar for Dartboard screens with depths of 20 or 80, but the scatter will be about double for 20 depth compared to 80 depth.

SDcg is the standard deviation of CAGR of 253 portfolios with different start dates.

define SDpop == SDcg * sqrt(yrs * Depth)

Screen             CAGR  SAWR  GSD  Sharpe   AT     From       To     yrs   Depth  SDcg  SDpop
Dartboard2023b20 10.0 8.0 23 0.55 0.25 20130308 20230310 10.0 20 2.35 33
Dartboard2023c80 10.3 8.4 21 0.58 0.25 20130308 20230310 10.0 80 1.14 32
Dartboard2023d320 10.3 8.4 21 0.58 0.24 20130308 20230310 10.0 320 0.55 31

Dartboard2023b20 11.7 7.9 24 0.58 0.26 20030310 20230310 20.0 20 1.75 35
Dartboard2023c80 12.0 8.2 23 0.61 0.26 20030310 20230310 20.0 80 0.86 35
Dartboard2023d320 12.0 8.3 22 0.62 0.25 20030310 20230310 20.0 320 0.46 37

Dartboard2023b20 12.2 7.7 21 0.48 0.25 19570301 20230310 66.0 20 1.00 36
Dartboard2023c80 12.4 8.4 20 0.51 0.25 19570301 20230310 66.0 80 0.46 33
Dartboard2023d320 12.4 8.5 19 0.52 0.23 19570301 20230310 66.0 320 0.21 31


SDpop is roughly constant for the different depths and backtest lengths, and so can be used to estimate the depth needed for a given CAGR scatter. For example, to get a SDcg of 1.5 over 10 years, a depth of about 54 is needed.

Depth = ((SDpop / SDcg)^2) / yrs
Depth = ((35 / 1.5)^2) / 10 = 54


Rebalance and holding time of 5 years was used in the previous screens. Rebalancing every 1 year or never doesn't change results much (r1 is 1 year rebalancing, r5 is 5 year, r0 is never):

Screen              CAGR  SAWR  GSD  Sharpe   AT     From       To     yrs   Depth  SDcg  SDpop
Dartboard2023c80r1 12.6 8.5 20 0.52 0.30 19570301 20230310 66.0 80 0.51 37
Dartboard2023c80r5 12.4 8.4 20 0.51 0.25 19570301 20230310 66.0 80 0.46 33
Dartboard2023c80r0 12.4 8.3 20 0.52 0.23 19570301 20230310 66.0 80 0.48 35
SP1500EqualWeight 12.1 8.4 20 0.49 0.32 19570301 20230310 66.0 1500 0.09 27


https://gtr1.net/2013/?~Dartboard2023b20:h253n5r5f...
https://gtr1.net/2013/?~Dartboard2023c80:h253n5r5f...
https://gtr1.net/2013/?~Dartboard2023d320:h253n5r5...
https://gtr1.net/2013/?~SP1500EqualWeight:h63f0.4:...
Print the post


Author: mungofitch 🐝🐝🐝🐝 SILVER
SHREWD
  😊 😞

Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/21/2023 6:05 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 7
A coupla random suggestions / comments

(1)
Do you know if GTR1 uses a Euclidian division rather than arithmetic division for the mod() operator? For example, as perl does.
In that case, both parameters are converted to integers before it does anything. In perl, for example (5 % 2) gives 1.
If it is Euclidian modulo, and your multipliers aren't big enough, you can get slight problems like a lot of things collapsing to the same value, and/or having (say) stocks with big prices more likely to be picked.

(2)
This appears to be a five year hold test?
Each hold 253 trading days, minimum hold 5 periods.

Two things--
(a)
Is there a reason/necessity for such a long hold to get the test you want?
For example, for a stock no longer in the index, you'll be holding it for up to several years after it is taken out. Maybe what you want, maybe not.

(b)
If you want a one year hold, I prefer "hold 21 days" / minimum 12 periods over "hold 252 days" (or 253) / minimum 1 period.
(GTR1 defaults to 253 trading days, but the average number of trading days in a year over time is generally close to 252, which divides very nicely)
The reason for the difference is that a buyout or delisting will get converted to cash and held till the end of the current holding period.
I believe the latter formulation will have a lot more cash, statistically, since the cash from any given transaction sits around longer before being "recycled" into new positions.
You might have to pick a suitable rebalance interval, measured in the different holding period size.

(3)
The most interesting thing I find from these exercises is how the dartboards did relative to a cap weight portfolio in the same interval, measured the same way.
If you do 100 dartboard portfolios, (and control trading costs at modern low-cost levels), how many outperform cap weight?
One study I read quoted 99 for their test.
The figure will likely vary based on whether you're considering the S&P 1500 or 500 or whatever.
In GTR1 you'd have to add something like a "marketcap > 0" step in the dartboard test, so make sure the same set of fields is populated and you get the same universe of eligible stocks.

Jim
Print the post


Author: Mark19   😊 😞
Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/22/2023 12:54 AM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 0
The most interesting thing I find from these exercises is how the dartboards did relative to a cap weight portfolio in the same interval, measured the same way.
If you do 100 dartboard portfolios, (and control trading costs at modern low-cost levels), how many outperform cap weight?
One study I read quoted 99 for their test.
The figure will likely vary based on whether you're considering the S&P 1500 or 500 or whatever.
In GTR1 you'd have to add something like a "marketcap > 0" step in the dartboard test, so make sure the same set of fields is populated and you get the same universe of eligible stocks.


I understand that in theory cap weighted indexes are awful. The most overvalued stocks take up most of the index. But in practice, they work all to well. The s and p 500 index has beaten our screens, beats almost all newsletters, beats actively managed funds and beats rsp. VOO has a five star rating due its amazing performance. RSP has a 2 star rating.
Print the post


Author: mungofitch 🐝🐝🐝🐝 SILVER
SHREWD
  😊 😞

Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/24/2023 10:57 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 22
But in practice, they work all to well. The s and p 500 index has beaten our screens, beats almost all newsletters, beats actively managed funds and beats rsp.
VOO has a five star rating due its amazing performance. RSP has a 2 star rating.


Well, that's more a sign that the rating in question isn't very sensible than anything else : )

Contrary to your assertion, RSP has higher returns (It has done better in most rolling 5 year periods, and overall since inception), and considerably lower risk than the S&P 500 through SPY or VOO.
What else do you want comparing two investments? Higher risk and lower returns?

There are two main types of risk in this context.
Remember that risk has nothing to do with short term price volatility--the only *real* risk in any investment is the permanent loss of capital.
In a diversified fund like this, that comes primarily from two sources:
(1) Too much money allocated into something highly overvalued.
On any given day, SPY always has more and more dollars invested in anything overvalued, and fewer and fewer dollars invested in anything undervalued.
That causes a long term drag.
...and/or...
(2) Company specific risk, from whatever cause of unpleasant surprises. The concentration risk is 38 times as high for SPY as for RSP.

On both metrics, RSP is much lower risk than SPY, and (despite the recent small advantage for SPY), the better history of returns from equal weighting show that.
(Also the better returns from almost any weighting other than cap weighting, too, but that's another subject)

The cap-weight S&P certainly won't underperform all the time. There will be many multi-year stretches that it does better, when some very large cap things are doing well.
Sometimes the cap weight is ahead by a big amount--at the most extreme, better by an impressive 9%/year in the 5 years ending in March 2000 during the large cap TMT bubble.
But it's rare.

The odds of equal weight beating cap-weight are about 70% in any given rolling five year stretch since 1935.
The average advantage advantage for equal weight across all rolling 5-year stretches is 2.47%/year, which is quite a bit.
The times that the cap weight does better, like the last five years by about 1.8%, are the exception. To bet on that rare advantage being the rule is presumably to rely on luck to triumph over prudence and data.
And, of course, even it were a tie, the cap weight is far riskier in single-company concentration risk, so there's that.
I don't really see the attraction of SPY, personally. Ignore the star rating.

As an aside, there are firms outside the S%P 500.
Of all the companies in the Value Line 1700 data set:
Equally weighted Jan 1986 - June 2023 inclusive: CAGR 12.0%
S&P 500 same dates: CAGR 10.9%
The gap is smaller than typical because the S&P 500 has just ended on a good stretch : )

Standard deviation of rolling 5 year returns:
S&P 500 7.8%.
Equal weight all VL firms: 5.2%.

S&P 500: Five year returns worse than -1.0%/year in 10% of rolling five year periods.
Equal weight all VL firms: Five year returns worse than +5.5%/year in 10% of rolling five year periods.

Let's hear it for a monkey with a dartboard...weighting equally : )

Jim

Print the post


Author: Mark19   😊 😞
Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/26/2023 9:14 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 1
Jim, first your knowledge of investing is just incredible, and the amount you teach us all is just fabulous. If I studied investing 24 hours a day, which is impossible, I would still not know as much as you.

That being said, I listened to an interview with Rob Arnott, and he said that he had a fund that beat the cap weighted index. He then did the opposite of what the fund did and it still beat the cap weighted index. Listening to him, you would think that the worst possible way to invest is with cap weighted indexes.

The thing is in practice the s and p 500, or Wilshire 5000 which has almost the exact same returns are very hard to beat. Re: r.sp, 'This approach tilts the portfolio toward mid-cap stocks and requires high turnover compared with market-cap weighting, increasing transaction costs and adding to its volatility.' Compared to the s and p, it has trailed it over the last 1, 3, 5, 10 and 15 year periods. If you go back to 2000 or so, it has done a lot better than the s and p.

Rob Arnott's own fund, P.RF has also trailed VOO over the last 10 years.

I used to get the Hulbert newsletter, and very few of the newsletters beat the Wilshire 5000, which has very similar returns to the s and p.

I believe you, when you say that over a long period of time, r.sp has beaten the s and p, but I don't know if transaction costs were taken into account.

My point is not that there are not ways to beat the s and p. There certainly are. It is more that when people say it is the worst way to invest, they are very very wrong, which has been proved by all the actively managed funds trailing them.

I myself am a victim of this. I bought, lrgf, mtum, and intf, which are multifactor and momentum funds, and I got crushed by the s and p.
Print the post


Author: rayvt 🐝  😊 😞
Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/26/2023 10:13 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 2
I bought, lrgf, mtum, and intf, which are multifactor and momentum funds, and I got crushed by the s and p.

Do this--go to some finance site and pull up the chart of VOO or SPY for the last 10 years, then add the top 10 stocks of the S&P500 to the chart. What you will see is that a few of those top 10 stocks shot to the moon, thereby pulling the S&P500 up up up.

If you didn't have a significant holding in those stocks, you would have fallen behind the S&P500. Those top 10 holdings are 30% of the S&P500.

https://finance.yahoo.com/chart/VOO#eyJpbnRlcnZhbC...
Print the post


Author: lizgdal   😊 😞
Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/27/2023 10:37 AM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 4
1. The exact definition of the mod function depends on the programming language. I would guess gtr1 is Floating-point Truncated similar to C fmod.

Using a different random number generator can show if there is a problem. The hash function takes a parameter from 1e-25 to 1e25:

from Excel: param0=10^(50*(RAND()-0.5))
Junk: hash(aprc,dspo(1),param0)

The random number generators using hash and mod have similar SDcg.

        Screen         yrs  Depth  SDcg  SDpop
Dartboard2023c80hash2 66 80 0.42 30
Dartboard2023c80hash4 66 80 0.45 32
Dartboard2023c80hash1 66 80 0.45 33
Dartboard2023c80hash3 66 80 0.46 33

Dartboard2023c80mod4 66 80 0.43 31
Dartboard2023c80mod1 66 80 0.46 33
Dartboard2023c80mod3 66 80 0.46 33
Dartboard2023c80mod2 66 80 0.48 35


https://gtr1.net/2013/?~Dartboard2023c80hash1:h253...
https://gtr1.net/2013/?~Dartboard2023c80hash2:h253...
https://gtr1.net/2013/?~Dartboard2023c80hash3:h253...
https://gtr1.net/2013/?~Dartboard2023c80hash4:h253...
https://gtr1.net/2013/?~Dartboard2023c80mod1:h253n...
https://gtr1.net/2013/?~Dartboard2023c80mod2:h253n...
https://gtr1.net/2013/?~Dartboard2023c80mod3:h253n...
https://gtr1.net/2013/?~Dartboard2023c80mod4:h253n...

The gtr1 glossary says: "the function mod first divides the investment's corresponding value in the field referenced by field_ref by divisor_num and truncates the resulting quotient to an integer; the product of divisor_num and the integral quotient is then subtracted from the investment's value in field_ref and the resulting difference (remainder) is assigned to the investment's value in the calling field."

The highest aprc in the S&P 1500 gtr1 data is now NVR $5235. The highest dspo is 24482. I checked the gtr1 numbers for a stock with a high aprc and high dspo, and the calculation looks correct. The 0.0003 difference is small compared to the 0 to 153 range of RandomA.

RandomA: mod(linear(1,dspo(1),23,aprc,97,trm(1,17)),153)

  ticker   dspo:1    aprc      trm:1,17    wgtSum   [RandomA]
LMT 20960 475.50 0.993621 31992.88 15.8809

manual calc check
dspo:1 23*aprc 97*trm:1,17 wgtSum
wgtSum: 20960 10936.50 96.38 31992.88
quotient 209 153 31977
remainder 15.8812
Print the post


Author: mungofitch 🐝🐝🐝🐝 SILVER
SHREWD
  😊 😞

Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/27/2023 12:15 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 5
Re: r.sp, 'This approach tilts the portfolio toward mid-cap stocks and requires high turnover compared with market-cap weighting, increasing transaction costs and adding to its volatility.' Compared to the s and p, it has trailed it over the last 1, 3, 5, 10 and 15 year periods.

Beware the endpoint effect.
The supergiants have clearly just had one of their relatively rare great runs. Most alternatives look bad by comparison lately.
The great majority of folks who haven't been heavily invested in the top few has done quite badly lately, whether in a broad fund, a quant strategy, or a set of hand picked stocks.
This era is much like the late 1990s in that respect, except the biggies are (mostly) much more profitable these days and so not as undeserving as last time around.
Everything else other than "cap weight, all long, all the time" looks like a waste of time...lately. But this too shall pass.

But the operative word here is "rare"--the gigacaps pulling away by a lot is not the usual situation. Nature abhors a vacuum, and markets abhor a get-rich-quick scheme.
The very largest firms are not only not outperformers over the long run, but statistically they are underperformers relative to the dart board.
This shows up over time:
The equal weight RSP has beat SPY overall since inception, and in most of the 3-, 4-, 5-year rolling years since then, more or less what you'd expect over longer time frames.

I continue to observe and predict that avoiding cap weight is likely to get you maybe an extra percent a year over the long run.
I think there are simple ways to tilt the field a bit further in your favour than equal weight to eke out yet another an extra percent with no great effort.
Beyond that it gets very hard to pull off market outperformance reliably.
For example, an equally weighted portfolio of the 200 stocks with the highest ROE in the VL set, monthly after friction, has outperformed SPY in about 60% of rolling year periods since 1986, including (pretty impressively) over the last five year interval.
Overall advantage 3.5%/year, including by about (extremely lucky) 5.2% in the 12 months to June.

I suspect that a very low risk way to get a few extra basis points relative to RSP would be to buy all the same firms, but lag all index changes by (say) a year.
The general rule is that new additions do very poorly in their first period in the index, and index deletions outperform nicely for a while.
Obviously excluding the obvious buyouts and bankruptcies among the index deletions, which you couldn't hold onto even if you wanted to.

Jim
Print the post


Author: lizgdal   😊 😞
Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/27/2023 4:55 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 3
2. A 5-year holding period was used to lower transaction costs. However, in the last year, on average, only 43 S&P 1500 stocks had 10-day average dollar volume less than $2,500,000 . Using 0% friction might be reasonable. So a different rationale is needed for the 5-year holding period. The holding period does not affect the scatter much, and so one can use whatever is convenient.

Randomly choosing a new portfolio every year doesn't affect CAGR much, and has little effect on scatter. Maybe something like:

S&P 1500 5-year rebalance: SDpop 41
S&P 1500 annual rebalance: SDpop 46
S&P 1500 monthly rebalance: SDpop 40
S&P 500 5-year rebalance: SDpop 33
S&P 500 annual rebalance: SDpop 31
S&P 500 monthly rebalance: SDpop 29

Depth needed to get a 1.5 SDcg over 10 years:
Depth = ((SDpop / SDcg)^2) / yrs
S&P 1500 5-year SDpop 41 => Depth 75 needed
S&P 1500 annual SDpop 46 => Depth 94 needed
S&P 1500 monthly SDpop 40 => Depth 71 needed
S&P 500 5-year SDpop 33 => Depth 48 needed
S&P 500 annual SDpop 31 => Depth 43 needed
S&P 500 monthly SDpop 29 => Depth 37 needed

To get a similar scatter, one could rebalance 75 S&P 1500 stocks every 5 years, or rebalance 40 S&P 500 stocks every year. The holding period (5-year, annual, or monthly) has little effect on the scatter.

          Screen            yrs  Depth  AT  SDcg  SDpop  CAGR  GSD    From       To     settings
Dartboard75hash4quin 10 75 0 1.47 40 11 22 20130308 20230310 h253n5r5
Dartboard75hash4annual 10 75 1 1.62 44 11 23 20130308 20230310 h21n12r12
Dartboard75hash4monthly 10 75 11 1.41 38 10 24 20130308 20230310 h21
500Dartboard40hash2quin 10 40 0 1.31 26 11 19 20130308 20230310 h253n5r5
500Dartboard40hash2annual 10 40 1 1.25 25 11 20 20130308 20230310 h21n12r12
500Dartboard40hash2monthly 10 40 11 1.35 27 12 20 20130308 20230310 h21


          Screen            yrs  Depth  AT  SDcg  SDpop  CAGR  GSD    From       To     settings
Dartboard75hash4quin 28 75 0 0.84 39 11 22 19941003 20230310 h253n5r5
Dartboard75hash4annual 28 75 1 1.08 50 12 23 19941003 20230310 h21n12r12
Dartboard75hash4monthly 28 75 11 0.90 42 11 24 19941003 20230310 h21
500Dartboard40hash2quin 28 40 0 0.93 31 11 20 19941003 20230310 h253n5r5
500Dartboard40hash2annual 28 40 1 0.99 33 11 21 19941003 20230310 h21n12r12
500Dartboard40hash2monthly 28 40 11 0.86 29 11 22 19941003 20230310 h21



A 1-year trading date interval was used. Shorter trading date intervals will hold less cash, and follow index changes more closely. The benefits are small, with almost identical CAGR and GSD using 1-month and 12-month trading date intervals. Trying to follow the index closely by trading monthly might lower CAGR slightly.

          Screen           CAGR  SAWR  GSD  Sharpe  AT     From       To      setting   yrs  Depth  SDcg  SDpop
500Dartboard40hash1quin 12.1 8.0 19 0.51 0.3 19570301 20230310 h253n5r5 66 40 0.58 30
500Dartboard40hash1annual 12.1 7.8 19 0.50 0.9 19570301 20230310 h252 66 40 0.63 32
500Dartboard40hash1_12m 11.8 7.7 20 0.48 1.1 19570301 20230310 h21n12r12 66 40 0.69 36


quin uses h253n5r5 setting: rebalance and trade every 5 years.
annual uses h252 setting: rebalance and trade every 1 year.
12m uses h21n12r12 setting: trade monthly, rebalance annually, hold for at least 12 months.

https://gtr1.net/2013/?~500Dartboard40hash1quin:h2...
https://gtr1.net/2013/?~500Dartboard40hash1annual:...
https://gtr1.net/2013/?~500Dartboard40hash1_12m:h2...
Print the post


Author: lizgdal   😊 😞
Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/27/2023 4:56 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 3
3. A normal plot of the 252 {500Dartboard40} portfolio CAGRs shows the distribution is close to normal. There are 9 outliers, with some of the fat tails remaining. For a normal distribution, 97.5% of results will be higher than the mean minus 2 standard deviations, and 84% of results will be higher than the mean minus 1 standard deviations.

In the last 66 years, S&P 500 Equal Weight had a CAGR about 1.6 higher than S&P 500 MktCap Weight. To beat SPY 97.5% of the time, a S&P 500 Dartboard portfolio needs a SDcg less than 0.8. Over 10 years a depth of 150 is needed.

Depth = (SDpop / SDcg)^2 / yrs = ((31 / 0.8)^2) / 10 = 150 depth needed for 97.5% win rate of 500Dartboard40 over SP500MktCapWeight in rolling 10-year periods from 19570301 to 20230310.

A depth of 40 has a 1.55 SDcg over 10 years, and so had about a 84% win rate.
SDcg = SDpop / sqrt(40*10) = 1.55

      Screen       CAGR  GSD  Sharpe  AT     From       To
500Dartboard40 12.0 19 0.50 0.9 19570301 20230310
SP500MktCapWeight 10.3 17 0.44 0.2 19570301 20230310
SP500EqualWeight 11.9 19 0.49 0.3 19570301 20230310
SP1500EqualWeight 12.1 20 0.49 0.3 19570301 20230310


https://gtr1.net/2013/?~500Dartboard40:h252::sp500...

In the last 10 years, equal weight trailed market cap weight, and so the win rate was less than 50%.

https://www.portfoliovisualizer.com/backtest-portf...

I calculated rolling 10-year returns for the 252 {500Dartboard40} portfolios and found a 78% win rate over {SP500MktCapWeight} from 19570301 to 20230310.
Print the post


Author: Mark19   😊 😞
Number: of 3959 
Subject: Re: Scatter of Dartboard Screen Results
Date: 07/27/2023 9:12 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 0
While there is the drag of the costs of rebalancing, I can believe that RSP would outperform voo by 1% per year. I know that from 2000 until now, it has done a lot better.
Print the post


Post New
Unthreaded | Threaded | Whole Thread (11) |


Announcements
Mechanical Investing FAQ
Contact Shrewd'm
Contact the developer of these message boards.

Best Of MI | Best Of | Favourites & Replies | All Boards | Followed Shrewds