Your interactive trading laboratory!
 • 
11 users online

New Historical IPOs Universe problems

I'm trying out the new Historical IPOs universe in a rotation model, and get some spectacular results, but they seem to be due to some purchases at a price of $0.00 (and sales at $0.00 too!). Attached is a screenshot of some of these, where the 5th column is purchase price, and 7th is sale price.

On the one hand, this situation probably needs to be addressed in this universe. On the other hand, it's also a reason to add Filters or Constraints functionality to the Rotation models (as discussed in a previous thread https://www.quantacula.com/Forum/ForumTopic/168), so that we could eliminate penny stocks (for example) from consideration.


Attachment

Cancel

Responses

I would even consider the minimum Lock-Up period. Usually, for the first few months after the IPO, a stock takes a steep downturn, which is because of the expiration of the lock-up period. 90 days is the minimum period (stated under rule 144). But you are right, a penny stocks filter is also required. During my manual selection on IPOScoop I'm considering a similar rule that IPO's showing up as potential penny stocks are strictly ignored. In one of my last postings I suggested to filter out stocks below 3 Mio USD trading volume.

BTW: In your screenshot I see that you have trades in 2009/2010/2011 (NETO/BANI/ISON). Is this truly an IPO universe? For my understanding, an IPO phase usually ends after 3-5 years. That's the time a successful company needs to turn revenue into profits and build liquidity.

I would even consider the minimum Lock-Up period. Usually, for the first few months after the IPO, a stock takes a steep downturn, which is because of the expiration of the lock-up period. 90 days is the minimum period (stated under rule 144). But you are right, a penny stocks filter is also required. During my manual selection on IPOScoop I'm considering a similar rule that IPO's showing up as potential penny stocks are strictly ignored. In one of my last postings I suggested to filter out stocks below 3 Mio USD trading volume. BTW: In your screenshot I see that you have trades in 2009/2010/2011 (NETO/BANI/ISON). Is this truly an IPO universe? For my understanding, an IPO phase usually ends after 3-5 years. That's the time a successful company needs to turn revenue into profits and build liquidity.

Your keen eye is appreciated, Merlin. You requested this universe, did you not? But it appears to not yet fully meet your intended requirements. At the very least, it needs more vetting.

Your keen eye is appreciated, Merlin. You requested this universe, did you not? But it appears to not yet fully meet your intended requirements. At the very least, it needs more vetting.

The Historical IPOs universe contains all registered IPO symbols without exclusions ("after X years" or "no Biotechs"). It's entirlely up to a Model's author to apply filters (e.g. lockup period or a price filter) in his Model code directly.

The Historical IPOs universe contains all registered IPO symbols without exclusions ("after X years" or "no Biotechs"). It's entirlely up to a Model's author to apply filters (e.g. lockup period or a price filter) in his Model code directly.

Here's a part of my Position List, sorted desc. by largest profit using the IPO list I maintain by myself. Less than 36 Months, no penny stocks and no excessive profits.

This is what i wrote to Glitch last week, it may help...

Initially a made a filter to get all stocks out of a default TC 2000 US stocks list not trading more than 36 months. Additionally, I have removed Biotechs because they have the highest probability of getting delistet. From there, I saved my own TC 2000 screen for future updates.

To update the list every 3 months, I'm using https://www.iposcoop.com/last-100-ipos/ to catch all new IPOs and import them into my custom TC 2000 IPO screen. Once again, I drop out all Biotechs (by Industry Group) and IPO's older than 36 Months. As a further step, I’m removing delistet IPO's.

If there are any stocks getting obsolete (> 36 Months) and there's an open trade, I have left that symbol in the list until a sell signal occurred. After the sell signal, I have removed the stock manually from the universe. In the past, I never had a case where I had an open trade with a stock getting delisted so I would expect that my broker will make a special notice.

Perhaps you should simply start with my actual IPO list and make any updates, based on the rules above. I guess my list is currently well maintained. A little improvement could be to filter out stocks trading below 3 Mio USD trading volume over the past 50 days.

Here's a part of my Position List, sorted desc. by largest profit using the IPO list I maintain by myself. Less than 36 Months, no penny stocks and no excessive profits. This is what i wrote to Glitch last week, it may help... Initially a made a filter to get all stocks out of a default TC 2000 US stocks list not trading more than 36 months. Additionally, I have removed Biotechs because they have the highest probability of getting delistet. From there, I saved my own TC 2000 screen for future updates. To update the list every 3 months, I'm using https://www.iposcoop.com/last-100-ipos/ to catch all new IPOs and import them into my custom TC 2000 IPO screen. Once again, I drop out all Biotechs (by Industry Group) and IPO's older than 36 Months. As a further step, I’m removing delistet IPO's. If there are any stocks getting obsolete (> 36 Months) and there's an open trade, I have left that symbol in the list until a sell signal occurred. After the sell signal, I have removed the stock manually from the universe. In the past, I never had a case where I had an open trade with a stock getting delisted so I would expect that my broker will make a special notice. Perhaps you should simply start with my actual IPO list and make any updates, based on the rules above. I guess my list is currently well maintained. A little improvement could be to filter out stocks trading below 3 Mio USD trading volume over the past 50 days.

Here a picture of the adoption life-cycle of a stock. The left side shows the reason to include stocks <= 36 months. The right side is usually a phase where supply dominates demand.

Here a picture of the adoption life-cycle of a stock. The left side shows the reason to include stocks <= 36 months. The right side is usually a phase where supply dominates demand.

Hi bitfool, the problem is that the positions viewer is rounding the entry/exit price to 2 decimals. I fixed this for Q172. A second problem is that we need a way to reduce the position quantity, to limit it to a certain percentage of that bar's volume. I will add this to backtest preferences for Q172 as well.

Hi bitfool, the problem is that the positions viewer is rounding the entry/exit price to 2 decimals. I fixed this for Q172. A second problem is that we need a way to reduce the position quantity, to limit it to a certain percentage of that bar's volume. I will add this to backtest preferences for Q172 as well.

I think I sensed that the rounding must be at the heart, since we weren't getting some sort of infinite NaN % profit on the trade, but didn't note that here.

Looking forward to 172 with the other preference added too! Thanks Glitch.

I think I sensed that the rounding must be at the heart, since we weren't getting some sort of infinite NaN % profit on the trade, but didn't note that here. Looking forward to 172 with the other preference added too! Thanks Glitch.

Of course! I should also note that this was just a display rounding issue, didn't affect any backtesting.

Of course! I should also note that this was just a display rounding issue, didn't affect any backtesting.

Atmosfear... yes, perhaps so, but in a rotation model, the author cannot apply such filters at this time. Please upvote the Feature Request that will allow it! :-)

Atmosfear... yes, perhaps so, but in a rotation model, the author cannot apply such filters at this time. Please upvote the Feature Request that will allow it! :-)

I think we could also use a dynamic universe that kicks out a symbol after N months or years. After all, EVERY stock was an IPO at one point.

I think we could also use a dynamic universe that kicks out a symbol after N months or years. After all, EVERY stock was an IPO at one point.

Correct me if I'm wrong but it seems that a dynamic universe implies having a built-in supporting provider to return the data. It would operate on the whole universe and return a BarHistory (or not) for a given data range. Without it the universe is a static set of symbols.

Correct me if I'm wrong but it seems that a dynamic universe implies having a built-in supporting provider to return the data. It would operate on the whole universe and return a BarHistory (or not) for a given data range. Without it the universe is a static set of symbols.

Indeed, let me add a method to Universe base class to fill that gap.

Indeed, let me add a method to Universe base class to fill that gap.

Merlin, new version is out now with support for lock-up period. Requires Q172. Two Dynamic universes to be added to "IPO Universes":

  • "Last year's IPOs (during lockup period)"
  • "Historical IPOs (during lockup period)". Unlike "Historical IPOs", it contains duplicate symbols to help test a case when different IPOs were reusing the same ticker in different years

When this simple code is run on the "Last Year's IPO (lockup)" universe, Quantacula Studio automatically closes the position when the 90-day lock-up period ends (usually after 63 bars):

if (!HasOpenPosition(bars, PositionType.Long))
   PlaceTrade(bars, TransactionType.Buy, OrderType.Market);

screenshot

Merlin, new version is out now with support for lock-up period. Requires **Q172**. Two Dynamic universes to be added to "IPO Universes": * "Last year's IPOs (during lockup period)" * "Historical IPOs (during lockup period)". Unlike "Historical IPOs", it contains duplicate symbols to help test a case when different IPOs were reusing the same ticker in different years When this simple code is run on the "Last Year's IPO (lockup)" universe, Quantacula Studio automatically closes the position when the 90-day lock-up period ends (usually after 63 bars): [CODE] if (!HasOpenPosition(bars, PositionType.Long)) PlaceTrade(bars, TransactionType.Buy, OrderType.Market); [/CODE] ![screenshot](https://www.quantacula.com/Forum/ForumPostAttachment/445)

Thanks. I'll have a look on it. I'm currently relocating from TH to CH so it will take some times.

Thanks. I'll have a look on it. I'm currently relocating from TH to CH so it will take some times.

Just had a first look to the IPO Lists.

I noticed that in the list "IPOs Last 12 Months" and "Last years IPOs during Lockup Period", there are still Biotechs inside?

FVCB had his IPO in Nov 2013?

In the list "Last years IPOs during Lockup Period", I would expect to see the following symbols, but they are missing:

WBT EDIT GCP YUMC VVV WH PUMP PRSP SWCH ACA YEXT TTD SFIX SAIL UA TWLO SPOT STNE SNDR SGH SITE VSM VNE REDU RDFN VST USFD RRR ROKU REZI VEAC CRON COUP CVNA CRSP CLDR CJ COLD CNDT FHB EYE FNKO FND DLPH CWH EAF DVMT ATUS ATH BHF AYX ADNT ACIA APY AMGP CARG CADE CDEV CARS BOLD BKI BTU BPR FTDR MEDP MDB MGY MGP LBRT LAUR LW LSXMA OKTA NVT PK PAGS NTLA MRT NTR NTNX GTES GOOS HCC GTX GDI FTV GMS GLIBA JBGS INVH JHG JELD HOME HGV ILPT ICHR

Just had a first look to the IPO Lists. I noticed that in the list "IPOs Last 12 Months" and "Last years IPOs during Lockup Period", there are still Biotechs inside? FVCB had his IPO in Nov 2013? In the list "Last years IPOs during Lockup Period", I would expect to see the following symbols, but they are missing: WBT EDIT GCP YUMC VVV WH PUMP PRSP SWCH ACA YEXT TTD SFIX SAIL UA TWLO SPOT STNE SNDR SGH SITE VSM VNE REDU RDFN VST USFD RRR ROKU REZI VEAC CRON COUP CVNA CRSP CLDR CJ COLD CNDT FHB EYE FNKO FND DLPH CWH EAF DVMT ATUS ATH BHF AYX ADNT ACIA APY AMGP CARG CADE CDEV CARS BOLD BKI BTU BPR FTDR MEDP MDB MGY MGP LBRT LAUR LW LSXMA OKTA NVT PK PAGS NTLA MRT NTR NTNX GTES GOOS HCC GTX GDI FTV GMS GLIBA JBGS INVH JHG JELD HOME HGV ILPT ICHR

Re: Biotechs. Yes there are Biotechs because symbols are not filtered based on sector preference which may change.

Re: FVCB. This is a date in the past so it is as reported by Nasdaq website. Symbol names are getting reused constantly.

Re: Last year IPO. I don't think so. Checked just the first two three symbols and neither one is on your list: https://www.iposcoop.com/last-12-months/

Re: Biotechs. Yes there are Biotechs because symbols are not filtered based on sector preference which may change. Re: FVCB. This is a date in the past so it is as reported by Nasdaq website. Symbol names are getting reused constantly. Re: Last year IPO. I don't think so. Checked just the first two three symbols and neither one is on your list: https://www.iposcoop.com/last-12-months/

Thanks for clarification!

Thanks for clarification!
Forum Tips

Please sign in if you want to participate in our forum.

Our forum uses Markdown syntax to format posts.

To embed code snippets, enclose them in [CODE][/CODE] tags.