Can You Use a Limit Order on a Mutual Fund?
A mutual fund order ticket has no price box: every buy and sell strikes at the next computed NAV. What a limit order cannot do, and the two levers you have.
You cannot place a limit order on a mutual fund, and the missing price box on the order ticket is not a broker oversight. A mutual fund order is an instruction to transact at the next net asset value the fund computes, which for most US funds happens once per trading day after the 4 p.m. ET close. A price you name in advance has nothing to attach to, and the same is true of stop orders and market-on-close orders.
Can you put a limit order on a mutual fund?
No, and the mechanism is worth knowing. Fund shares do not change hands between buyers and sellers on an exchange. You transact with the fund itself, which issues new shares to buyers and redeems shares from sellers at a single price per day. That price is the net asset value, or NAV: total assets minus liabilities, divided by shares outstanding. Our guide to how mutual fund NAV is calculated walks through the arithmetic.
The rule that removes the price box is forward pricing. Every order, whenever it arrives during the day, is filled at the NAV computed after it arrives. Nobody who places an order knows the price yet. A limit order says fill me at $47.50 or better; a fund ticket has no live quote to measure $47.50 against, and the one price of the day is not published until hours later. The same mechanics leave the other fields empty: no day or good-til-canceled duration, no routing choice, no partial fill, and no queue position to fight for.
What the mutual fund order ticket actually collects
Strip a fund ticket down and it asks for very little:
- the fund, by name or symbol
- the direction: buy, sell, or exchange
- the amount, entered in dollars or in shares, with "all shares" available on a sell
- the account, plus a cost basis method on a taxable sell
That is the entire instruction. Dollars are the native unit. Fractional shares are ordinary here: $1,000 buys $1,000 of the fund to several decimal places rather than a whole number of shares with cash left over. When mutual funds trade covers the cutoff clock in more detail.
A $1,000 order at 11 a.m. and one at 3:59 p.m.
Take two hypothetical buys of the same fund on the same day, one entered at 11 a.m. and one at 3:59 p.m. Both arrive before the 4 p.m. cutoff. Both strike at that evening's NAV. Both receive the identical price per share, and nothing that happened on the tape between 11 a.m. and 3:59 p.m. separates them. If the NAV strikes at $47.20, each $1,000 buys 21.1864 shares.
Move the second order 90 seconds later, to 4:01 p.m., and it is a different trade: it strikes at the next day's NAV, roughly 28 hours after the button was pressed.
Now hold that against an exchange-traded fund covering the same index. An ETF trades all session at whatever price the market is making for it. Here is one broad-market ETF, averaged into half-hour buckets, through a single session.
| et_time | etf_price | asof_label |
|---|---|---|
| 09:30 | 760.7 | Sep 18 |
| 10:00 | 759.31 | Sep 18 |
| 10:30 | 759.41 | Sep 18 |
| 11:00 | 759.76 | Sep 18 |
| 11:30 | 759.3 | Sep 18 |
| 12:00 | 758.84 | Sep 18 |
| 12:30 | 759.13 | Sep 18 |
| 13:00 | 759.37 | Sep 18 |
| 13:30 | 759.66 | Sep 18 |
| 14:00 | 760.02 | Sep 18 |
| 14:30 | 760.86 | Sep 18 |
| 15:00 | 761.16 | Sep 18 |
| 15:30 | 761.25 | Sep 18 |
The exact SQL behind every number
WITH
(
SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 20
AND window_start < today() - 2
) AS charted_session
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(avg(toFloat64(close)), 2) AS etf_price,
min(formatDateTime(toTimeZone(window_start, 'America/New_York'), '%b %e')) AS asof_label
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) = charted_session
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY et_time
ORDER BY et_timeBetween the 09:30 bucket and the 15:30 bucket on Sep 18, the average traded price of one share moved from $760.7 to $761.25 across 13 buckets. On that ticket, 11 a.m. and 3:59 p.m. are two different prices, and the limit order is the tool for naming which one you will accept.
The same index exposure on an ETF ticket, where limit orders do apply
The intraday travel above is not an unusual session. The panel below measures, one row per session, how far the price ranged inside each day and how far the close finished from the open.
| session_date | asof_label | high_low_range_pct | open_to_close_move_pct |
|---|---|---|---|
| 2026-08-10 | Aug 10 | 0.44 | 0.06 |
| 2026-08-11 | Aug 11 | 0.7 | 0.51 |
| 2026-08-12 | Aug 12 | 0.47 | 0.29 |
| 2026-08-13 | Aug 13 | 0.68 | 0.39 |
| 2026-08-14 | Aug 14 | 0.43 | 0.28 |
| 2026-08-17 | Aug 17 | 0.55 | 0.45 |
| 2026-08-18 | Aug 18 | 0.34 | 0.16 |
| 2026-08-19 | Aug 19 | 0.57 | 0.17 |
| 2026-08-20 | Aug 20 | 0.8 | 0.44 |
| 2026-08-21 | Aug 21 | 0.48 | 0.04 |
| 2026-08-24 | Aug 24 | 0.41 | 0.17 |
| 2026-08-25 | Aug 25 | 0.49 | 0.03 |
| 2026-08-26 | Aug 26 | 0.45 | 0.18 |
| 2026-08-27 | Aug 27 | 0.68 | 0.34 |
| 2026-08-28 | Aug 28 | 0.91 | 0.31 |
| 2026-08-31 | Aug 31 | 0.43 | 0.04 |
| 2026-09-01 | Sep 1 | 0.68 | 0.03 |
| 2026-09-02 | Sep 2 | 0.62 | 0.36 |
| 2026-09-03 | Sep 3 | 0.86 | 0.69 |
| 2026-09-04 | Sep 4 | 0.5 | 0.24 |
The exact SQL behind every number
SELECT
toString(date) AS session_date,
formatDateTime(date, '%b %e') AS asof_label,
round((toFloat64(max(high)) / toFloat64(min(low)) - 1) * 100, 2) AS high_low_range_pct,
round(abs(toFloat64(any(close)) / toFloat64(any(open)) - 1) * 100, 2) AS open_to_close_move_pct
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= today() - 45
AND date <= today() - 3
GROUP BY date
ORDER BY dateAcross the 29 sessions between Aug 10 and Sep 18, each row is the width of one trading day. On Sep 18 the session high sat 0.53% above the session low, while the close finished 0.05% away from the open. Every one of those gaps is a decision a fund investor never has to make and an ETF investor cannot avoid.
Even the closing price is not one obvious number on an exchange-traded ticket. The panel below compares the last regular-session minute against the official closing print for several large index ETFs. A basis point is one hundredth of a percentage point.
| ticker | avg_gap_bps | widest_gap_bps | observations |
|---|---|---|---|
| IVV | 0.9 | 4.2 | 51 |
| VTI | 0.9 | 3.7 | 51 |
| VOO | 0.8 | 2.8 | 51 |
| QQQ | 0.8 | 3 | 51 |
| SPY | 0.7 | 2.9 | 51 |
| DIA | 0.6 | 1.5 | 51 |
The exact SQL behind every number
WITH last_regular_minute AS
(
SELECT
ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS minute_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'IVV', 'VOO', 'QQQ', 'VTI', 'DIA')
AND window_start >= today() - 75
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, d
)
SELECT
a.ticker AS ticker,
round(avg(abs(toFloat64(a.close) / m.minute_close - 1) * 10000), 1) AS avg_gap_bps,
round(max(abs(toFloat64(a.close) / m.minute_close - 1) * 10000), 1) AS widest_gap_bps,
count() AS observations
FROM global_markets.stocks_daily_aggs AS a
INNER JOIN last_regular_minute AS m ON m.ticker = a.ticker AND m.d = a.date
WHERE a.ticker IN ('SPY', 'IVV', 'VOO', 'QQQ', 'VTI', 'DIA')
AND a.date >= today() - 75
AND a.date <= today() - 3
GROUP BY a.ticker
ORDER BY avg_gap_bps DESCOver 51 sessions, IVV carried the widest average distance between its last-minute price and its official close, 0.9 basis points, with a single-session maximum of 4.2. At the other end of the 6 funds compared, DIA averaged 0.6 basis points. A mutual fund buyer never meets this question. One NAV, computed once, identical for everyone who made the cutoff.
That is the real trade between the two wrappers. A market order versus a limit order is a choice you only get where a live quote exists. An investor adding a fixed dollar amount each month, indifferent to the price inside the session, meets fewer moving parts on the fund ticket, where the dollar amount is the whole instruction. An investor who wants to cap the price paid, or to transact while the market is open, needs the exchange-traded wrapper, where every order type applies. Mutual funds versus ETFs compares the two side by side.
Which NAV your order strikes, and when it settles
Two dates matter on a fund order. The strike date is the day whose NAV sets your price. The settlement date is when cash and shares actually change hands, one business day after the strike date at most US fund families, matching the T+1 standard that US stocks and ETFs moved to in May 2024. Mutual fund settlement time has the full walk-through.
Both dates walk forward whenever the market is shut. The exchange calendar below lists the closures ahead.
| holiday_date | closure_label | weekday | closure | day_status | days_away |
|---|---|---|---|---|---|
| 2026-11-26 | Nov 26 | Thu | Thanksgiving | closed | 65 |
| 2026-11-27 | Nov 27 | Fri | Thanksgiving | early-close | 66 |
| 2026-12-24 | Dec 24 | Thu | Christmas | early-close | 93 |
| 2026-12-25 | Dec 25 | Fri | Christmas | closed | 94 |
| 2027-01-01 | Jan 1 | Fri | New Years Day | closed | 101 |
| 2027-01-18 | Jan 18 | Mon | Martin Luther King, Jr. Day | closed | 118 |
| 2027-02-15 | Feb 15 | Mon | Washington's Birthday | closed | 146 |
| 2027-03-26 | Mar 26 | Fri | Good Friday | closed | 185 |
| 2027-05-31 | May 31 | Mon | Memorial Day | closed | 251 |
| 2027-06-18 | Jun 18 | Fri | Juneteenth | closed | 269 |
| 2027-07-05 | Jul 5 | Mon | Independence Day | closed | 286 |
| 2027-09-06 | Sep 6 | Mon | Labor Day | closed | 349 |
The exact SQL behind every number
SELECT
toString(date) AS holiday_date,
formatDateTime(date, '%b %e') AS closure_label,
formatDateTime(date, '%a') AS weekday,
any(name) AS closure,
any(status) AS day_status,
dateDiff('day', today(), date) AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
GROUP BY date
ORDER BY dateThe next scheduled closure is Thanksgiving on Nov 26, 65 days from today, and the forward calendar holds 12 dated closures. An order entered after the cutoff on the session before one of these strikes at the NAV computed on the next open session, and settlement follows from there. Rows tagged as an early close end regular trading at 1 p.m. ET, and fund cutoffs commonly move with them rather than staying at 4 p.m. The fund prospectus is where that rule is written.
The two levers a fund investor has
No price box does not leave you without control. Two levers remain, and both are about timing.
- The cutoff. An order in good order before the cutoff strikes at tonight's NAV; after it, tomorrow's. That deadline is the only one that decides which day's valuation you get, and brokers often set their own cutoff earlier than the fund's.
- The exchange order. Inside one fund family, an exchange sells one fund and buys another on the same NAV date, keeping the money invested rather than parked in cash for a day. A sell today followed by a buy tomorrow is a different transaction with a different pair of prices.
FAQ
Can you set a limit price on a mutual fund order?
No. Mutual fund orders fill at the next NAV the fund computes after the order arrives, a price that is unknown when you place it. Fund tickets have no price field, and stop and stop-limit orders are unavailable on the same grounds.
What happens if I place a mutual fund order at 3:59 p.m.?
It strikes at that day's NAV, the same price as an order placed at 11 a.m. the same morning, as long as your broker's cutoff has not already passed. Many brokers set an internal cutoff a few minutes ahead of the fund's own.
Do mutual funds have stop losses?
No. A stop order triggers off a live market price, and a fund publishes one price per day instead of a continuous quote. Stop orders live on exchange-traded instruments.
Can I use a limit order on an ETF that tracks the same index?
Yes. ETFs trade on an exchange throughout the session. Limit, stop, stop-limit, and market-on-close orders all apply, alongside a bid and an ask you can read before entering.
How many decimal places does a mutual fund order buy?
Fund orders are entered in dollars, and the resulting share count runs to three or four decimal places depending on the fund. The whole-share convention familiar from stock tickets does not apply.
Every panel here ships with the SQL that produced it, expandable underneath the table. To run the same intraday comparison on a fund or ETF you actually hold, ask the question in plain English on the Strasmore terminal.