Index | Recent Threads | Who's Online | Search

Posts: 16    Pages: 2    1 2 Next
Last Post
New Thread
This topic has been viewed 780 times and has 15 replies
RTNL
scoring system based on 0/1 ranks

I am looking to develop a score that outputs 1 or 0 for each component. ( Like Piotroski's F score)

How does one go about doing that?

Traditional ranking will not work

Feb 28, 2020 3:03:48 PM       
pdemartino
Re: scoring system based on 0/1 ranks

The way that I usually do it is in the screener. Use SetVar:

SetVar(@1,MktCap>2000)
SetVar(@2,ROI%TTM>5)


The final rule of a scoring system will then be:

@1+@2>=1


Or whatever the scoring will be.

Use this to see the value:

ShowVar(@score,@1+@2)


There will be a column in the screener report Screen Factors that will be headed @score, with the value. In this case that value will be 0,1 or 2.

You can also do this in custom formulas, particularly if you need it as part of a strategy.

Custom Formula 1
Name: 1
Formula:
MktCap>2000


Custom Formula 2
Name: 2
Formula:
ROI%TTM>5


Custom Formula 3
Name: Score
Formula:
$1+$2


The rule (screen or strategy) would then be:

$Score>=1


And $Score can be used in screen reports.

Note that in general you'd probably have more than two terms for this (otherwise it's easier to just use an "or"). Note also that a scoring value of this sort will be lousy for purposes of ranking because of the limited number of discrete values. This will be true of most scoring systems.

Feb 28, 2020 3:36:26 PM       
yuvaltaylor
Re: scoring system based on 0/1 ranks

I am looking to develop a score that outputs 1 or 0 for each component. ( Like Piotroski's F score)

How does one go about doing that?

Traditional ranking will not work


This may be inelegant, but here's my formula for the g-score:

eval(roa%ttm>roa%ttmind,1,0)+eval(frank("(opercashflttm+cashfrinvestttm)/asttotttm",#industry,#desc)>50,1,0)+eval(opercashflttm>netincbxorttm,1,0)+eval(frank("$incomevariability",#industry,#desc)<50,1,0)+eval(frank("$salesvariability",#industry,#desc)<50,1,0)+eval(frank("capexttm/asttotttm",#industry,#desc)>50,1,0)+eval(frank("isna(randda,0)/asttota",#industry,#desc)>50,1,0)+eval(frank("isna(sgandaa,0)/asttota",#industry,#desc)>50,1,0)

That's one way of doing things. Paul's way is more elegant but this way you only need one custom formula.

Yuval Taylor
Product Manager, Portfolio123
invest(igations)
Any opinions or recommendations in this message are not opinions or recommendations of Portfolio123 Securities LLC.

Feb 28, 2020 11:37:04 PM       
jmzabiab
Re: scoring system based on 0/1 ranks

Hi all

@Yuvaltaylor, many thanks for your great reply. I am trying also to model the G-Score. However, i got an error for the below:

Formula:
eval(frank("$incomevariability",#industry,#desc)<50,1,0)

Error:
Ranking failed on 01/01/2005: In 'ROA 5y Variability < Industry Average'-> Error near '$incomevariability': Invalid command '$incomevariability'

Any idea on how to fix this? Many thanks for your time!

May 3, 2020 7:23:31 AM       
yuvaltaylor
Re: scoring system based on 0/1 ranks

that's a custom formula I wrote. the formula is:

loopsum("abs(netincbxor(ctr,qtr)-netincbxor(ctr+1,qtr))",4,0)/netincbxorttm

Go to Research / Components / Formulas, then click new. You can input it there and use it.

If you're confused about what it does or how it works, just let me know, but see https://www.portfolio123.com/doc/doc_detail.j...opSum&popUpFullDesc=1

Yuval Taylor
Product Manager, Portfolio123
invest(igations)
Any opinions or recommendations in this message are not opinions or recommendations of Portfolio123 Securities LLC.

May 3, 2020 10:49:06 AM       
jmzabiab
Re: scoring system based on 0/1 ranks

Thanks for this Yuval. I will try it and see if ti works. Appreciated.

May 4, 2020 10:16:26 AM       
geov
Re: scoring system based on 0/1 ranks

Yuval, you have 2 custom formulas in the expression. The other one is $salesvariability.

May 4, 2020 11:46:58 AM       
FatPitchFinancials
Re: scoring system based on 0/1 ranks

If you are interested in G-Score, I recommend my recent backtest and article of Mohanram's G-Score at https://www.fatpitchfinancials.com/3197/mohanram-g-score-backtest-part-2/

Please let me know if you have any questions about it. Some of my formulas ended up a bit different than Yaval's.

Jul 25, 2020 10:56:35 AM       
RTNL
Re: scoring system based on 0/1 ranks

Yuval, thanks for this.

2 quick questions:
1. what is eval(frank("isna(randda,0)/asttota",#industry,#desc)>50,1,0) doing?
2. In you income variability formula: lets take example of 2 companies
- company A which has the X change in income every quarter
- Company B has +X and -X alternating quarters
Both companies would have same score. Is this correct? and does that capture the spirit of the paper?

thank you

Jul 27, 2020 8:03:31 AM       
yuvaltaylor
Re: scoring system based on 0/1 ranks

Yuval, thanks for this.

2 quick questions:
1. what is eval(frank("isna(randda,0)/asttota",#industry,#desc)>50,1,0) doing?
2. In you income variability formula: lets take example of 2 companies
- company A which has the X change in income every quarter
- Company B has +X and -X alternating quarters
Both companies would have same score. Is this correct? and does that capture the spirit of the paper?

thank you


Monraham wanted the ratio of R&D to assets to be less than the industry median. When I wrote this formula, it seemed to me that there was no distinction between companies with RandDA = 0 and RandDA = NA--in other words, they were equivalent. But in a ranking system, NA would be ranked lower than 0, which would mean that in industries in which nobody spent any money on R&D, 0 R&D companies would rank higher than NA R&D companies. That's why I put IsNA(RandD,0) there. The rest of the formula simply says that if a company spends more money on R&D than the median in the industry it gets a point and if it doesn't, it doesn't.

The answer to the second question is yes and yes.

Yuval Taylor
Product Manager, Portfolio123
invest(igations)
Any opinions or recommendations in this message are not opinions or recommendations of Portfolio123 Securities LLC.

Jul 27, 2020 9:09:58 AM       
Posts: 16    Pages: 2    1 2 Next
 Last Post