Index  Recent Threads  Who's Online  Search 

New Thread 

pdemartino

The way that I usually do it is in the screener. Use SetVar: SetVar(@1,MktCap>2000) 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. 


yuvaltaylor

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 gscore: 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. 


jmzabiab

Hi all @Yuvaltaylor, many thanks for your great reply. I am trying also to model the GScore. 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! 


yuvaltaylor

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. 


jmzabiab

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


geov

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


FatPitchFinancials

If you are interested in GScore, I recommend my recent backtest and article of Mohanram's GScore at https://www.fatpitchfinancials.com/3197/mohanramgscorebacktestpart2/ Please let me know if you have any questions about it. Some of my formulas ended up a bit different than Yaval's. 


RTNL

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 


yuvaltaylor

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 = NAin 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. 


