Small-cap stocks on October 28, 2026: gappers, halts and filings
On October 28, 2026, these are the small-cap stocks that moved, read from the same data the replay plays: the pre-market gappers, the day's gainers, intraday runners, losers and fades, the after-hours movers, every halt, and the offerings and splits filed or in effect. A day's high runs from 4 a.m., pre-market included, to the 4 p.m. close. The biggest gapper was ULBI, up 145.3% at the open.
Pre-market gappers
The small caps up the most before the bell: picked at 9:30 a.m. ET by their price then against the previous close, shown by their gap at the open, the official opening trade against the previous close.
The small-cap rule: price from 2 to 20 dollars, gapped up 10% or more before the open, relative volume 5× or more, float under 20 million shares.
| Symbol | Gap at the open | Open | Previous close | High, 4 a.m. to 4 p.m. | Volume, 4 a.m. to 4 p.m. | Relative volume by 8 p.m. | Float |
|---|---|---|---|---|---|---|---|
| ULBI why it ran | +145.3% | $15.60 | $6.36 | $15.67 | 1.34 million | 28.6× | 10.10 million |
| ELPW why it ran | +38.9% | $3.39 | $2.44 | $3.84 | 19.46 million | 920.1× | 929,385 |
| AIOK why it ran | +30.5% | $17.51 | $13.42 | $29.90 | 10.12 million | 6.9× | 1.11 million |
| BOOM why it ran | +24.1% | $6.64 | $5.35 | $7.74 | 2.55 million | 28.8× | 19.47 million |
| DAVI why it ran | +24.0% | $3.72 | $3.00 | $4.95 | 3.40 million | 22.7× | 13.50 million |
Play the moment: ULBI at 9:25 a.m. ET
The real Level 2, time and sales and chart from 9:22 a.m. to 9:34 a.m. ET, from the same feed the replay plays. It stops at 9:25 a.m. and asks what you would do, then plays on.
Gainers
The small caps up the most from the previous close at 4:00 p.m. ET, the close.
The small-cap rule: price from 2 to 20 dollars, up 10% or more on the day, relative volume 5× or more, float under 20 million shares.
| Symbol | Change at 4 p.m. | Close, 4 p.m. | Previous close | Volume, 4 a.m. to 4 p.m. | Relative volume by 8 p.m. | Float |
|---|---|---|---|---|---|---|
| ULBI why it ran | +145.4% | $15.61 | $6.36 | 1.34 million | 28.6× | 10.10 million |
| FTFT why it ran | +55.4% | $2.89 | $1.86 | 4.65 million | 181.5× | 6.03 million |
| BOOM why it ran | +44.1% | $7.71 | $5.35 | 2.55 million | 28.8× | 19.47 million |
| PODC why it ran | +35.0% | $2.43 | $1.80 | 1.39 million | 33.5× | 8.63 million |
| ELPW why it ran | +23.0% | $3.00 | $2.44 | 19.46 million | 920.1× | 929,385 |
| GCTK why it ran | +18.7% | $2.03 | $1.71 | 9.90 million | 15.8× | 1.16 million |
| AEYE why it ran | +17.8% | $11.94 | $10.14 | 472,427 | 4.8× | 9.12 million |
| MGN why it ran | +17.0% | $3.58 | $3.06 | 530,518 | 6.7× | 871,867 |
Intraday runners
The small caps whose high from 4:00 a.m. to 8:00 p.m. ET, pre-market and after hours included, was the furthest above the previous close, wherever they finished: a stock that spiked before the bell, during the day or after the close and gave it back is here.
The small-cap rule: the high priced from 2 to 20 dollars, a high 10% or more above the previous close, held by at least 3 one-minute bars that closed at or above that level on 100 shares or more, relative volume 5× or more, float under 20 million shares.
Or in play: up 30% or more at any moment on $3 million or more really traded, whatever its price, relative volume or float, its high at $1 or more.
| Symbol | Previous close | High, 4 a.m. to 4 p.m. | After-hours high, 4 p.m. to 8 p.m. | Close, 4 p.m. | Volume, 4 a.m. to 4 p.m. | Relative volume by 8 p.m. | Float |
|---|---|---|---|---|---|---|---|
| AIOK why it ran | $13.42 | $29.90 | $33.96 | $28.01 | 10.12 million | 6.9× | 1.11 million |
| ULBI why it ran | $6.36 | $15.67 | $15.66 | $15.61 | 1.34 million | 28.6× | 10.10 million |
| KPTI why it ran | $0.48 | $0.9091 | $1.02 | $0.8321 | 11.43 million | 21.8× | 22.11 million |
| POM why it ran | $1.39 | $2.95 | $2.13 | $1.80 | 11.24 million | 7.2× | 2.45 million |
| FTFT why it ran | $1.86 | $3.29 | $3.09 | $2.89 | 4.65 million | 181.5× | 6.03 million |
| DAVI why it ran | $3.00 | $4.95 | $3.44 | $3.23 | 3.40 million | 22.7× | 13.50 million |
| BRAI why it ran | $3.30 | $5.40 | $3.60 | $3.55 | 20.85 million | 20.9× | not available |
| KDK why it ran | $1.12 | $1.36 | $1.78 | $1.30 | 4.39 million | 2.4× | 138.43 million |
| CHSN why it ran | $1.08 | $1.70 | $1.61 | $1.45 | 25.23 million | 389.0× | 7.32 million |
| ELPW why it ran | $2.44 | $3.84 | $3.27 | $3.00 | 19.46 million | 920.1× | 929,385 |
| BOOM why it ran | $5.35 | $7.74 | $7.95 | $7.71 | 2.55 million | 28.8× | 19.47 million |
| GCTK why it ran | $1.71 | $2.50 | $2.15 | $2.03 | 9.90 million | 15.8× | 1.16 million |
| PODC why it ran | $1.80 | $2.54 | $2.51 | $2.43 | 1.39 million | 33.5× | 8.63 million |
| LUNG why it ran | $1.98 | $2.77 | $2.62 | $2.51 | 2.74 million | 16.5× | 39.42 million |
| EVMN why it ran | $5.16 | $7.21 | $6.38 | $6.30 | 3.11 million | 6.2× | 26.41 million |
| NCPL why it ran | $1.31 | $1.35 | $1.77 | $1.11 | 548,659 | 1.0× | 6.88 million |
| MGN why it ran | $3.06 | $4.00 | $3.87 | $3.58 | 530,518 | 6.7× | 871,867 |
| MWYN why it ran | $2.23 | $2.79 | $1.46 | $1.41 | 1.11 million | 6.2× | 14.14 million |
Losers
Fewer than three small caps met the rule at 4:00 p.m. ET, so there is no list.
The small-cap rule: price from 2 to 20 dollars, down 10% or more on the day, relative volume 5× or more, float under 20 million shares.
Fades
Fewer than three small caps met the rule at 4:00 p.m. ET, so there is no list.
The small-cap rule: price from 2 to 20 dollars, gapped up 10% or more and closed 10% or more below the open, relative volume 5× or more, float under 20 million shares.
After hours
Fewer than three small caps met the rule at 8:00 p.m. ET, so there is no list.
The small-cap rule: price from 2 to 20 dollars, moved 10% or more after the close, relative volume 5× or more, float under 20 million shares.
Why they ran
The stocks we wrote up for this day, each with its gap, float, halts, the news before the move and a chart.
Halts
Every trading halt in the exchange's feed that day, in New York time: the small caps in the lists above first, then every other stock. See LULD halts.
| Halted | Symbol | Resumed | Length | Reason in the feed |
|---|---|---|---|---|
| 9:30 a.m. | MGN | 9:40 a.m. | 10 min 0 s | LULD pause (limit up-limit down) |
| 9:33 a.m. | CHSN | 9:38 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 9:34 a.m. | POM | 9:44 a.m. | 10 min 0 s | LULD pause (limit up-limit down) |
| 9:41 a.m. | MGN | 9:46 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 9:48 a.m. | MGN | 9:58 a.m. | 10 min 0 s | LULD pause (limit up-limit down) |
| 9:48 a.m. | POM | 9:53 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 9:52 a.m. | CHSN | 9:57 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 9:59 a.m. | MGN | 10:09 a.m. | 10 min 0 s | LULD pause (limit up-limit down) |
| 10:11 a.m. | MGN | 10:16 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 10:19 a.m. | CHSN | 10:24 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 10:22 a.m. | MGN | 10:27 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
Every other halt that day: 29
| Halted | Symbol | Resumed | Length | Reason in the feed |
|---|---|---|---|---|
| 7:55 a.m. | GERN | 8:20 a.m. | 25 min 1 s | News pending |
| 9:30 a.m. | APUS | 9:40 a.m. | 10 min 0 s | LULD pause (limit up-limit down) |
| 9:33 a.m. | ZVZZT | 9:43 a.m. | 10 min 1 s | LULD pause (limit up-limit down) |
| 9:38 a.m. | TELG | 9:43 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 9:48 a.m. | FFTT | 9:53 a.m. | 5 min 1 s | LULD pause (limit up-limit down) |
| 9:48 a.m. | CPOP | 9:53 a.m. | 5 min 3 s | LULD pause (limit up-limit down) |
| 9:49 a.m. | AXNX | 9:54 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 9:58 a.m. | SVCC | 10:03 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 10:03 a.m. | AXNX | 10:08 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 10:23 a.m. | NIPG | 10:28 a.m. | 5 min 3 s | LULD pause (limit up-limit down) |
| 10:31 a.m. | NIPG | 10:36 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 10:52 a.m. | GLE | 11:02 a.m. | 10 min 1 s | LULD pause (limit up-limit down) |
| 11:03 a.m. | GLE | 11:13 a.m. | 10 min 0 s | LULD pause (limit up-limit down) |
| 11:21 a.m. | ROMA | 11:26 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 11:26 a.m. | ROMA | 11:31 a.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 11:40 a.m. | ROMA | 11:50 a.m. | 10 min 0 s | LULD pause (limit up-limit down) |
| 1:17 p.m. | REED | 1:45 p.m. | 27 min 38 s | News pending |
| 1:57 p.m. | RIBBU | 2:02 p.m. | 5 min 1 s | LULD pause (limit up-limit down) |
| 2:03 p.m. | RIBBU | 2:15 p.m. | 11 min 29 s | LULD pause (limit up-limit down) |
| 2:14 p.m. | JDZG | 3:29 p.m. | 75 min 1 s | LULD pause (limit up-limit down) |
| 3:29 p.m. | JDZG | 3:34 p.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 3:29 p.m. | RIBBU | 3:39 p.m. | 10 min 2 s | LULD pause (limit up-limit down) |
| 3:35 p.m. | JDZG | 3:40 p.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 3:40 p.m. | JDZG | 4:00 p.m. | 19 min 29 s | LULD pause (limit up-limit down) |
| 3:55 p.m. | FFTT | 4:00 p.m. | 5 min 0 s | LULD pause (limit up-limit down) |
| 7:50 p.m. | OMEX | did not resume that day | News pending | |
| 7:50 p.m. | ATYR | did not resume that day | News pending | |
| 7:50 p.m. | AXG | did not resume that day | News pending | |
| 7:50 p.m. | ENHA | did not resume that day | No reason given in the feed |
Offerings filed
Offering filings with the SEC that day, from EDGAR, in New York time: the small caps in the lists above first, then the others. See offerings.
| Filed | Symbol | Form |
|---|---|---|
| 12:15 a.m. | MGN | EFFECT |
| 12:15 a.m. | IPW | EFFECT |
| 9:12 a.m. | OSS | 424B5 |
| 4:15 p.m. | CTO | 424B5 |
| 4:26 p.m. | NKLR | 424B3 |
| 5:06 p.m. | JEM | F-1/A |
Splits that took effect
No splits found that day.
Trade this day
Replay October 28, 2026 in Hindsight Markets: the real tape, the order book and the halts for every stock, on a clock you control, and see where your orders would have filled.