Xasan Kadirov
A premarket order may not fill even when a chart shows your limit price because the order must be active in the correct session and meet an executable order on a market center your broker can access. The trade you saw may have occurred before your order arrived, against orders ahead of yours, or on another venue. The chart may also show a last trade rather than the current bid or ask. A limit price permits execution at that price or better; it does not guarantee execution.
Key takeaway: Diagnose a premarket non-fill in this order: confirm the broker accepted the order, verify its session and time-in-force, compare exact timestamps, identify whether the bid or ask was executable, then examine available size, queue priority, and venue coverage. “The candle touched my price” is only the start of the investigation.
Premarket is trading before the regular US equity session begins at 9:30 a.m. ET, but there is no single retail-access window shared by every broker. Nasdaq supports system-hours orders from 4:00 a.m. to 8:00 p.m. ET, yet a broker can offer a narrower window, restrict the securities available, or require a specific session instruction. A full schedule belongs in a market-hours reference; for a non-fill, the important question is whether this particular order was eligible at the exact time of the attempted execution.
Current broker rules illustrate the difference. Fidelity states that its premarket orders can be entered and executed from 7:00 a.m. to 9:28 a.m. ET. Schwab lists a 7:00 a.m. to 9:25 a.m. ET premarket session for eligible orders on its platforms. Interactive Brokers requires the trader to enable Fill Outside RTH for an eligible order, either on that order or through a preset. These are broker-specific examples, not universal market hours. A stock can be trading somewhere at 5:30 a.m. while an otherwise valid order at a broker whose premarket access starts at 7:00 a.m. is still ineligible.
The status shown by the platform matters more than the fact that the ticket was submitted. Separate these outcomes:
Many brokers accept only limit orders during extended hours. Fidelity and Schwab currently state that only limit orders are eligible in their extended-hours sessions. E*TRADE’s extended-hours agreement likewise limits eligible orders and warns that partial execution or no execution is possible. A regular-hours market order, stop order, or ordinary Day instruction can appear in the account without being eligible to execute in premarket.
Time-in-force labels are not standardized enough to infer eligibility from the word “Day.” Investor.gov explains that an ordinary Day order generally does not carry automatically into extended hours. Schwab distinguishes regular Day, Extended AM, Day + Extended, and other session-specific instructions. Fidelity says its unfilled premarket orders are automatically canceled at 9:28 a.m. ET and that GTC orders are not available for its extended-hours sessions. E*TRADE, by contrast, describes eligible extended-hours orders that may roll from premarket into the regular session on the same market center. The order ticket and broker agreement—not a generic definition—determine what happens.
A limit order sets the worst permitted execution price. Investor.gov defines a buy limit as executable at the limit price or lower and a sell limit as executable at the limit price or higher. Nothing in that definition promises that sufficient shares will be available, that the order will be first in line, or that the broker can access every market center showing the price.
Start by identifying what the chart displayed. A stock screen may show several different prices:
For a buy limit to execute immediately, an eligible seller must be available at the limit price or lower. A last trade at the buy limit proves only that some shares traded there. It does not prove that sellers remained after that trade. For a sell limit, the corresponding question is whether an eligible buyer was available at the limit or higher. Looking only at a candle, last price, mark, or midpoint can therefore create a false impression that an order was executable.
Timing is the next test. A chart may show a low of $18.40 during a one-minute candle from 8:12:00 through 8:12:59. If the trade at $18.40 occurred at 8:12:00.050 but the broker accepted the order at 8:12:43.600, the displayed candle touched the level before the order existed in the market. The fact that both events appear inside the same candle does not reverse their sequence.
Queue position matters even when the order arrived first and a later trade occurred at the same price. Orders resting at the same price are generally prioritized by time within a market center. If other buy orders were already ahead at $18.40, an incoming seller can trade at $18.40 without reaching a later buy order. Schwab’s order-type guidance expressly notes that orders ahead can exhaust the available shares even after a stock reaches the limit price. Fidelity also explains that extended-hours orders are generally handled using price and time priority within each market center and that modifying an order can cause it to lose time priority.
Finally, extended-hours markets and data can be fragmented. Investor.gov warns that not all markets available during regular hours are available in extended hours, that extended-hours systems are not linked together, and that consolidated quote and trade data may not be readily available. FINRA’s model disclosure similarly states that a price displayed on one extended-hours system may differ from prices on other systems operating at the same time. A trade at your limit on Venue B does not necessarily prove that your order resting on Venue A could interact with it. Broker routing and quote coverage must be checked before treating a visible trade as an execution failure.
The following example is hypothetical. It is designed to isolate queue priority after session eligibility has already been verified; it is not a historical execution or a claim about one broker’s routing.
At 8:11:58.000 a.m. ET, stock XYZ shows a displayed bid of $18.35 for 400 shares, an ask of $18.48 for 250 shares, and a last trade of $18.46. The trader wants to buy 800 shares but will not pay more than $18.40.
At 8:12:00.000, the trader submits:
At 8:12:00.300, the broker reports the order as accepted and working. The buy is not immediately marketable because the lowest available ask is still $18.48. The order joins the relevant book at $18.40.
Assume that 1,100 shares were already ahead of it at $18.40 on that market center. The simplified queue is:
1,100 shares ahead → trader’s 800 shares → later orders behind
At 8:12:17.200, an incoming sell order executes 500 shares at $18.40. The chart now prints $18.40, and the one-minute candle shows a low of $18.40. The trader expects a fill because the price “touched” the limit.
The execution instead consumes the first 500 shares in the existing queue:
1,100 shares ahead − 500 shares executed = 600 shares still ahead
The trader receives zero shares. The trade occurred after the order became active and at the correct price, but it did not reach the trader’s queue position. At 8:12:18.000, the lowest ask returns to $18.49; no additional seller offers shares at $18.40. The order remains open and unfilled.
Suppose another seller later executes 1,000 shares at $18.40. The remaining 600 shares ahead would execute first, followed by 400 shares of the trader’s order. The result would be a partial fill of 400 shares with 400 shares still working. The sequence is governed by available shares and priority, not by whether the chart drew a wick through the limit.
Now change one fact. Suppose the only $18.40 transaction occurred at 8:11:59.900, while the broker accepted the order at 8:12:00.300. The same one-minute chart can still display a touch near the submission moment, but the qualifying trade preceded the order. No queue analysis is needed; the order was simply late.
Change another fact. Suppose the $18.40 print occurred after acceptance but on a market center shown by the data vendor and not accessible through the broker’s extended-hours route. The trade may be real, yet it does not prove that executable shares were offered to this order. The correct investigation requires the trade’s venue, the order’s destination, and the broker’s extended-hours routing policy.
This scenario shows why screenshots of a candle are weak evidence. A defensible reconstruction needs event-level timestamps, order status, side-specific quotes, quantity, priority where observable, and venue coverage.
Use the following checklist before changing or resubmitting the order. Changing a working order can alter its priority, and chasing a moving quote can turn a non-fill into an execution outside the original plan.
Read the broker’s exact status and message. Distinguish rejected, held, open, partially filled, canceled, and expired. Record the order ID. If the platform shows “submitted” without confirming “working” or “accepted,” do not assume the instruction reached a market center.
Record the submission, broker-receipt, and status-change times in ET. Compare them with the broker’s supported premarket hours for that platform, account, security, and order type. Exchange system hours do not guarantee equivalent retail access.
Confirm that the order was explicitly eligible outside regular trading hours. Look for labels such as Extended AM, EXT, Fill Outside RTH, Day + Extended, or the broker’s equivalent. Confirm whether the order expires before 9:30 a.m., rolls into the regular session, or must be re-entered. Do not infer this from “Day” or “GTC” alone.
Check that the broker supports the order type in premarket and that the security is eligible. Market, stop, stop-limit, trailing, conditional, all-or-none, minimum-quantity, and other instructions may be unavailable or handled differently. A short sale may also have a narrower entry window or fail because shares are unavailable to borrow. If the order was rejected, use the rejection reason before investigating liquidity.
For a buy limit, inspect the ask and ask size at or below the limit. For a sell limit, inspect the bid and bid size at or above the limit. Record the last trade separately. A midpoint, mark, or candle low is not a substitute for the contra-side quote.
List the broker-receipt time, the time the order became working, every relevant quote update, each trade at or through the limit, and any cancel or replace. Milliseconds can matter. A price touch before acceptance cannot fill the order; a trade after cancellation cannot fill it either.
Determine how many shares traded at the limit after the order became active. Compare that amount with any displayed or reported size ahead of the order. Exact queue position may not be visible to a retail trader, but a small print against a large displayed queue is consistent with no fill. A partial fill is evidence that some executable quantity reached the order but was insufficient for the full size.
Record the venue for the trade if available, the destination or routing details for the order, and what the platform’s premarket quote and chart include. Ask whether the order could access the venue where the price printed. Extended-hours price protection and market connectivity should not be assumed to match the regular session.
Verify whether the stock was halted, the relevant market center was unavailable, the broker applied a price control, or the order entered an opening-process state near 9:30 a.m. Nasdaq’s Opening Cross creates an official opening price at 9:30 a.m.; a premarket order’s treatment at that transition depends on its instructions and route. An opening print is not retroactive proof that a premarket order should have filled.
Save the ticket, order status history, timestamps, executions, rejection or cancellation text, extended-hours quotes, Level 2 display if available, chart settings, and session/time-zone labels. If the order is changed first, the evidence may become harder to reconstruct and the replacement may receive a new queue position.
Hi2morrow methodology: We classify a premarket non-fill into one of four layers. Eligibility failure means the order was never permitted to work in the session. Price-condition failure means no eligible contra-side order was available at the required price. Capacity failure means the correct price existed but insufficient shares reached the order after earlier priority. Connectivity failure means the visible price and the broker’s executable market were not the same. The trader should identify the layer before changing price or size.
[ORIGINAL ASSET REQUIRED: Create an annotated two-panel screenshot. The left panel must show the order ticket and status history with callouts for side, quantity, limit price, session flag, time-in-force, broker-receipt time, working status, and order ID. The right panel must show the same symbol’s premarket bid, ask, sizes, last trade, trade timestamp, venue if available, Level 2 queue, chart with extended-hours data enabled, and ET time zone. Use numbered callouts matching checklist steps 1–8. Obscure account numbers and personal data. Add a warning beneath the chart: “A candle touch is not proof of executable contra-side liquidity.”]
Some non-fills should not be diagnosed as ordinary queue behavior.
The order was rejected. A rejected instruction never entered the executable queue. Review the broker’s reason: unsupported extended-hours order type, invalid time-in-force, security ineligibility, price-increment error, insufficient buying power, short-sale restriction, account limitation, or another control. Do not use chart movement to evaluate an order that was not accepted.
The order was held for the regular session. A regular-hours Day or GTC instruction may appear as open while remaining inactive until 9:30 a.m. ET. The stock can trade through the limit during premarket without interacting with it. If the order later fills after the open, that sequence supports a session-eligibility explanation rather than a missed premarket execution.
The order used an immediate condition. An immediate-or-cancel instruction can execute any available portion and cancel the rest; fill-or-kill requires the entire eligible quantity immediately or cancels it. These instructions are not accepted by every retail premarket service. A quick cancellation can therefore be the intended behavior, not a system error.
The security was halted or not open on the relevant market center. A displayed historical trade or quote does not mean new executions were possible. Check official halt information and the broker record. Trading can resume at a materially different price, and the first post-halt execution does not establish that the order could have traded while the halt was active.
The price was corrected. A chart can retain or later revise a print that was canceled or corrected. Schwab’s order guidance identifies price corrections as one reason a limit order may not execute even when a displayed price appears to reach it. Use official time-and-sales records where available rather than relying on a screenshot taken later.
The order was a short sale. A sell-short limit can satisfy its price condition but still fail because the broker cannot locate shares, the security is not eligible for the session, or the broker applies a narrower short-sale window. Fidelity, for example, currently permits premarket short-sale orders only from 8:00 a.m. to 9:28 a.m. ET, later than its general 7:00 a.m. premarket start. Long-sale and short-sale instructions should not be treated as operationally identical.
The order crossed into the opening process. Nasdaq states that its extended-hours orders can be eligible for the Opening Cross except for specified order types, while broker and market-center handling can differ. E*TRADE warns that a premarket order rolling into the regular session on its market center may not receive the primary exchange’s opening price. If the dispute centers on 9:30 a.m., record whether the order remained on the same venue, participated in an auction, was canceled, or was replaced by a regular-session instruction.
Before submitting, treat the order ticket as part of the trade, not as an administrative detail. Confirm the broker’s current premarket hours, eligible securities, supported order types, session flag, and expiration rule. Use the bid and ask from a feed that explicitly includes extended-hours quotes. Set the limit from the price actually available on the required side, then compare the intended size with displayed and recently executed quantity. If the setup depends on receiving hundreds of shares after only a small contra-side print, the execution assumption is weak.
Do not make the limit more aggressive merely to force a fill. A higher buy limit or lower sell limit increases the range of permitted execution prices. It may improve marketability, but it changes the trade’s entry and risk. Decide the maximum acceptable price before submitting. If that price is no longer available, allowing the order to remain unfilled can be the correct outcome.
Avoid repeated cancel-and-replace actions without understanding their effect. Fidelity states that an extended-hours modification is treated as a cancellation and replacement and may lose time priority. The exact rule varies by broker and market center, but a replacement should be assumed to require a new eligibility and queue check.
If a materially inconsistent non-fill remains after the checklist, send the broker a precise written request:
“Please review premarket order [order ID]. Provide the broker-receipt time, time the order became eligible and working, time-in-force and session instructions, order destination or routing information, any rejection or cancellation reason, partial executions, and whether the order could access the market center where trades at [price] occurred between [start time] and [end time] ET.”
Compare the response with the exact order record, not only the chart. A review is warranted when the broker shows the order as accepted and eligible, accessible contra-side liquidity appears to have been available after the order arrived and after earlier priority should have been exhausted, and the result remains unexplained by venue, size, halt, correction, or order condition. A candle touching the limit, by itself, does not meet that standard.
Professional analysis — Khasan Kadyrov: The most useful distinction is between a price event and an execution opportunity. A chart records that something traded; an order fills only when the trader’s instruction is eligible, reaches the relevant market, and encounters enough opposite-side interest after earlier priority. From a risk-management perspective, the correct response to a non-fill is not automatically to chase the price. First determine which link in that chain was missing.
A premarket limit order can remain unfilled after the price reaches its level because the order was inactive, arrived too late, sat behind other orders, lacked sufficient contra-side size, or could not access the venue where the trade occurred. Verify the broker’s session rules, reconstruct the timestamps, compare the correct bid or ask, and inspect priority and routing. Once the cause is known, the trader can keep, replace, reduce, or cancel the order without confusing a chart touch with a guaranteed execution.
Khasan Kadyrov is a hi2morrow analyst and an economist with five years of experience in the US stock market.
Editorial note: Substantively updated on August 5, 2026. The article was checked against current FINRA and Investor.gov extended-hours guidance, Nasdaq system-hours and Opening Cross documentation, and official premarket order rules published by Fidelity, Charles Schwab, Interactive Brokers, and E*TRADE. Session windows, eligible securities, order types, time-in-force labels, routing, and data coverage vary by broker and platform and should be verified before trading.
Educational material only. Not investment advice.
Author: Alexander Styopin trader with 24 years of trading experience and an economic analyst at hi2morrow
Originally published: May 13, 2026
Substantively updated: August 5, 2026
$QCOM range is tight. Breakout alert set, no early entry.
$MU pulled into support. Watching for buyers, not predicting.
Closed the morning with two trades. No need to give it back.
$ORCL is slow but clean. Position size stays smaller.