Strasmore Research

آپ کا options order fill کیوں نہیں ہوتا؟

Options order fill نہ ہونے کی وجوہ: exchange priority، pro-rata allocation، repricing اور spreads کی net-price routing۔ اپنی execution بہتر بنانے کے عملی طریقے جانیں۔

آپ کا options order عموماً اس لیے fill نہیں ہوتا کہ اس کے پیچھے ایسا exchange machinery کام کر رہا ہوتا ہے جو retail screen پر نظر نہیں آتی: exchange کی allocation queue میں آپ کا order کہاں موجود ہے، آپ کے ساتھ شامل size اب بھی برقرار ہے یا نہیں، market حقیقت میں کتنا wide ہے، اور آیا multi-leg order کی net price قابلِ اجرا بھی ہے یا نہیں۔ Displayed quote صرف اس بات کی ایک لمحاتی تصویر ہوتی ہے کہ کسی نے کچھ دیر پہلے کس قیمت پر trade کرنے پر آمادگی ظاہر کی تھی۔ اسی قیمت سے match ہونے پر آپ کا order queue میں شامل ہوتا ہے۔ اس سے وہ queue کے آغاز میں نہیں پہنچتا۔

کیا options quote اس بات کی ضمانت ہے کہ آپ اسی قیمت پر trade کر سکتے ہیں؟

نہیں۔ Quote ایک two-sided offer ہوتا ہے، جسے پوسٹ کرنے والا کسی بھی لمحے cancel یا reprice کر سکتا ہے۔ اس کے ساتھ دکھائی جانے والی size بھی صرف اسی لمحے کے لیے ہوتی ہے۔ Active underlying میں ایک single contract اپنی bid اور offer کئی بار فی سیکنڈ دوبارہ publish کرتا ہے۔ ہماری options bid-ask spread guide میں بتایا گیا ہے کہ دونوں sides کس چیز کی نمائندگی کرتی ہیں۔ Fills کا فیصلہ اس بات سے ہوتا ہے کہ quote کی کوئی ایک version کتنی مختصر مدت تک برقرار رہتی ہے۔

ذیل کا panel 17 جون 2026 کو 2:00:00 p.m. ET سے شروع ہونے والی ایک مقررہ 30-second window میں Apple options contracts کے لیے feed میں آنے والی ہر quote update کو، second by second، شمار کرتا ہے۔

استفسار کریںApple options کے quote updates، ہر سیکنڈ، 17 جون 2026 کو دوپہر 2:00 بجے ET
ہر عدد کے پیچھے موجود درست SQL
SELECT
    formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') AS et_time,
    round(count() / 1000, 1)                                                 AS quote_updates_k,
    round(count() / uniqExact(ticker), 1)                                    AS updates_per_contract
FROM global_markets.cache_options_quotes
WHERE ticker IN
(
    SELECT ticker
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date = '2026-06-17'
)
  AND sip_timestamp >= toDateTime('2026-06-17 18:00:00', 'UTC')
  AND sip_timestamp <  toDateTime('2026-06-17 18:00:30', 'UTC')
GROUP BY et_time
ORDER BY et_time
Run this yourself

ابتدائی second میں feed نے ان contracts کے لیے تقریباً 0.9 ہزار quote updates پہنچائیں، یعنی اس ایک second میں فی contract تقریباً 1.9 republished quotes۔ Order ticket اس رفتار سے سفر نہیں کرتا۔ جب تک ایک click exchange پر message بن کر پہنچتا ہے، اس وقت تک وہ order book جس میں وہ شامل ہوتا ہے پہلے ہی کئی بار بدل چکی ہوتی ہے۔

کیا best price پر موجود ہونا آپ کو queue میں سب سے آگے کر دیتا ہے؟

صرف اس بنیاد پر نہیں۔ Stock exchanges عموماً price-time priority پر چلتی ہیں: ایک ہی price پر جو order پہلے پہنچے، وہ پہلے trade کرتا ہے۔ Options exchanges اس کے اوپر دو مزید rules نافذ کرتی ہیں، اور یہی rules resting orders کو طویل انتظار میں ڈال سکتے ہیں۔

Public customer orders کو پہلے ترجیح ملتی ہے۔ تقریباً ہر US options exchange میں ایک ہی price پر موجود market maker اور professional orders کے مقابلے میں public customer کا order precedence رکھتا ہے۔ یہ حصہ retail trader کے حق میں کام کرتا ہے۔

Customer priority کے بعد allocation pro-rata ہوتی ہے، time order کے مطابق نہیں۔ Incoming order کو resting orders کے درمیان ان کی size کے تناسب سے تقسیم کیا جاتا ہے۔ بعض اوقات price سب سے پہلے پوسٹ کرنے والے کو معمولی اضافی priority بھی ملتی ہے۔ حصہ arrival time نہیں بلکہ size طے کرتی ہے۔

ان دونوں rules کو ملا کر دیکھیں تو 500 lot کے ساتھ موجود 1 lot، queue میں دو orders میں سے ایک نہیں بلکہ 501 contracts میں سے صرف ایک contract شمار ہوتا ہے۔ آنے والا 100 lot اس price کو sweep کرتے ہوئے چھوٹے order پر صرف ایک contract fill کر سکتا ہے۔

ذیل کا panel 17 جون 2026 کو Apple options میں ہونے والے ہر trade کو trade size کے لحاظ سے مختلف buckets میں تقسیم کرتا ہے۔ پھر ہر bucket کے دن بھر کے prints میں حصے کا موازنہ اس کے دن بھر میں trade ہونے والے contracts کے حصے سے کرتا ہے۔

استفسار کریں17 جون 2026 کو Apple options کی trades: trade size کے لحاظ سے prints کے حصے بمقابلہ contracts کے حصے
ہر عدد کے پیچھے موجود درست SQL
WITH
    (
        SELECT count()
        FROM global_markets.options_trades
        WHERE underlying_symbol = 'AAPL'
          AND sip_timestamp >= toDateTime('2026-06-17 00:00:00', 'UTC')
          AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')
    ) AS day_prints,
    (
        SELECT sum(size)
        FROM global_markets.options_trades
        WHERE underlying_symbol = 'AAPL'
          AND sip_timestamp >= toDateTime('2026-06-17 00:00:00', 'UTC')
          AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')
    ) AS day_contracts
SELECT
    multiIf(size = 1,    '1 contract',
            size <= 5,   '2 to 5',
            size <= 20,  '6 to 20',
            size <= 100, '21 to 100',
                         'over 100')       AS size_bucket,
    round(100 * count()   / day_prints, 2) AS share_of_trades_pct,
    round(100 * sum(size) / day_contracts, 2) AS share_of_volume_pct
FROM global_markets.options_trades
WHERE underlying_symbol = 'AAPL'
  AND sip_timestamp >= toDateTime('2026-06-17 00:00:00', 'UTC')
  AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')
GROUP BY size_bucket
ORDER BY min(size)
Run this yourself

Single-contract trades دن بھر کے 48.48% prints اور 7.83% contracts پر مشتمل تھیں۔ over 100 bucket میں یہ تناسب الٹ جاتا ہے: 0.44% prints میں 16.67% volume شامل تھا۔ Pro-rata allocation میں دوسرا number یہ طے کرتا ہے کہ آنے والے order کا کتنا حصہ کسی ایک resting order تک پہنچے گا۔ Market makers دونوں sides پر مسلسل quotes دیتے اور ساتھ ہی اپنی inventory manage کرتے ہیں۔ اس عمل کی تفصیل ہماری guide to how market makers make money میں موجود ہے۔

میرا options order mid پر fill کیوں نہیں ہوتا؟

Mid ایک arithmetic figure ہے: bid اور ask کو جمع کر کے دو سے تقسیم کیا جاتا ہے۔ کسی کو وہاں trade کرنے کی پابندی نہیں ہوتی۔ ہمیشہ موجود رہنے والی دو prices naturals ہیں: اگر آپ خرید رہے ہیں تو ask، اور اگر فروخت کر رہے ہیں تو bid۔ Natural اور mid کے درمیان ہر price ایک negotiation ہوتی ہے۔ یہ اس وقت مکمل ہوتی ہے جب دوسری طرف کا model contract کو midpoint کے آپ کی جانب price کرے، یا جب کوئی دوسرا public order opposite trade کرنا چاہے۔

یہ negotiation کتنی جگہ cover کرتی ہے، اس کا تعلق market کی width سے ہے۔ Contract کی price کے لحاظ سے یہ width بہت زیادہ بدل سکتی ہے۔ ذیل کا panel اسی 30-second window میں Apple options کی ہر quote کو contract price کے لحاظ سے group کرتا ہے۔ پھر median quoted spread کو cents میں اور mid کے percentage کے طور پر رپورٹ کرتا ہے۔

استفسار کریںApple options پر contract price کے لحاظ سے median quoted spread، 17 جون 2026 کی 30 سیکنڈ کی window
ہر عدد کے پیچھے موجود درست SQL
SELECT
    price_bucket,
    round(quantileExact(0.5)(spread) * 100, 1)       AS median_spread_cents,
    round(quantileExact(0.5)(100 * spread / mid), 1) AS spread_pct_of_mid
FROM
(
    SELECT
        toFloat64(ask_price) - toFloat64(bid_price)       AS spread,
        (toFloat64(ask_price) + toFloat64(bid_price)) / 2 AS mid,
        multiIf(mid < 0.50,  'under $0.50',
                mid < 2.00,  '$0.50 to $2',
                mid < 5.00,  '$2 to $5',
                mid < 15.00, '$5 to $15',
                             '$15 and up')                AS price_bucket,
        multiIf(mid < 0.50, 1, mid < 2.00, 2, mid < 5.00, 3, mid < 15.00, 4, 5) AS bucket_order
    FROM global_markets.cache_options_quotes
    WHERE ticker IN
    (
        SELECT ticker
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'AAPL'
          AND date = '2026-06-17'
    )
      AND sip_timestamp >= toDateTime('2026-06-17 18:00:00', 'UTC')
      AND sip_timestamp <  toDateTime('2026-06-17 18:00:30', 'UTC')
      AND bid_price > 0
      AND ask_price > bid_price
)
GROUP BY price_bucket
ORDER BY min(bucket_order)
Run this yourself

under $0.50 bucket کے contracts میں median spread 17 cents تھا، جو mid کا 75% بنتا ہے۔ $15 and up bucket کے contracts میں spread 170 cents، یا mid کا 3.8% تھا۔ Cents میں مہنگا contract زیادہ wide quote دکھاتا ہے۔ Percentage کے لحاظ سے سستا contract بہت زیادہ wide market رکھتا ہے۔ اس کے midpoint پر resting order counterparty سے spread کا بڑا حصہ چھوڑنے کا تقاضا کرتا ہے۔ Liquidity and volatility ان widths کو مختلف سمتوں میں متاثر کرتے ہیں، اس لیے ایک ہی underlying کے دو contracts کا رویہ بالکل مختلف ہو سکتا ہے۔

ایک market order versus a limit order pricing کے سوال کو ختم کر کے اسے ایک مختلف سوال میں بدل دیتا ہے۔ Market order اسی لمحے order book میں موجود prices کے خلاف trade کرتا ہے۔ Thin options series میں یہ price آپ کی screen پر دکھائی دینے والے آخری quote سے کئی ticks دور ہو سکتی ہے۔

دونوں legs executable نظر آنے کے باوجود spread fill کیوں نہیں ہوتا؟

Multi-leg order دو single-leg books میں نہیں بیٹھتا۔ یہ complex order book میں route ہوتا ہے اور اپنی net price پر ایک package کے طور پر match ہوتا ہے۔ Exchange اسے کسی دوسرے complex order کے خلاف fill کرتی ہے، یا single-leg books کے خلاف اس وقت fill کرتی ہے جب ان کی combined price آپ کی net price سے بہتر ہو۔ پورا package price ہونے تک یہ دونوں میں سے کوئی عمل نہیں ہوتا۔

ایک hypothetical two-leg call spread دیکھیں۔ Long leg کی quote $1.20 bid اور $1.35 ask ہے، جبکہ short leg کی quote $0.60 bid اور $0.72 ask ہے۔ Naturals پر package خریدنے کی لاگت $1.35 منفی $0.60، یعنی $0.75 debit ہے۔ Naturals پر فروخت سے $1.20 منفی $0.72، یعنی $0.48 credit حاصل ہوتا ہے۔ Package کی net market $0.48 bid اور $0.75 ask ہے، جس کا midpoint $0.615 بنتا ہے۔ Legs کو الگ الگ دیکھنے سے یہ معلوم نہیں ہوتا کہ $0.62 executable ہے یا نہیں۔ Combined book اپنی الگ two-sided market اور اپنے الگ resting orders رکھتی ہے۔

اس سے دو باتیں واضح ہوتی ہیں۔ Single-leg screen پر کسی leg کا آپ کی price پر trade ہونا آپ کے spread کو fill نہیں کرتا۔ آپ کا order ابتدا ہی سے اس book میں resting نہیں تھا۔ اسی طرح leg prices کے بجائے net terms میں spread price نہ کرنے کا مطلب ایسی book کے خلاف price دینا ہے جو موجود ہی نہیں۔

zero volume والے strike پر order fill کیوں نہیں ہوتا؟

کچھ خراب نہیں ہوا۔ زیادہ تر listed strikes میں زیادہ تر دن trade نہیں ہوتی۔ Chain میں exchange کی جانب سے کھولی گئی ہر strike شامل ہوتی ہے، مگر ان میں سے بیشتر quoted رہتی ہیں اور ان پر trade نہیں ہوتا، بعض اوقات کئی ہفتوں تک۔ Volume آج trade ہونے والے contracts کو شمار کرتا ہے۔ Open interest اب بھی برقرار positions کو شمار کرتا ہے۔ دونوں کے فرق کی وضاحت ہمارے options volume vs open interest explainer میں کی گئی ہے۔

ذیل کا panel دکھاتا ہے کہ outer strikes پر liquidity کس طرح کم ہوتی ہے۔ اس میں May اور June 2026 کے دوران 20 سے 45 days to expiry والے ہر Apple contract کو شامل کیا گیا ہے۔ پھر انہیں اس بنیاد پر group کیا گیا ہے کہ اس دن strike underlying price سے کتنی دور تھی۔ Panel median daily volume کے ساتھ ان contract days کا حصہ بھی رپورٹ کرتا ہے جن میں 10 سے کم contracts کے prints ہوئے۔

استفسار کریںstrike distance کے لحاظ سے Apple options کی activity، expiry تک 20 سے 45 دن، مئی اور جون 2026
ہر عدد کے پیچھے موجود درست SQL
SELECT
    moneyness_bucket,
    round(quantileExact(0.5)(toFloat64(volume)), 0) AS median_daily_volume,
    round(100 * countIf(volume < 10) / count(), 1)  AS share_under_10_lots_pct
FROM
(
    SELECT
        abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS gap,
        multiIf(gap < 0.02, '0% to 2% from spot',
                gap < 0.05, '2% to 5% from spot',
                gap < 0.10, '5% to 10% from spot',
                gap < 0.20, '10% to 20% from spot',
                            'more than 20% from spot') AS moneyness_bucket,
        multiIf(gap < 0.02, 1, gap < 0.05, 2, gap < 0.10, 3, gap < 0.20, 4, 5) AS bucket_order,
        volume
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2026-05-01'
      AND date <  '2026-07-01'
      AND days_to_expiry BETWEEN 20 AND 45
      AND underlying_close > 0
)
GROUP BY moneyness_bucket
ORDER BY min(bucket_order)
Run this yourself

0% to 2% from spot contracts کا median daily volume 354 contracts تھا، جبکہ 2% contract days میں 10 سے کم contracts کے prints ہوئے۔ more than 20% from spot contracts میں روزانہ median volume 6 contracts رہا، اور وہاں 55.4% contract days میں 10 سے کم contracts کے prints ہوئے۔ ان strikes میں سے کسی ایک پر resting order ایسے flow کا انتظار کرتا ہے جو آ ہی نہیں رہا۔ وہاں واحد مستقل counterparty عموماً وہ market maker ہوتا ہے جس نے ابتدا میں اس strike پر quote دیا تھا۔

Order ticket کے بارے میں یہ machinery کیا تبدیل کرتی ہے

  • Spread کی pricing net basis پر ہوتی ہے۔ Complex book packages کو match کرتی ہے، اور single-leg price وہاں الگ سے standing نہیں رکھتی۔
  • Mid ایک anchor کے طور پر کام کرتا ہے۔ Wide market میں ہمیشہ دستیاب دو prices naturals ہیں: خرید کے لیے ask اور فروخت کے لیے bid۔
  • Pro-rata fill میں حصہ size طے کرتی ہے۔ بڑے orders کے ساتھ resting 1 lot کو آنے والے order کا صرف proportional حصہ ملتا ہے۔
  • Quiet strike پہلے quoting کا سوال ہے، order کا بعد میں۔ Match کرنے کے لیے کوئی flow آ ہی نہیں رہا۔

FAQ

میرا options limit order bid پر ہونے کے باوجود fill کیوں نہیں ہوتا؟

Bid join کرنے سے آپ کا order اس price کی queue میں شامل ہو جاتا ہے۔ Options exchanges fills کو صرف arrival time سے نہیں بلکہ customer status اور size کے مطابق allocate کرتی ہیں۔ بڑے orders کے ساتھ موجود چھوٹے order کو ہر trade ہونے والی quantity کا proportional حصہ ملتا ہے، جو معمولی print میں round down ہو کر صفر بھی بن سکتا ہے۔

کیا options exchanges orders کو arrival کے لحاظ سے fill کرتی ہیں؟

زیادہ تر صورتوں میں نہیں۔ ایک ہی price پر public customer orders کو market maker اور professional orders پر ترجیح ملتی ہے۔ باقی size عموماً pro-rata بنیاد پر، ہر resting order کی size کے تناسب سے allocate ہوتی ہے۔ بعض exchanges price سب سے پہلے پوسٹ کرنے والے کو اضافی priority بھی دیتی ہیں۔

Options order میں natural pay کرنے کا کیا مطلب ہے؟

Natural وہ price ہے جو market کی آپ کی side پر پہلے سے دکھائی جا رہی ہو: خریدتے وقت ask اور فروخت کرتے وقت bid۔ Natural پر order موجودہ quote کے خلاف executable ہوتا ہے، جبکہ mid پر order دوسری طرف کے price بہتر کرنے کا انتظار کرتا ہے۔

کیا zero volume والے option کا کبھی fill نہ ہونا معمول ہے؟

ہاں۔ زیادہ تر listed strikes میں زیادہ تر دن trade نہیں ہوتی۔ ان میں سے کسی strike پر resting order ایسے flow کے لیے مقابلہ کرتا ہے جو آ نہیں رہا۔ وہاں دکھائی دینے والی quote عموماً market maker کی obligation ہوتی ہے۔ Fill اس بات پر منحصر ہوتا ہے کہ اس لمحے market maker اس price پر trade کرنا چاہتا ہے یا نہیں۔

:::detailsیہ panels کیسے تیار کیے گئے
دونوں quote panels نے 17 جون 2026 کو 2:00:00 p.m. سے 2:00:30 p.m. ET تک کی ایک مقررہ 30-second window استعمال کی۔ اس میں صرف وہ Apple option contracts شامل تھے جن کے لیے اس تاریخ کو daily greeks record موجود تھا۔ Window کو مقرر رکھنے سے یہ numbers ہر بار post regenerate ہونے پر یکساں رہتے ہیں۔ Strike census میں May اور June 2026 کے contracts شامل ہیں، اور جان بوجھ کر وہ contracts بھی برقرار رکھے گئے جن میں بالکل کوئی volume record نہیں ہوئی۔ کسی listed strike کے untraded رہنے کی شرح ہی اس panel کا اصل موضوع ہے۔ Stored timestamps UTC میں ہیں اور ہر query کے اندر انہیں Eastern time میں تبدیل کیا جاتا ہے۔
:::


اوپر موجود ہر panel کے نیچے exact SQL فراہم کی گئی ہے۔ اپنے زیرِنگرانی contract پر یہی measurements چلانے کے لیے Strasmore terminal میں سوال plain English میں لکھیں۔

#options#order fills#market makers#liquidity#priority