No. of Recommendations: 9
The NAS100 has been a winner, and less rebalancing had higher CAGR (with no friction, 40 years from 19850201 to 20241113):
Screen CAGR GSD
NazNoRebalHold1day 15.8 26 hold 1 day
NazNoRebal 14.5 27 hold 21 days
NazDecadeRebal 14.7 26 hold 21 days
Naz5yearRebal 13.1 26 hold 21 days
NazAnnualRebal 12.2 26 hold 21 days
NazMonthlyRebal 11.6 27 hold 21 days
The best rule was: never sell. Maybe sell for some specific reason, but in general, selling lost CAGR. The best CAGR was buying a NAS100 stock on the first day it appeared on the list. Waiting a month had slightly lower CAGR.
Selling based on the announcement date (with no friction, 25 years from 20000403 to 20241113):
Screen CAGR GSD MDD Sharpe AT Depth
NazNoRebal 8.1 27 -75 0.38 0.2 100
NazMonthlyRebal 6.9 28 -80 0.33 0.6 100
NextAnnouncementDateIsCloser 8.7 29 -76 0.39 8 53
LastAnnouncementDateIsCloser 5.2 27 -80 0.26 7 53
NextAnnouncementDateIsCloser_top30 9.3 30 -74 0.40 12 33
LastAnnouncementDateIsCloser_btm4 13.4 30 -71 0.55 34 6
These screens use [qsdays] which is days since the latest quarterly announcement.
{NextAnnouncementDateIsCloser} picks the highest 50 [qsdays]. This includes stocks that will announce earnings in a few days. CAGR is about the same as {NazNoRebal}.
{LastAnnouncementDateIsCloser} picks the lowest 50 [qsdays]. This includes stocks that have recently announced earnings. CAGR is lower than {NazNoRebal} and {NazMonthlyRebal}.
{NextAnnouncementDateIsCloser_top30} picks the highest 30 [qsdays]. This is a tuned screen, with the magic number 30 resulting in the highest CAGR. The screen holds the 30 stocks that announced earnings longest ago. CAGR is slightly higher than {NazNoRebal}.
{LastAnnouncementDateIsCloser_btm4} picks the lowest 4 [qsdays]. This is a tuned screen, with the magic number 4 resulting in the highest Sharpe ratio. The screen holds the 4 stocks that have most recently announced earnings. CAGR is higher than {NazNoRebal}.
https://gtr1.net/2013/?~NazNoRebal:h21r0::nas100.a...https://gtr1.net/2013/?~NazMonthlyRebal:h21::nas10...https://gtr1.net/2013/?~NextAnnouncementDateIsClos...https://gtr1.net/2013/?~LastAnnouncementDateIsClos...https://gtr1.net/2013/?~NextAnnouncementDateIsClos...https://gtr1.net/2013/?~LastAnnouncementDateIsClos...===== Some notes on the date fields =====
There are period-end dates and announcement dates.
>>>The field I used:
Create [qsdays]: Days since latest quarterly announcement
qsdays: minus(ord(1),qsdate.s)
>>> Period-end dates are:
In SIP, DATE_EQ0 is the end date of the current quarter (not yet filed). For example, November 16th DATE_EQ0 is:
20241231 for AAPL
20241031 for NVDA
SIP field names for quarter ends:
PEREND_Q1 Ending date Q1
DATE_EQ0 Date--Est EQ0 fiscal quarter end
gtr1 field names for quarter ends:
perendq1.s [SI Q1 Ending Date as Ordinal]
dateeq0.s [SI Latest Quarterly EPS Date as Ordinal]
>>> Announcement dates are [field, description, default, start date]:
qsdate.s [SI Quarterly Surprise Date as Ordinal] -9999 20000331
The date on which the latest quarterly announcement was made by a company.
repdtq0.s [SI EPS Est Q0-Exp Rep Date] -999999 20120629
The day on which a company is expected to announce its quarterly earnings for the current fiscal quarter.