In a previous post I described how to construct a stock ranking system that dynamically adjusts to interest rates and seasons of the year.

As you may have noticed, there is a structural issue with this ranking system as only 94% is actually dedicated to ranking proper, while the other 6% is used to define the sub-ranking systems.

Since the last post was published, a colleague pointed out a cleaner way to arrange the ranking system so that the 6% is not misused. He also pointed out a method for continuous node adjustment for the rising and falling interest rates. I changed the ranking system based on his suggestions and rearranged a little to make it even cleaner.

The Rev 2 ranking system starts with a conditional node that is **NEVER** true. I used Month>13 but any equation that never evaluates to true can be used. The sub-ranking systems are placed in the True part of the conditional node. This is very ingenius. These nodes are now defined but never play a part of the overall ranking. Since the nodes are now defined, they can be referenced within the ranking system proper, which is detailed in the false portion of the conditional node.

I balanced the seasonal and interest rate factors, with each given a weight of 50%. The equation I used for combining the falling and rising interest rate nodes is shown in the figure above.

The equation for the seasonal factors is shown above. When comparing the performance of the two ranking systems, it can be seen that the new ranking system has higher performance in the top bucket (right-most bucket). However the buckets are not monotonic at the top end and the second and third buckets on the right side are lower for the new ranking system than the old ranking system. This implies that there is still more work to do with defining the optimization process and also the ranking system as well.

The performance of the system with the new ranking system is less than the old system. Keep in mind that the portfolio was optimized for the first RS, not the second. In any case, the overall performance does not define the best RS at this stage and there are also many more considerations, such as reliability, ruggedness, etc.

Now I would like to point out that the EXCEL spreadsheet that I provided in a previous post is not sensitive enough at the lowest level (10%). The reason I believe so is due to the lack monotonic behavior at the top buckets. This is a recurring theme I am seeing over and over. I will revise the spreadsheet in the near future.

Also, the purpose of these posts are NOT an indication that I endorse this style of optimization. I am showing off the Portfolio123 tools for users not familiar with how to use them, and at the same time exploring and learning.

Thank you