I was replying to RAMcN. Thanks for answering.
I have another basic question. Is this the part where we screen out days where BCC=0:
(some day I’ll become more familiar with GTR1)
I was replying to RAMcN. Thanks for answering.
I have another basic question. Is this the part where we screen out days where BCC=0:
(some day I’ll become more familiar with GTR1)
I’m no expert myself; I neither created the timing rule nor pretend I can recreate it from scratch, but yes my understanding is when multiple signals agree you are going to cash
No, that’s just defining BCC. The bit that actually uses it is farther down:
Close all liquid positions and hold cash on any market dates where [BCC = 0].
ratio(sma(1,5),tr(1,150)) bottom 1
This picks the ETF with the lowest price. That doesn’t sound useful.
Recent price weakness is a good thing across backtests.
I don’t think it necessarily selects recent price weakness. ratio(sma(1,5),tr(1,150)) bottom 1. For two stocks with the same tr(1,150), the one with the lowest sma(1,5) will be selected, no matter what the recent relative performance is between the two stocks.
The unit for ratio(sma(1,5),tr(1,150)) bottom 1 is “$” (sma is $ and tr is dimensionless), therefore it is not checking recent performance.
Craig
“A moving average is a statistic that captures the average change in a data series over time. In finance”
investopedia
So, 5 days close pricing for stock A, $5, $6, $7, $8, $9, sma (1,5) = $7.
For stock B, $9, $8, $7, $6, $5, sma (1,5) =$7.
Not sure how this captures if a stock is rising or falling.
But the question was really about selecting low price stocks.
Stock A sma(1,5) = $10, tr (1,150) =2 the ratio = $5
Stock B sma (1,5) =$100 tr (1,150)=2 the ratio is =$50
Therefore stock A is selected as it is the lower price stock.
In this example, tr(1,150) for stock B could be 10 times greater before stock B is selected.
Craig
Craig
I see the point; I will have to think about it. Why low price generates a good return makes no logical sense.
Its got practically nothing to do with that parameter at all.
Check between these
(1) Original : SMA(1,10)/tr(1,150) bottom 1
(2) Gprc(1)/tr(1,150) bottom 1 … just removing the price smoothing… Practically negligible impact
(3) Ratio (1, tr(1,150) ) bottom 1 — ie 1/tr(150) — almost the same
(4) Which of course is same as tr(1,150) Top 1 … ie pick the highest momentum over last 150… almost same as original
The one that DOES a bit BETTER, I think is the condition capturing the spirit of the original …
ratio(tr(1,5),tr(1,150)) bottom 1 … ie pick the short term oversold stock with best long term momentum.
Just to correct something I wrote. The parameter being selected is low gprc not low aprc (actual price). sma(1,5) uses gprc to calculate the moving average. I checked this by looking at the 10 lowest priced stocks in the NAS100. The lowest sma is the second lowest price. The third lowest price, INTC has a very high sma.
Stock | field1=aprc:1 | field2=sma:1,5 | field3=gprc:1 |
---|---|---|---|
SIRI | 6.36 | 1.749405 | 1.729284 |
LCID | 11.46 | 1.280741 | 1.216821 |
INTC | 29.89 | 1453.308 | 1439.247 |
CSX | 30.95 | 397.2033 | 390.9134 |
CMCSA | 34.26 | 2.834605 | 2.845069 |
KDP | 36.84 | 14.32213 | 14.33769 |
EXC | 37.48 | 1554.074 | 1527.933 |
KHC | 37.75 | 1.668544 | 1.690578 |
WBA | 40.13 | 40040.61 | 39677.32 |
MRVL | 43.93 | 4.163209 | 4.206491 |
Craig
Take a look at:
{QQQ}{SPY}{DCP}
Tr(1,130) top 1
With timing
CAGR 21,3 20040701 to 20221207
GSD 25.3
LDD 12.5
MDD -37.2
UI 11.5
SHARPE .88
BETA .64
The url contains wt followed by the first letter in “follow” so it won’t let me post it.
You can probably post it using the compressed URL.
Why DCP - this is a pipeline company? Did you mean DJP? If so, this produces a much lower CAGR from 12/31/08.
Yes DJP. So much for typing just from memory!
I liked simplicity tr(1,130) top 1 with timing
cagr 16.3 from end of 2008
sharpe .98
beta .67
ldd 10.4
mdd -29
2022 +25
2008 +8
http://gtr1.net/2013/?!!QlpoMTFBWSZTWdb4n!2FcAAkefgCIHf!2FA89!2FqgP!2B!2Fe4EACTYdLotoSUTQIYgaAABoAyaAEoEFPRqp!2BjVPJqbQxR6jBDRhqMGp5VNNAYINAyMRoA0aaaYEkmoE2hPVPRDaho0Ghp6jagPUH4GSbisooVTK!2BT7U19ydUeiFlTU99Y4PDJMcsxJkG7HFgaJYQEwjWUjeIbBaiEDM6QbBBJKNA7hCFPFTL7Dv2SMAM2yFghLrp2UmjKRbUO5U3mjPgT4nQdA5MqpVtD5WfChupDrJUUU3pr5oZoZ464e8M9bwaAGVDIxi5mo1LoLBxoFRbKwIslIUsrQUrwlOVoj0R1KVXmrCFEmCplbCsHPkIkGmj6kUBVp2XTJ2J5KBQxfEEDwcmBGxkgdREHFScnHET0BxNvH5VZYFhonBJxiPnt693ZXVGDs05O8SrOe03KY4!2BSGmwKKnAuh4CF007ybQaHecEYGSNYXiIoxJkTB8o0LTZBcUXAZEAcQmKURRxqkfE55zNKnOpSgx031HwXXllgDyivgIHAu9655Z0FKAjYE76N!2BGSYKvsILl20hrVcZjUjOp1!2BAOCPPUq!2FipqQdRoMUe1o5mBU!2FihiJobeEgcLVJBrxXHDuRGqLciNR0heX4cwTMUkAGJ4UM8zyilwQhqA3BOj8YVaJVG3SFxJ2szZGNiXA3i2VgmHuazDkzquhLXTZi1IZHlMYtKZQGu3MODIgfy2gRtC5RdBus2BOSYLwS5Kl8z4F3JFOFCQ1vif9w!3D
First of all Excellent follow up - which to me opened up a bunch of questions. In fact there are multiple themes/dimensions to them - so I will (hopefully with Fool’s allowance) break them up into multiple posts - so that they are bit easier to follow
(1) Theme/Observation 1
Tr(1,130) as the Momentum sort : This is nothing but RS26W ( ie very very similar) … This actually is very good - because although it might seem like groupthink - but on parameters like these - a convergence is better from a stability standpoint. ie
What’s worked in the past before - seems to be applicable!
NET MSG:
(a) The screen is a GTTA category. Trades 3 asset classes - SP500 (LC) , NDX100 ( LC Tech) and Commodities (DJP)
(b) Uses a criteria similar to RS26W - simpler here, its simply Price momentum
I am tagging FC (@FlyingCircus ) here who’s the resident expert in Asset Class Momentum screens.
(2) Theme Observation 2: Extending the timeframe and an alternative ( variant of the original from @musselmant and @brian304 )
Key assumption : The basic stumbling block here is the Commodity Index fund … so what I did was to actually use the old Goldman Sachs Commodity Index (SPGSCI) itself. Its not tradeable of course - so what I did was to compare the screen from the 2006 period when DJP and the other ETF variants all have data - and added a friction parameter to equalize the returns. This is between 0.2% to 0.25% - at .25 it underperforms the ETFs screen. I went with 0.2% - which is roughly 2x friction of most MI screens - ie seems to have intuitive justification
Using this the test goes back to 1981 ( I am using the Fidelity Tech fund - because for some reason the Yahoo NDX Index data starts at 1987 - I wanted to get close to the LAST TIME INFLATION was an issue as much as possible. Basic guesstimate would be this would have done decently because of the commodity mix in the 1970s). If any of the GTR experts can extend the NDX100 - that should be the correct benchmark.
First the results comparison
Period 1981 Onwards | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Full criteria | Avg | Min | Max | SD | Tr(130) Momentum | Avg | Min | Max | SD | |
CAGR: | 17.36 | 16.09 | 18.48 | 0.63 | CAGR: | 14.88 | 14.10 | 15.92 | 0.51 | |
SAWR(20; 0.95): | 9.39 | 7.98 | 10.39 | 0.57 | SAWR(20; 0.95): | 6.93 | 5.13 | 9.42 | 1.25 | |
LDDD3: | 8.43 | 7.75 | 10.09 | 0.62 | LDDD3: | 10.02 | 8.43 | 11.86 | 0.86 | |
MDD: | -41.86 | -52.49 | -40.43 | 3.03 | MDD: | -50.73 | -60.56 | -40.43 | 5.91 |
As is obvious the Full Criteria beats out the simple 130 day momentum over longer periods. Why?
(a) Well I had tested each and every piece of the initial criteria before - to know that ALL had value
(i) TR (1,130) Top 3 : This is REDUNDANT here. One of the classes tested before was Bonds. That to me makes little sense - why?
The KEY DIFFERENCE between this screen and standard Asset Class Momentum Switchers is the use of BCC timing - that’s an equity indicator - specifically Nasdaq and SP500 - so perfectly suited for this test!
So essentially the concept of rotating into an alternative asset class ( neg or partially correlated with equity indices) like Bonds, Gold, Commodities etc is not fully applicable.
Adding BONDS reduces returns with BCC… ie if BCC is active no point into defensive rotation
(ii) TR (1,270) Top 2 : This is the one - it helps in the long term and reduces risk to a certain extent. Actually its more or less consistent between 270 to 300. And you can extend it between 300 to 500 - for a few decimals in return - but that’s data mining.
I chose 270 - because its roughly 2x of the shorter momentum period. 250 dont work - it just has to be longer than 1year in my observation.
(iii) tr(1,5)/tr(1,130) ratio: ST Oversold. Does just a bit better and reduces MDD by about a few points. Anything between 5 to 10 works
And here’s the screen criteria ( My alternative - you can just drop most of the others to come to the 1,130 momentum)
(3) Asset Class contribution: The next test is the sequential test of adding each asset class in the ,mix ( To replicate - just drop each symbol and add and ensure the criteria has Top 2 , 3 etc. )
SP-500 | Avg | Min | Max | S&P500 and NDX | Avg | Min | Max | ALL 3 ( with Comm) | Min | Max | |
---|---|---|---|---|---|---|---|---|---|---|---|
CAGR: | 12.2 | 12.2 | 12.2 | CAGR: | 16.1 | 15.2 | 17.5 | CAGR: | 17.4 | 16.1 | 18.5 |
SAWR(20; 0.95): | 7.9 | 7.9 | 7.9 | SAWR(20; 0.95): | 9.4 | 8.2 | 10.0 | SAWR(20; 0.95): | 9.4 | 8.0 | 10.4 |
LDDD3: | 6.8 | 6.8 | 6.8 | LDDD3: | 9.6 | 8.8 | 11.4 | LDDD3: | 8.4 | 7.7 | 10.1 |
MDD: | -33.8 | -33.8 | -33.8 | MDD: | -50.0 | -60.3 | -42.4 | MDD: | -41.9 | -52.5 | -40.4 |
KEY MSG: NDX is needed for the returns … Technology is the equity class to own - but it increases MDD substantially inspite of BCC. And this is where the addition of the slightly negatively correlated Commodities shines thru … it increases return a bit while decreasing both LDDD3 (Jims metric) and MDD.
Net : If you are risk averse SP500 is best - else all 3.
The following table shows the holds by year for each iteration
VFINX | Avg | VFINX, FSPTX | Avg | Min | Max | Usage | With Commodities | Avg | Min | Max | Usage | Neg Correlation |
---|---|---|---|---|---|---|---|---|---|---|---|---|
19811231 | 2.5 | 19811231 | 2.1 | -2.9 | 9.2 | S&P | 19811231 | 2.1 | -2.9 | 9.2 | S&P | Align |
19821231 | 27.9 | 19821231 | 71.1 | 53.4 | 91.8 | NDX | 19821231 | 71.1 | 53.4 | 91.8 | NDX | Align |
19831230 | 17.1 | 19831230 | 45.3 | 39.2 | 48.2 | NDX | 19831230 | 45.3 | 39.2 | 48.2 | NDX | Align |
19841231 | 3.8 | 19841231 | -2.7 | -15.7 | 3.8 | NDX | 19841231 | 1.1 | -12.2 | 3.8 | With Comm | Inverse |
19851231 | 22.6 | 19851231 | 20.8 | 10.7 | 30.5 | NDX | 19851231 | 19.0 | 10.7 | 32.4 | With Comm | Align |
19861231 | 9.3 | 19861231 | -5.0 | -9.5 | 0.6 | NDX | 19861231 | -5.0 | -9.5 | 0.6 | NDX | Align |
19871231 | 4.7 | 19871231 | -5.2 | -24.7 | -1.8 | NDX | 19871231 | -4.6 | -18.3 | 5.9 | NDX | Align |
19881230 | 17.2 | 19881230 | 5.2 | -1.2 | 15.2 | NDX | 19881230 | 13.4 | 4.4 | 21.9 | With Comm | Align |
19891229 | 31.4 | 19891229 | 20.5 | 15.6 | 24.7 | NDX | 19891229 | 2.9 | -7.0 | 14.9 | With Comm | Align |
19901231 | -3.3 | 19901231 | -7.9 | -13.3 | -4.0 | NDX | 19901231 | -16.9 | -29.0 | -6.5 | With Comm | Align |
19911231 | 30.2 | 19911231 | 45.6 | 40.2 | 49.0 | NDX | 19911231 | 45.6 | 40.2 | 49.0 | NDX | Align |
19921231 | 8.2 | 19921231 | 3.1 | -9.0 | 9.3 | NDX | 19921231 | 3.1 | -9.0 | 9.3 | NDX | Align |
19931231 | 9.1 | 19931231 | 27.3 | 22.2 | 28.7 | NDX | 19931231 | 25.9 | 21.1 | 28.7 | With Comm | Align |
19941230 | -1.9 | 19941230 | -2.2 | -4.3 | -0.3 | S&P | 19941230 | -3.2 | -10.1 | -0.3 | S&P | Align |
19951229 | 37.4 | 19951229 | 44.1 | 42.8 | 45.5 | NDX | 19951229 | 43.1 | 36.1 | 45.5 | NDX | Align |
19961231 | 22.9 | 19961231 | 16.1 | 3.4 | 26.4 | NDX | 19961231 | 15.4 | 6.7 | 24.8 | NDX | Align |
19971231 | 33.2 | 19971231 | 5.7 | 1.3 | 15.9 | NDX | 19971231 | 1.3 | -10.6 | 17.1 | With Comm | Align |
19981231 | 28.6 | 19981231 | 62.7 | 43.1 | 76.5 | NDX | 19981231 | 62.7 | 43.1 | 76.5 | NDX | Align |
19991231 | 21.1 | 19991231 | 133.4 | 133.4 | 133.4 | NDX | 19991231 | 126.0 | 100.6 | 151.2 | With Comm | Align |
20001229 | -9.1 | 20001229 | -4.0 | -18.4 | 7.5 | NDX | 20001229 | 21.2 | 9.7 | 30.5 | With Comm | Inverse |
20011231 | -4.5 | 20011231 | -4.5 | -4.5 | -4.5 | S&P | 20011231 | -12.8 | -16.0 | -9.0 | With Comm | Align |
20021231 | -7.2 | 20021231 | -16.6 | -25.2 | -11.6 | NDX | 20021231 | 1.8 | -5.8 | 10.4 | With Comm | Inverse |
20031231 | 22.7 | 20031231 | 49.6 | 46.7 | 51.9 | NDX | 20031231 | 45.0 | 30.8 | 59.9 | With Comm | Align |
20041231 | 10.7 | 20041231 | 8.0 | 5.3 | 11.7 | NDX | 20041231 | 0.6 | -9.2 | 17.0 | With Comm | Align |
20051230 | 4.8 | 20051230 | 0.3 | -2.9 | 3.2 | NDX | 20051230 | 25.1 | 7.5 | 40.3 | With Comm | Align |
20061229 | 15.6 | 20061229 | 6.1 | 2.0 | 8.4 | NDX | 20061229 | -13.2 | -20.4 | -5.0 | With Comm | Inverse |
20071231 | 5.4 | 20071231 | 12.3 | 7.8 | 19.8 | NDX | 20071231 | 17.7 | 7.3 | 33.1 | With Comm | Align |
20081231 | -10.1 | 20081231 | -20.8 | -23.0 | -18.0 | NDX | 20081231 | 10.8 | 10.8 | 10.8 | With Comm | Inverse |
20091231 | 34.6 | 20091231 | 65.0 | 65.0 | 65.0 | NDX | 20091231 | 65.0 | 65.0 | 65.0 | NDX | Align |
20101231 | 14.9 | 20101231 | 26.7 | 26.7 | 26.7 | NDX | 20101231 | 26.0 | 16.4 | 26.7 | NDX | Align |
20111230 | -7.0 | 20111230 | -9.7 | -12.8 | -6.9 | NDX | 20111230 | -9.1 | -14.0 | -5.0 | NDX | Align |
20121231 | 14.0 | 20121231 | 11.4 | 6.1 | 14.7 | NDX | 20121231 | 9.8 | 4.0 | 14.7 | With Comm | Align |
20131231 | 32.2 | 20131231 | 32.6 | 30.9 | 34.5 | S&P | 20131231 | 32.6 | 30.9 | 34.5 | S&P | Align |
20141231 | 13.5 | 20141231 | 10.5 | 6.8 | 14.0 | NDX | 20141231 | 10.5 | 6.8 | 14.0 | NDX | Align |
20151231 | 0.2 | 20151231 | -1.3 | -2.6 | 0.8 | NDX | 20151231 | -1.3 | -2.6 | 0.8 | NDX | Align |
20161230 | 9.1 | 20161230 | 5.0 | 2.7 | 11.0 | NDX | 20161230 | 5.0 | 2.7 | 11.0 | NDX | Align |
20171229 | 21.7 | 20171229 | 49.8 | 49.8 | 49.8 | NDX | 20171229 | 38.7 | 31.2 | 49.8 | With Comm | Align |
20181231 | -4.5 | 20181231 | -0.7 | -6.5 | 2.2 | NDX | 20181231 | -10.5 | -21.8 | 3.8 | With Comm | Align |
20191231 | 31.3 | 20191231 | 39.6 | 34.9 | 42.8 | NDX | 20191231 | 39.6 | 34.9 | 42.8 | NDX | Align |
20201231 | 18.2 | 20201231 | 63.9 | 63.9 | 63.9 | NDX | 20201231 | 63.9 | 63.9 | 63.9 | NDX | Align |
20211231 | 28.5 | 20211231 | 17.7 | 9.7 | 25.6 | NDX | 20211231 | 6.8 | -14.2 | 25.9 | With Comm | Align |
20221208 | -13.6 | 20221208 | -16.2 | -19.3 | -13.6 | NDX | 20221208 | 23.8 | 12.3 | 31.1 | With Comm | Inverse |
% times Positive year | 78.6% | 69.0% | 78.6% |
@anchak
Why does substituting QQQ for FSPTX produce such inferior results?
Initially, I attributed it to its shortened history. But, recent yearly returns are significantly lower as well.
Here’s what I used: GTR1 Backtester - Good Musselmant with QQQ - With Commdities
Its got International exposure - the benchmark is slightly different. It closely matched NDX till 2019 - but then it diverged a bit looks like