Download software Tutorial videos
Subscription & data-feed pricing Class schedule


New account application Trading resources
Margin rates Stock & option commissions

Attention: Discussion forums are read-only for extended maintenance until further notice.
Welcome Guest, please sign in to participate in a discussion. Search | Active Topics |

Plot the Rank Rate this Topic:
Previous Topic · Next Topic Watch this topic · Print this topic ·
thnkbigr
Posted : Wednesday, September 27, 2017 4:36:57 PM
Platinum Customer Platinum Customer

Joined: 3/31/2006
Posts: 3,207

Bruce 

Is there any way in TC we can plot the Price Rank of the stock as a graph under price 

This is what you have wriiten in the past that I use to screen for stock w Ranks > 75

40 * C / C63 + 20 * C  / C126 + 20 * C / C189 + 20 * C / C252 - 100

Bruce_L
Posted : Wednesday, September 27, 2017 4:56:19 PM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

No, it is not possible to convert that formula from the value it currently returns into a rank to display on the chart or as a WatchList Column.

It is (as you seem to already know) possible create an EasyScan Condition based on this formula and set it to use Ranks. At that point you can adjust the EasyScan Rangefinder to 75 to Max to find symbols which would rank in the top 25% of whatever list is set under Rank Against (even if they are not in that list).



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
thnkbigr
Posted : Wednesday, September 27, 2017 5:24:34 PM
Platinum Customer Platinum Customer

Joined: 3/31/2006
Posts: 3,207

yea that's what I do now 

It would be a great addition if we could plot that Rank as an indicator  

Bruce_L
Posted : Thursday, September 28, 2017 8:46:04 AM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

Thank you for your suggestion.



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
bcochrane
Posted : Friday, September 29, 2017 3:16:12 PM
Registered User
Joined: 9/17/2010
Posts: 484

Adding to the To Do List:

For Fundamentals (Beleive limited to them) I can add "Show Ranking" under the cell in the watchlist.

  1. Hence, we know the number of the ranking, why not allow us to display it, instead of the the value, or in another cell?
  2. And, if we can add that, why not add the ability to to display the ranking number for any PCF? (well, its a lot of work, for one thing)
  3. Another thought: In the interests of full disclosure, I get by pretty well by using Ranking to focus on top 25% of stocks ranked by the IBD RS PCF, and then just using eyeball to refine the search. And the difference between the 98th and the 97th pecentile is too fine to worry about. But it would be nice to use Ranking to shorten the results of a scan to the top 25% and then have a column with a tick mark to indicate in top 10%, say. Of course, if we did that, then I could have multiple columns, with ticks for in top 10%, top 20% etc

Ranking is a nice feature. I suspect it is underused from a lack of publicity (he surmised in total absence of real data), and it would be nice to have a bit more flexibilty. And now on to more immediately productive things :-)

Bruce_L
Posted : Friday, September 29, 2017 3:54:27 PM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

I am pretty sure the program doesn't calculate the rank for each symbol when this is done in an EasyScan. I am pretty sure the program goes through the Rank Against WatchList and calculates the value for the percentale ranks selecting as the top and bottom of the EasyScan Rangefinder using just the Rank Againist WatchList. Then it compares the value calculated for the symbol in the WatchList to Scan of the EasyScan to the values calculated for the Rangefinder.

I could be wrong both about if we do it this way and why we do it this way, but selection algorithms are generally more efficient than sorting algorithms. So finding the value of the symbol at a specific percentile is usually going to be more efficient than calculating the percentile of every symbol.

That said, the Rank Against WatchLists are generally quite large, so I am not quite sure why the List to Scan is not included as one of the Rank Against options.

Also note that we would only need to calculate the percentile ranks of the fundamentals on our servers once per day when they are updated. This rank can then be used for every user wanting to use the percentile rank for that fundamental. For most other items, you would need to update the percentile ranks fairly frequently with different users wanting to calculate the percentile ranks of their own particular indicators or calculations.

Thank you for your suggestions.



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
bcochrane
Posted : Friday, September 29, 2017 5:18:19 PM
Registered User
Joined: 9/17/2010
Posts: 484

Oh well, I passed a few pleasant moments thinking this up. I always know there are far more good ideas than time to implement them.

Bruce_L
Posted : Monday, October 2, 2017 10:01:15 AM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

I did submit your suggestions to development and it could get implemented.

I just wanted to look explore some of the assumptions. Keep in mind that sorts (and thus assigning ranks to every symbol in a WatchList) can actually be rather resource intensive. Doing this over time as is required to plot the ranks on the chart is even more so.

These types of features were implemented in StockFinder (and could be quite slow with large WatchLists and lots of history), but those calculations were done client side while most calculations in TC2000 v17 are done server side.



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
diceman
Posted : Friday, October 6, 2017 11:41:20 AM
Registered User
Joined: 1/28/2005
Posts: 6,049

Can you display rank in a watchlist column?

 

 

Thanks

 

 

Bruce_L
Posted : Friday, October 6, 2017 11:47:04 AM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

Well it displays as a sort of bar for fundamentals, but in general, no.



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
thnkbigr
Posted : Wednesday, December 27, 2017 1:45:32 PM
Platinum Customer Platinum Customer

Joined: 3/31/2006
Posts: 3,207

Bruce,

As you are aware in SF there are two ways that we plot the Rank. One way is plotting the percentile number/rank scaled from 0 to 100 which is slow and resource intensive but the alternative way that you suggested which is what i have used was to calculate the Avg ROC of the stocks in teh watchlist that are at the 75 percentile Rank and in the same pane plot the ROC of the active symbol. 

If the ROC of teh active sym is above the Avg ROC of those in the 75% then we know the stock is in teh upper 25% but if below it we know that its not   

Can we do the same in TC as we do in SF

 

Bruce_L
Posted : Thursday, December 28, 2017 10:04:55 AM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

No, you can't do the quick way in TC2000 either.

What you can do is pretty similar though. Add the indicator as an EasyScan Condition. Set the EasyScan Condition to Ranks and adjust the EasyScan Rangefinder to capture the desired range in ranks.



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
thnkbigr
Posted : Tuesday, January 2, 2018 12:42:44 PM
Platinum Customer Platinum Customer

Joined: 3/31/2006
Posts: 3,207

So if I have a Rate Of Change indicator plotted set to 63 days I can right click select condition set to Ranks and set it to upper 25% and select a list

This will screen all those that are in the upper 25% based on price performance last quarter

Am I correct?  

Bruce_L
Posted : Tuesday, January 2, 2018 12:43:25 PM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

Yes, that is how it works in TC2000.



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
thnkbigr
Posted : Tuesday, January 2, 2018 1:25:22 PM
Platinum Customer Platinum Customer

Joined: 3/31/2006
Posts: 3,207

Bruce is this in SF 

'# Cumulative

If CurrentIndex >= 252 Then

                Plot = ((((Price.Last - Price.Last(21)) / Price.Last(21)) + _

                                ((Price.Last - Price.Last(42)) / Price.Last(42)) + _

                                ((Price.Last - Price.Last(63)) / Price.Last(63)) + _

                                ((Price.Last - Price.Last(84)) / Price.Last(84)) + _

                                ((Price.Last - Price.Last(105)) / Price.Last(105)) + _

                                ((Price.Last - Price.Last(126)) / Price.Last(126)) + _

                                ((Price.Last - Price.Last(147)) / Price.Last(147)) + _

                                ((Price.Last - Price.Last(168)) / Price.Last(168)) + _

                                ((Price.Last - Price.Last(189)) / Price.Last(189)) + _

                                ((Price.Last - Price.Last(210)) / Price.Last(210)) + _

                                ((Price.Last - Price.Last(231)) / Price.Last(231)) + _

                                ((Price.Last - Price.Last(252)) / Price.Last(252))) * 100) / 12

Else If CurrentIndex > 189 Then

                Plot = ((((Price.Last - Price.Last(21)) / Price.Last(21)) + _

                                ((Price.Last - Price.Last(42)) / Price.Last(42)) + _

                                ((Price.Last - Price.Last(63)) / Price.Last(63)) + _

                                ((Price.Last - Price.Last(84)) / Price.Last(84)) + _

                                ((Price.Last - Price.Last(105)) / Price.Last(105)) + _

                                ((Price.Last - Price.Last(126)) / Price.Last(126)) + _

                                ((Price.Last - Price.Last(147)) / Price.Last(147)) + _

                                ((Price.Last - Price.Last(168)) / Price.Last(168)) + _

                                ((Price.Last - Price.Last(189)) / Price.Last(189))) * 100) / 9

Else If CurrentIndex > 126 Then

                Plot = ((((Price.Last - Price.Last(21)) / Price.Last(21)) + _

                                ((Price.Last - Price.Last(42)) / Price.Last(42)) + _

                                ((Price.Last - Price.Last(63)) / Price.Last(63)) + _

                                ((Price.Last - Price.Last(84)) / Price.Last(84)) + _

                                ((Price.Last - Price.Last(105)) / Price.Last(105)) + _

                                ((Price.Last - Price.Last(126)) / Price.Last(126))) * 100) / 6

Else If CurrentIndex > 63 Then

                Plot = ((((Price.Last - Price.Last(21)) / Price.Last(21)) + _

                                ((Price.Last - Price.Last(42)) / Price.Last(42)) + _

                                ((Price.Last - Price.Last(63)) / Price.Last(63))) * 100) / 3 

Else       

                Plot = Single.NaN

End If

 

This in TC??

((C / C22 + C / 44 +  C / C63 + C / 84 +  C / C105 + C / 126 + C / C147 + C / 168 +  C / C189 + C / 210 +  C / C231 + C / 252) - 1) * 100) / 12

I understand in SF we are having the indicatpr plot once theere is 63 days of data and I don't know if anything like that is possible in TC but once there is 252 days od data these two should be exactlythe same correct??  

Bruce_L
Posted : Tuesday, January 2, 2018 1:28:18 PM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

Yes, it should be the same as that except for requiring 252 days and not being able to plot it using rank.



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
thnkbigr
Posted : Tuesday, January 2, 2018 1:47:59 PM
Platinum Customer Platinum Customer

Joined: 3/31/2006
Posts: 3,207

Thanks

I wish somehow we could plot the history of the rank in TC. It would be very helpful to see how the stock has ranked in the recent few months vs. others and not just where it stands today.

Somehow if TC runs the rank at the end of each day and save it as an indicator that way it doesn't have to recalculate everytime someone wants to plot it.

I am assuming TC doen't allow us to calculate and plot historical Ranks bc the calculation on the servers will be very resource intensive. Therefore if every night TC runs the rank of the stock based on their 6 or 12 month price performance vs the S&P 500 components and save the data so all the user needs to do is to plot the Rank vs. S&P 500 Components indicator and this doesn't have to recalculate bc it's already done and saved as an indicator. This is exactly what IBD does and it will NOT be resource intensive 

Can you please suggest this to the programmers bc I think it will be very helpful to plot the rank of the stock in the recent few months.

This is the IBD formula for their RS Rank 

40 * C / C63 + 20 * C  / C126 + 20 * C / C189 + 20 * C / C252 - 100

and below is the PCF I use bc it makes the line far more smoother and therefore results in far less crazy swings in the Rank indicator in case the programmers decide to use it to calculate the Rank vs. the S&P 500 components at the end of everyday and just save save the dada as an indicator 

((C / C22 + C / 44 +  C / C63 + C / 84 +  C / C105 + C / 126 + C / C147 + C / 168 +  C / C189 + C / 210 +  C / C231 + C / 252) - 1) * 100) / 12

This wil be a great addition 

 

Bruce_L
Posted : Tuesday, January 2, 2018 1:51:39 PM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

Thank you for your suggestion.



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
thnkbigr
Posted : Wednesday, July 18, 2018 1:00:57 AM
Platinum Customer Platinum Customer

Joined: 3/31/2006
Posts: 3,207

Bruce has anything been changes in TC since my last post here to somehow be able to plot the Rank. 

Bruce_L
Posted : Wednesday, July 18, 2018 8:34:39 AM


Worden Trainer

Joined: 10/7/2004
Posts: 65,138

No, it is still not possible to plot the rank in TC2000.



-Bruce
Personal Criteria Formulas
TC2000 Support Articles
Users browsing this topic
Guest-1

Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.