Ordre au marché vs ordre limite analyse
Comparez l'exécution immédiate au prix du marché et le contrôle du prix via l'ordre limite. Analyse des coûts et du slippage sur des tickers réels.
Un ordre au marché signifie « exécutez-moi immédiatement au meilleur prix disponible » ; un ordre limite signifie « exécutez-moi uniquement à mon prix ou à un prix meilleur ». Cette seule différence détermine votre prix d'exécution, l'exécution effective de l'ordre et les risques encourus. Ce guide mesure ce compromis à l'aide de données de cotation réelles — en dollars, sur des tickers réels — puis identifie les situations les plus critiques : forte volatilité du tape, ordres volumineux, options et sessions étendues.
Qu'est-ce qu'un ordre au marché ?
Un ordre au marché s'exécute immédiatement sur la meilleure cotation de la contrepartie : un achat s'exécute au prix de l'ask, une vente s'exécute au prix du bid. L'exécution est quasi garantie pour toute taille de position retail standard sur une action cotée ; le prix, en revanche, ne l'est pas. Le coût d'un ordre au marché, par rapport au midpoint entre le bid et l'ask, représente la moitié du bid-ask spread — c'est le prix de l'immédiateté. La cotation affichée à l'écran est le NBBO, le meilleur bid et offer de l'ensemble des bourses. Celle-ci évolue constamment : votre ordre est exécuté selon le NBBO en vigueur au moment de sa réception, et non au moment de votre clic.
Qu'est-ce qu'un ordre à cours limité ?
Un ordre à cours limité fixe un prix plafond (pour un achat) ou un prix plancher (pour une vente). Si vous fixez un ordre d'achat limité à 50,00 $, vous ne paierez jamais plus que 50,00 $. Cependant, si le marché n'atteint jamais votre prix, l'ordre ne sera pas exécuté et restera en attente. Un paramètre intermédiaire est important : l'ordre limité marketable — un ordre d'achat limité au prix de l'ask ou légèrement au-dessus. Dans un scénario classique, il est exécuté immédiatement comme un ordre au marché, mais le prix limite sert de plafond si la cotation varie pendant l'envoi de l'ordre.
Deux paramètres déterminent le comportement de l'ordre en attente. La durée : un ordre day est annulé à la clôture s'il n'est pas exécuté ; un ordre good-till-canceled (GTC) reste actif entre les sessions jusqu'à son exécution, son annulation ou son expiration selon la limite de temps du courtier (généralement 60 à 90 jours). Les exécutions partielles : un ordre limité peut être exécuté par fractions — par exemple, 40 actions sur un ordre de 100 actions peuvent être exécutées à votre prix, tandis que les 60 actions restantes restent en attente.
Ordres stop et ordres stop-limit
Les formulaires d'ordre listent deux types supplémentaires dérivés de ceux-ci. Un ordre stop reste inactif jusqu'à ce que le titre s'échange au niveau ou dépasse votre prix stop ; il s'active alors comme un simple ordre au marché. Le "stop-loss" classique est un ordre de vente stop placé sous le cours actuel. Le risque est que l'ordre activé soit un ordre au marché ; en cas de gap sur le titre, l'exécution peut se faire bien en dessous du prix stop. Un ordre stop-limit s'active quant à lui comme un ordre limite — avec un prix stop et un prix limite — ce qui limite l'impact négatif sur le prix d'exécution, tout en acceptant qu'en cas de chute trop rapide, l'ordre puisse ne jamais être exécuté.
Le coût de l'immédiateté, en dollars
Le coût lié au passage du spread est mesurable à partir de l'historique des cotations. Pour une session complète sur cinq tickers, voici le spread médian et le coût de la moitié de celui-ci pour 100 actions :
Le SQL exact derrière chaque chiffre
SELECT ticker,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) * 100, bid_price > 0 AND ask_price > bid_price), 1) AS spread_cents,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) * 50, bid_price > 0 AND ask_price > bid_price), 2) AS half_spread_cost_100sh_usd,
round(count() / 23400, 1) AS quote_updates_per_sec
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'IWM', 'AAPL', 'KO', 'CATO')
AND sip_timestamp >= '2026-07-08 04:00:00'
AND sip_timestamp < '2026-07-09 04:00:00'
AND toTimeZone(sip_timestamp, 'America/New_York') >= toDateTime('2026-07-08 09:30:00', 'America/New_York')
AND toTimeZone(sip_timestamp, 'America/New_York') < toDateTime('2026-07-08 16:00:00', 'America/New_York')
GROUP BY ticker
ORDER BY quote_updates_per_sec DESCConsidérez les valeurs extrêmes. SPY, le titre le plus actif du panel, a mis à jour sa meilleure cotation nationale environ 176.8 fois par seconde avec un spread médian de 2 cents — le coût pour le traverser sur 100 actions était d'environ 1 $. À l'autre extrémité, CATO a très peu coté, avec un spread médian de 5 cents et un coût de half-spread proche de 2.5 $ pour les mêmes 100 actions. Pour une large-cap liquide, les coûts d'immédiateté sont négligeables ; pour un titre peu liquide, ils représentent une dépense réelle — et la cotation à l'écran peut avoir plusieurs minutes de retard. La dynamique économique du marché se résume dans le coût de transaction d'une action.
Le prix évolue pendant l'exécution de votre ordre
Le risque réel d'un ordre au marché n'est pas le spread visible, mais le mouvement du prix imprévu. Sur les titres les plus actifs, les cotations s'actualisent des centaines de fois par seconde. La volatilité est maximale lorsque la demande d'ordres au marché est la plus forte : juste après l'ouverture. Voici l'évolution de la moyenne des amplitudes (high-to-low) par minute pour le SPY sur une même séance :
Le SQL exact derrière chaque chiffre
SELECT round(avgIf(range_cents, et_minute >= '09:30' AND et_minute < '09:45'), 1) AS open_window_cents,
round(avgIf(range_cents, et_minute >= '12:00' AND et_minute < '13:00'), 1) AS midday_window_cents,
round(avgIf(range_cents, et_minute >= '15:45' AND et_minute < '16:00'), 1) AS close_window_cents,
round(avgIf(range_cents, et_minute >= '09:30' AND et_minute < '09:45')
/ avgIf(range_cents, et_minute >= '12:00' AND et_minute < '13:00'), 1) AS open_vs_midday
FROM (
SELECT formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_minute,
toFloat64(high - low) * 100 AS range_cents
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-08 04:00:00'
AND window_start < '2026-07-09 04:00:00'
)
WHERE et_minute >= '09:30' AND et_minute < '16:00'Durant les quinze premières minutes, le prix du SPY a parcouru en moyenne 70.3 cents par minute — contre 35.8 cents par minute durant la période de midi, et 38.8 cents lors des quinze dernières minutes. Un ordre au marché placé à 9h31 s'exécute sur un prix qui évolue environ 2x plus vite qu'à midi. Les spreads sont également les plus larges durant ces premières minutes — consultez pourquoi les spreads s'élargissent à l'ouverture.
L'impact d'une forte volatilité sur le trade-off
Le 8 juillet 2026 était une séance ordinaire ; le trade-off se réévalue lors d'une séance extraordinaire. Le 9 avril 2025 se situait en pleine volatilité liée aux annonces tarifaires du printemps — le SPY sur ces deux jours, avec les mêmes indicateurs :
Le SQL exact derrière chaque chiffre
WITH quotes AS (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
round(quantileDeterministicIf(0.5)(toFloat64(ask_price - bid_price) * 100, cityHash64(ticker, sip_timestamp), bid_price > 0 AND ask_price > bid_price), 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND ((sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00')
OR (sip_timestamp >= '2025-04-09 04:00:00' AND sip_timestamp < '2025-04-10 04:00:00'))
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
),
bars AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
round(avg(toFloat64(high - low) * 100), 1) AS avg_minute_range_cents,
round(max(toFloat64(high - low) * 100), 0) AS worst_minute_range_cents,
round((max(high) - min(low)) / argMin(toFloat64(open), window_start) * 100, 1) AS session_range_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= '2026-07-08 04:00:00' AND window_start < '2026-07-09 04:00:00')
OR (window_start >= '2025-04-09 04:00:00' AND window_start < '2025-04-10 04:00:00'))
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
)
SELECT formatDateTime(quotes.d, '%Y-%m-%d') AS session,
bars.session_range_pct,
bars.avg_minute_range_cents,
bars.worst_minute_range_cents,
quotes.median_spread_cents
FROM quotes INNER JOIN bars ON quotes.d = bars.d
ORDER BY quotes.d DESCLe 2025-04-09, le SPY a parcouru 10.8% entre son plus bas et son plus haut en une seule séance régulière, contre 0.9% lors de la journée calme ; l'amplitude moyenne par minute était de 156.4 cents contre 37.2, soit le plus fort écart de 1638 contre 133. Le spread s'est également élargi — médiane de 5¢ contre 2¢ — mais le mouvement est prédominant : lors d'une telle journée, le coût principal d'un market order est la variation de prix entre la décision et l'exécution. C'est là que l'utilité d'un prix limite est démontrée — et que l'exécution d'un limit order passif est la plus susceptible de se produire tôt, avant que le cours ne s'en éloigne.
Ordres volumineux et taille affichée
Le quote est un prix et une taille — le nombre d'actions réellement offertes au meilleur ask. Un ordre au marché plus important que la taille affichée peut épuiser cette liquidité et exécuter le solde aux prix suivants : c'est le phénomène de "walking the book". Voici les données observées sur la même session :
Le SQL exact derrière chaque chiffre
SELECT ticker,
minIf(ask_size, bid_price > 0 AND ask_price > bid_price) AS smallest_displayed_shares,
round(quantileDeterministicIf(0.5)(toFloat64(ask_size), cityHash64(ticker, sip_timestamp), bid_price > 0 AND ask_price > bid_price), 0) AS median_ask_shares,
round(countIf(ask_size >= 1000 AND bid_price > 0 AND ask_price > bid_price) / countIf(bid_price > 0 AND ask_price > bid_price) * 100, 1) AS pct_covering_1000_shares
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'IWM', 'AAPL', 'KO', 'CATO')
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
ORDER BY median_ask_shares DESC, ticker ASCIWM, le titre le plus profond du panel, présentait une médiane de 360 actions au meilleur ask ; AAPL n'affichait que 80. Pour aucun des cinq titres, l'ask affiché n'a couvert un ordre de 1 000 actions, même dans 10 % des cas — 7.8% des enregistrements de quotes au mieux, 0.6% au pire. La taille affichée est un plancher et non l'inventaire total — l'intérêt caché se situe entre les meilleurs prix et les carnets liquides se rechargent en millisecondes — mais la garantie d'un ordre au marché s'arrête aux actions affichées : au-delà, il prend ce que le carnet propose ensuite ; un ordre limit définit la limite à ne pas franchir.
Options : un arbitrage identique, mais amplifié
Les traders d'options sont les plus impactés : le prix des contrats est faible, donc un spread de quelques centimes représente une part bien plus importante du capital investi. Pour chaque option Apple à échéance 2026 avec une cotation bid-ask active, par rapport à l'action Apple, sur la même séance :
Le SQL exact derrière chaque chiffre
WITH opt AS (
SELECT round(quantileDeterministic(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, cityHash64(ticker, sip_timestamp)), 0) AS option_median_spread_bps,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price) * 100, cityHash64(ticker, sip_timestamp)), 0) AS option_median_spread_cents,
round(count() / 1e6, 0) AS option_quote_updates_millions
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:AAPL26' AND ticker < 'O:AAPL27'
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
AND bid_price > 0 AND ask_price > bid_price
),
stk AS (
SELECT round(quantileDeterministic(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, cityHash64(ticker, sip_timestamp)), 1) AS stock_median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
AND bid_price > 0 AND ask_price > bid_price
)
SELECT opt.option_median_spread_bps,
opt.option_median_spread_cents,
stk.stock_median_spread_bps,
round(opt.option_median_spread_bps / stk.stock_median_spread_bps, 0) AS option_to_stock_ratio,
opt.option_quote_updates_millions
FROM opt CROSS JOIN stkL'option Apple médiane présentait un spread de 606 points de base par rapport à son midpoint — soit environ 65 cents sur le contrat — tandis que l'action Apple affichait 1 points de base : un écart d'environ 606x. Un ordre au marché sur une option entraîne une perte sur l'exécution bien plus élevée que sur une action. Les traders d'options expérimentés utilisent systématiquement des ordres limit et visent le midpoint. Le coût total est détaillé dans le coût du trading d'options.
En dehors des horaires réguliers, l'ordre à cours limité est souvent la seule option
De nombreux courtiers refusent les ordres au marché lors des sessions pre-market et after-hours, n'acceptant que les ordres à cours limité. Les données de cotation expliquent cette politique — même jour, trois créneaux :
Le SQL exact derrière chaque chiffre
SELECT multiIf(et_min < 570, '1. Pre-market (4:00-9:30)', et_min < 960, '2. Regular (9:30-16:00)', '3. After-hours (16:00-20:00)') AS session_window,
round(quantileDeterministicIf(0.5)(spread_cents, det, ticker = 'SPY'), 1) AS spy_spread_cents,
round(quantileDeterministicIf(0.5)(spread_cents, det, ticker = 'AAPL'), 1) AS aapl_spread_cents,
round(quantileDeterministicIf(0.5)(spread_cents, det, ticker = 'KO'), 1) AS ko_spread_cents
FROM (
SELECT ticker,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min,
toFloat64(ask_price - bid_price) * 100 AS spread_cents,
cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'KO')
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND bid_price > 0 AND ask_price > bid_price
)
WHERE et_min >= 240 AND et_min < 1200
GROUP BY session_window
HAVING countIf(ticker = 'SPY') > 0 AND countIf(ticker = 'AAPL') > 0 AND countIf(ticker = 'KO') > 0
ORDER BY session_windowLe spread médian de Coca-Cola était de 1 cent en séance régulière, 28 cents en pre-market et 30 cents après la clôture ; Apple est passé de 3 cents à 32 ; même le SPY a vu son spread s'élargir de 2 à 7. Moins de participants et des carnets d'ordres plus fins — le trading en horaires étendus est le moment où un ordre non limité risque le plus de subir un mauvais exécution, ce que les règles des courtiers codifient.
Quel type d'ordre pour quelle situation
Les tableaux se résument à une liste de contrôle — il ne s'agit pas de conseils, mais simplement de déterminer quand le coût de l'inefficacité est faible ou élevé pour chaque type d'ordre :
- Large-cap liquide, tape calme, petit ordre. Le coût du spread est négligeable ; un limit marketable permet d'obtenir l'exécution immédiate d'un ordre au marché tout en fixant un prix plafond.
- Valeur peu liquide. Les quotes sont larges et peuvent être obsolètes de plusieurs minutes ; un ordre limit permet de découvrir le prix là où une quote obsolète échoue.
- Tape rapide — l'ouverture, une annonce de news, une journée comme le 9 avril 2025. Le risque de mouvement dépasse le coût du spread ; un ordre limit plafonne ce risque au risque de manquer l'exécution.
- Ordre supérieur à la taille affichée. La garantie de la quote s'arrête au nombre d'actions affiché ; un ordre limit définit votre niveau de prix maximum acceptable.
- Options et actions hors session. Les ordres limit sont la norme professionnelle — et sont souvent le seul type d'ordre accepté par votre broker en dehors des horaires réguliers.
En résumé : un market order garantit l'exécution, pas le prix ; un limit order garantit le prix, pas l'exécution ; un limit marketable permet une exécution immédiate tout en limitant l'impact sur le prix.
FAQ Ordre au marché vs Ordre à cours limité
Un ordre au marché est-il garanti d'être exécuté ?
Pour les tailles de positions retail classiques sur les actions cotées pendant les horaires normaux, la réponse est oui : il existe toujours une meilleure offre pour contrepartie. La garantie porte sur l'exécution, jamais sur le prix : sur un titre peu liquide ou très volatil, l'exécution peut s'écarter significativement de la dernière cotation affichée.
Qu'est-ce qu'un ordre stop-limit et en quoi diffère-t-il d'un ordre à cours limité ?
Un ordre à cours limité est actif dès sa saisie ; un ordre stop-limit reste inactif jusqu'à ce que l'action atteigne ou dépasse votre prix stop, puis il s'active en tant qu'ordre à cours limité à votre prix limite. Le risque est qu'un mouvement rapide dépasse votre limite et que l'ordre ne soit jamais exécuté.
Qu'advient-il de mon ordre à cours limité pendant la nuit ?
Un ordre journalier expire sans exécution à la clôture. Un ordre à cours limité jusqu'à annulation (GTC) reste actif jusqu'à son exécution, son annulation ou son expiration selon les limites de votre courtier — il ne s'exécute pas en dehors des horaires normaux, sauf si vous avez activé l'exécution en horaires étendus. Les actions subissent régulièrement des gaps overnight ; si l'ouverture crée un gap par rapport à un ordre limite en attente, l'exécution se fait au prix d'ouverture — soit votre prix ou un meilleur prix par définition.
Pourquoi mon ordre au marché a-t-il été exécuté à un prix différent de celui affiché à l'écran ?
Le NBBO (National Best Bid and Offer) d'un titre actif se met à jour plusieurs fois par seconde — SPY a été mis à jour environ 176.8 fois par seconde lors de la session mesurée ci-dessus. Votre ordre est exécuté selon la cotation en vigueur lors de son arrivée ; des délais d'affichage, de réseau et de traitement s'interposent.
Puis-je utiliser un ordre à cours limité pour vendre à perte ?
Oui — mais un ordre de vente limité s'exécute à votre prix ou mieux : placé sous le bid actuel, il est exécuté immédiatement près du bid. Si l'objectif est de "vendre uniquement si l'action tombe à 45 $", il s'agit d'un ordre de vente stop — un ordre de vente limité à 45 $ alors que l'action est à 50 $ s'exécute immédiatement aux alentours de 50 $.
Chaque panneau ci-dessus est une requête stockée sur les données de cotation et de transaction réelles — vous pouvez étendre la requête SQL, ou tester votre propre ticker avec ces mêmes questions sur le terminal Strasmore.