No. of Recommendations: 5
*** 1. Universe Composition ***
As a starting point, I created {UnivZero} representing all listed U.S. equities with P123 fundamentals and price. Counting the GTR1 tickers by security type and {UnivZero} membership shows what security types are in P123 {UnivZero}.
On 20251128, there were 5402 tickers in P123 {UnivZero}, and 5184 of these match GTR1 tickers. Most P123 {UnivZero} tickers are ordinary stocks. GTR1 had an additional 5365 tickers (mostly ETFs) not in P123 {UnivZero}.
styp.a notUnivZero UnivZero type
0 1 undefined
11 192 3491 x ordinary
12 61 913 x foreign
14 157 32 CEF
15 1
16 7 x SPAC
17 29 131 x SPAC
18 4 159 x REIT
21 1 x
31 20 357 x ADR
41 3 4
44 209 1 CEF
45 1
48 2 31 x REIT
71 4 46 x LP
72 1 9 x LP
73 4654 2 ETF
74 24 CEF
75 2
Total 5365 5184
As expected, the P123 {UnivZero} corresponds to equities that are not CEF or ETF:
styp.a != 14!15!44!73!74!75
or
styp.a = 11!12!16!17!18!21!31!48!71!72
I added various liquidity criteria to create the P123 screens {UnivOne}, {BaseAlt}, and {Base}.
{UnivZero} has no liquidity criteria.
{UnivOne} drops penny stocks and nano caps.
{BaseAlt} drops IPOs and ADRs, and adds a minimum dollar volume criteria.
{Base} adds a few more criteria in an attempt to filter out more IPOs.
Counts of tickers by security type on 20251128:
styp.a UnivZero UnivOne BaseAlt Base type
0 undefined
11 3491 2718 2289 2190 ordinary
12 913 534 397 372 foreign
14 32 28 1 1 CEF
15
16 7 SPAC
17 131 SPAC
18 159 147 130 130 REIT
21 1 1 1 1
31 357 276 ADR
41 4 3 2 2
44 1 1 CEF
45
48 31 30 28 27 REIT
71 46 40 5 5 LP
72 9 9 3 1 LP
73 2 2 2 2 ETF
74 CEF
75
Total 5184 3789 2858 2731
GTR1 screens {UnivZero} and {UnivOne} will use styp.a != 14!15!44!73!74!75
GTR1 screens {BaseAlt} and {Base} will use styp.a = 10!11!12!18!48
=== screen definitions ===
P123 {UnivZero}
Universe(ALLFUND)
!IsOTC & !IsUnlisted
Close(0) > 0
daily rebalance, 0% Slippage, Equal weight
P123 {UnivOne}
Universe(ALLFUND)
!IsOTC & !IsUnlisted
Close(0) > 0
Close(0) * Max(SharesFDQ, SharesQ) >= 50
SalesQ > 0
Close(10) > 0
AvgVol(10) > 0
Close(0) > 1
daily rebalance, 0% Slippage, Equal weight
P123 {BaseAlt}
Universe(ALLFUND)
!IsMLP & !IsOTC & !IsUnlisted
!IsADR
SecurityType = Common
Close(0) >= 1
AvgDailyTot(63) >= 1000 * 1000
SalesQ > 0
Close(0) * Max(SharesFDQ, SharesQ) >= 50
BarsSince(PeriodDateQ) <= 252
Close(300) > 0
Close(63) > 0
4 week rebalance, 0% Slippage, Equal weight
P123 {Base}
Universe(ALLFUND)
!IsMLP & !IsOTC & !IsUnlisted
!IsADR
SecurityType = Common
Close(0) >= 1
AvgDailyTot(63) >= 1000 * 1000
SalesQ > 0
Close(0) * Max(SharesFDQ, SharesQ) >= 50
BarsSince(PeriodDateQ) <= 252
Close(300) >= 1
AvgDailyTot(200,100) >= 1000 * 1000
4 week rebalance, 0% Slippage, Equal weight
Note that "Close(0) * Max(SharesFDQ, SharesQ)" was used in place of MktCap to avoid the recent P123 change to the MktCap field.
Important Update: Transition to FactSet Market Cap, Feb 6, 2026
https://community.portfolio123.com/t/important-upd...=== links ===
https://gtr1.net/2013/?~gBase:h19::styp.a:et10!11!...https://gtr1.net/2013/?~gBaseAlt:h19::styp.a:et10!...https://gtr1.net/2013/?~gUnivOne:h1::styp.a:ne14!1...https://gtr1.net/2013/?~gUnivZero:h1::styp.a:ne14!...