New function released: NodeRank()

This is now available under FUNCTIONS->RANKING & SORTING. Please read the Full Description for examples and usage. Here’s the Full Desc:

NodeRank(‘‘name’’): Returns the node rank within a ranking system. Please see the Full Description for details and examples.

Parameter ‘name’: The name of the node.

This function gives you access to the ranks of a component of a Ranking System. You can retrieve the rank of simple input node, function or a composite node. For example if the ranking system MomentumValue is used, the following returns stocks that have a high Valuation component:

NodeRank(“Valuation”) > 90

Important Notes:
NodeRank() can be used inside a Ranking System to create dynamic ranking based on ranks of other components. For example by using the Conditional node you could select a different set of factors and weights if a component scores high or low. The node being referenced must be defined on top of the node that uses NodeRank().

The function can be used in Buy/Sell and screener rules. However the simulation will run much slower since the ranks must be computed everytime the simulation is run to access the individual components.

Hi Marco,

Sounds like a very great function to be used in a ranking system. However, I still don’t quite understand the proper way of using this function within a ranking system. Is it possible if you can create a ranking system example to show how this function can be used? Many thanks.

BR

Al

I have the uneasy feeling that P123 is paying too much attention to arcane minutiae.

There are 399 open Feature Requests, some dating back years. While they are of mixed quality, they do represent the desires of the people paying the rent, and it’s disconcerting to see them ignored altogether in favor of other items like this.

Just my two cents. Anybody?

I couldn’t agree more - right on !!!

Lindsay

We are aware of that. But it was relatively easy to do and one of our clients who helped us a lot asked for it. Be assured that the Feature Requests is how we normally keep track of things to do.

1 Like

See attached error.


Steve, the Yield node has a weight of 0, the conditional 100, so the yield node is never calculated

1 Like

I need some help .

See my ranking system Alpha21

http://www.portfolio123.com/app/ranking-system/98402

A simple system . First rank the universe for ROC5 , ROC10 , ROC15 and ROC21 .

Now use the new function NodeRank() to obtain the rank for each .
Add the 4 ranks and then finally rank the totals of the 4ranks for a final rank .

Easy ? Not for me . I get stuck . Can someone please help ?

Hugh

Hi Marco -
Please check out the two cases shown in the attachment. The first gives an error when it shouldn’t. The second case doesn’t give an error when it should.
Steve


Hugh - The ranking nodes have to be defined above the final rank. So try shuffling the nodes around.

Steve

This is the most unusual ranking system I’ve seen in a long time. Look at the attached 20-bucket returns (5 years, weekly rebal): Smooth rise to peak at 35% CAGR for bucket 17, and then negative returns for buckets 18-20. Siimilar, but not so striking, effect for 4 week rebal.


Jerrod / Hugh - I wouldn’t invest too much time in this until the bugs I identified in the previous post are fixed.

Steve

Thanks Steve. I agree

Hugh

Steve,

You have the Yield node weight set to 0.01%. Nodes with miniscule weights are ignored and not ranked for efficiency reasons. The NodeRank therefore cannot find the rank and gives that generic error.

To fix this change the Yield weight to 0.1%

Marco

Thanks Marco - it seems to be behaving as I would expect now.
Steve

I understand how to use it in the sim and also i understand i can use it in the screener using the Frank+previous method.

Excuse the bump, I thought this was interesting.

What is the minimum weight to be used in Ranking system such that the factor is not ignored. Is it 0.1%?

The minimum weight was and is 0.01%. But now nodes no longer require their weights to be normalized, so it should be considered 0.01% of the sum of the weights. It's recommended to steer clear of weights near 0.01% as rounding and normalization can cause them to dip slightly below the threshold.

2 Likes