Strasmore Research

Stock Quotes 15 منٹ تاخیر سے کیوں آتے ہیں؟

مفت websites پر stock quotes کی 15 منٹ تاخیر data plumbing نہیں بلکہ exchange data licensing کا نتیجہ ہے، اور یہ باسی price آپ کی trading پر کیا اثر ڈالتی ہے۔

زیادہ تر مفت websites پر stock quotes licensing کی وجہ سے 15 منٹ تاخیر سے دکھائے جاتے ہیں۔ Data plumbing سست نہیں ہوتی: exchange matching engine سے price نکل کر screen تک ایک سیکنڈ کے معمولی حصے میں پہنچ جاتی ہے۔ یہ 15 منٹ ایک contract term ہے، جو ان agreements میں درج ہوتی ہے کہ live prices کون دکھا سکتا ہے اور اس کے لیے کتنی ادائیگی کرے گا۔

آپ تک پہنچنے سے پہلے stock price کہاں سے آتی ہے

ایک امریکی stock بیک وقت ایک درجن سے زیادہ public venues پر trade کرتا ہے۔ اس کے علاوہ exchange کے باہر ہونے والی trading بھی ایک طویل سلسلے کی صورت میں جاری رہتی ہے، اور اس کے prints الگ رپورٹ ہوتے ہیں۔ ہر venue اپنے quotes اور trades شائع کرتا ہے۔ Industry plans اس تمام ڈیٹا کو ایک ہی tape میں یکجا کرتے ہیں۔ ایک plan NYSE listed names کا احاطہ کرتا ہے، جبکہ دوسرا Nasdaq listed names کا۔ ان plans کو چلانے والے processors کو SIPs کہا جاتا ہے، جو securities information processors کا مخفف ہے۔ یہ consolidated tape national best bid and offer تیار کرتی ہے، یعنی کسی بھی لمحے دستیاب بہترین bid اور offer کا جوڑا۔ اس کی مکمل وضاحت ہماری guide NBBO کیا ہے میں موجود ہے۔

Exchanges اپنی direct feeds بھی فروخت کرتے ہیں۔ یہ consolidated tape کے مقابلے میں زیادہ تیز اور زیادہ تفصیلی ہوتی ہیں، اور ان کا license اس tape سے الگ حاصل کرنا پڑتا ہے۔

Stock quotes میں 15 منٹ کی تاخیر کیوں ہوتی ہے: licensing کا جواب

Market data exchange کی آمدنی کا ایک ذریعہ ہے۔ قیمتیں فراہم کرنے والا ہر distributor — broker، website، terminal یا phone app — exchanges اور tape plans کے ساتھ agreements کرتا ہے۔ یہ agreements انہی نمبروں کو دو products میں تقسیم کرتے ہیں۔ Real time data پر fee عائد ہوتی ہے اور ہر user کے حساب سے ماہانہ رپورٹنگ کی جاتی ہے۔ Delayed data کم از کم 15 منٹ پرانا ہو جائے تو real time schedule سے باہر آ جاتا ہے، اور distributor اسے صارفین کی تعداد گنے بغیر مفت فراہم کر سکتا ہے۔

ان schedules میں کئی charges شامل ہوتے ہیں: data pipe تک رسائی کی access fee، ہر اس شخص کے لیے per-user monthly fee جو live price دیکھ سکتا ہو، اور ان machines کے لیے non-display fees جو کسی انسانی ناظر کے بغیر prices استعمال کرتی ہیں۔ Rates عوامی طور پر file کیے جاتے ہیں اور زیادہ تر برسوں میں تبدیل ہوتے رہتے ہیں، اس لیے structure اس سال کے نمبروں سے زیادہ اہم ہے۔ Live prices کے لیے فی شخص فی ماہ payment ہوتی ہے۔ ایسی price کے لیے کوئی payment نہیں ہوتی جو ایک quarter of an hour پرانی ہو۔

یہی مکمل جواب ہے کہ free version مفت کیوں ہے۔ Live prices فراہم کرنے کی لاگت کا دوسرا بڑا حصہ volume ہے: tape پورے session کے دوران quote updates کا مسلسل stream چلاتی ہے، اور options اس کی انتہائی مثال ہیں، جیسا کہ options quote feed کا حجم ظاہر کرتا ہے۔

15 منٹ کی تاخیر کی اصل قیمت

تاخیر کی اہمیت اس بات پر منحصر ہے کہ اس دوران قیمت کتنی حرکت کرتی ہے، اور اسے ناپا جا سکتا ہے۔ ذیل کا panel جون 2026 تک SPY، یعنی S&P 500 کو track کرنے والے fund، کے ہر regular-session minute bar کو اس کے 15 منٹ بعد والے bar سے ملاتا ہے۔ نتائج کو اس گھنٹے کے لحاظ سے گروپ کیا گیا ہے جس میں ابتدائی bar آیا تھا۔

استفسار کریںسیشن کے ہر گھنٹے میں SPY کی 15 منٹ کی حرکت (جون 2026)
ہر عدد کے پیچھے موجود درست SQL
WITH regular_bars AS
(
    SELECT
        toTimeZone(window_start, 'America/New_York')                      AS et,
        toTimeZone(window_start, 'America/New_York') + INTERVAL 15 MINUTE AS et_later,
        toFloat64(close)                                                  AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND close > 0
      AND window_start >= '2026-06-01 00:00:00'
      AND window_start <  '2026-07-01 00:00:00'
      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
)
SELECT
    formatDateTime(toStartOfHour(a.et), '%H:%i')                                                       AS et_time,
    round(quantileDeterministic(0.5)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3)   AS median_gap_pct,
    round(quantileDeterministic(0.95)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3)  AS p95_gap_pct,
    count()                                                                                            AS sample_count
FROM regular_bars AS a
INNER JOIN regular_bars AS b ON b.et = a.et_later
GROUP BY et_time
ORDER BY et_time
Run this yourself

9:30 a.m. ET سے شروع ہونے والے opening hour میں بننے والے bars اگلے 15 منٹ کے دوران median کے لحاظ سے 0.125% چلے، جبکہ 95th percentile 0.556% تھا۔ 15:00 hour میں median 0.065% رہا۔ ہر bucket میں 630 overlapping minute pairs شامل ہیں، اس لیے یہ اعداد و شمار عام صورتِ حال دکھاتے ہیں، کسی ایک دن کا اتفاق نہیں۔ curve ہموار نہیں ہے، اور ایک مقررہ تاخیر بعض اوقات میں دوسری اوقات کے مقابلے میں زیادہ معلومات چھپا دیتی ہے۔

یہ کتنا چھپاتی ہے، اس کا انحصار متعلقہ نام پر بھی ہوتا ہے۔ پیمائش ایک ہی ہے، چھ household tickers ہیں، اور مہینہ بھی ایک ہی ہے۔

استفسار کریںچھ معروف tickers میں 15 منٹ کا فرق (جون 2026)
ہر عدد کے پیچھے موجود درست SQL
WITH regular_bars AS
(
    SELECT
        ticker,
        toTimeZone(window_start, 'America/New_York')                      AS et,
        toTimeZone(window_start, 'America/New_York') + INTERVAL 15 MINUTE AS et_later,
        toFloat64(close)                                                  AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'AMD')
      AND close > 0
      AND window_start >= '2026-06-01 00:00:00'
      AND window_start <  '2026-07-01 00:00:00'
      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
)
SELECT
    a.ticker                                                                                           AS ticker,
    round(quantileDeterministic(0.5)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3)   AS median_gap_pct,
    round(quantileDeterministic(0.99)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3)  AS p99_gap_pct
FROM regular_bars AS a
INNER JOIN regular_bars AS b ON b.ticker = a.ticker AND b.et = a.et_later
GROUP BY ticker
ORDER BY median_gap_pct DESC
Run this yourself

چھ میں AMD کا typical gap سب سے وسیع، یعنی 0.361%، تھا، جبکہ SPY کا سب سے کم، یعنی 0.071%، تھا۔ 99th percentile کے column کو دو بار دیکھنا چاہیے: اس مہینے کے بدترین ایک فیصد 15 منٹ کے windows میں AMD نے 2.532% کا فاصلہ طے کیا۔

اسی تصور کو ایک دن پر بھی دیکھا جا سکتا ہے۔ یہ panel SPY میں جون 2026 کے دوران سب سے وسیع intraday range والا session تلاش کرتا ہے، پھر دو lines بناتا ہے: ہر دس منٹ کے مقام پر live tape، اور اسی لمحے 15 منٹ تاخیر والا page جو قیمت دکھا رہا تھا۔

استفسار کریںایک SPY سیشن میں Live price بمقابلہ 15 منٹ تاخیر والا view
ہر عدد کے پیچھے موجود درست SQL
WITH
    widest_session AS
    (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND close > 0
          AND window_start >= '2026-06-01 00:00:00'
          AND window_start <  '2026-07-01 00:00:00'
          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 d
        ORDER BY (max(toFloat64(high)) - min(toFloat64(low))) / min(toFloat64(low)) DESC
        LIMIT 1
    ),
    session_bars AS
    (
        SELECT
            toTimeZone(window_start, 'America/New_York')                      AS et,
            toTimeZone(window_start, 'America/New_York') - INTERVAL 15 MINUTE AS et_earlier,
            toFloat64(close)                                                  AS px
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND close > 0
          AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM widest_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
    )
SELECT
    formatDateTime(a.et, '%H:%i')  AS et_time,
    round(a.px, 2)                 AS live_price,
    round(b.px, 2)                 AS delayed_price,
    round(abs(a.px - b.px), 2)     AS gap_delta,
    formatDateTime(a.et, '%b %e')  AS session_label
FROM session_bars AS a
INNER JOIN session_bars AS b ON b.et = a.et_earlier
WHERE toMinute(a.et) % 10 = 0
ORDER BY a.et
Run this yourself

Jun 9 کو 09:50 ET پر live SPY 746.13 تھا، جبکہ delayed view 744.22 دکھا رہا تھا؛ دونوں کے درمیان فاصلہ $1.91 تھا۔ 15:50 تک دونوں اعداد 735.29 اور 734.49 ہو گئے۔ جب tape پرسکون ہوتی ہے تو lines ایک دوسرے پر آ جاتی ہیں، اور جب قیمت حرکت کرتی ہے تو الگ ہو جاتی ہیں۔ ساکت market میں تاخیر کی قیمت صفر ہوتی ہے، جبکہ ان لمحات میں سب سے زیادہ ہوتی ہے جب لوگ market کو دیکھ رہے ہوتے ہیں۔

Display rule: ویب سائٹ کو آپ کو کیا دکھانا لازم ہے

Regulation NMS میں consolidated display requirement شامل ہے، Rule 603(c)۔ عوام کو quotation data دکھانے والے vendor کو consolidated information پیش کرنا ہوتی ہے، یعنی consolidated last sale کے ساتھ national best bid and offer، نہ کہ کسی ایک venue کے quote کو قیمت کے طور پر پیش کیا جائے۔ Vendors کو delayed data کی بھی واضح طور پر delayed کے طور پر شناخت کرنا ہوتی ہے۔ Finance pages کے نیچے موجود چھوٹے حروف اسی تقاضے کا نتیجہ ہیں۔ مفت quote پڑھنے والوں کے لیے اس سے دو باتیں اخذ ہوتی ہیں۔

  • کسی ایک exchange سے ملنے والا free live quote حقیقی قیمت ہوتی ہے، لیکن یہ NBBO نہیں ہوتی۔ اس میں صرف ایک venue کی book دکھائی جاتی ہے، جو دستیاب بہترین quote کے مقابلے میں زیادہ wide ہو سکتی ہے۔
  • ایسی page جس پر live last trade موجود ہو لیکن bid یا ask نہ ہو، معمول کی بات ہے۔ Last sale اور quotes الگ الگ licensed products ہیں، اور last sale نسبتاً سستا product ہے۔

جب دو venues book کے اوپری حصے پر ایک دوسرے سے ملتے ہیں تو کیا ہوتا ہے، اس کے لیے locked and crossed markets دیکھیں۔

Professional یا non-professional: وہ test جو آپ کا bill طے کرتا ہے

کسی فرد کے لیے live data کی لاگت ایک classification پر منحصر ہوتی ہے، اور یہ classification آپ کی دولت کے بجائے آپ کے کام سے طے ہوتی ہے۔ exchanges کی اصطلاح میں آپ non-professional subscriber اس وقت شمار ہوتے ہیں جب درج ذیل تمام شرائط پوری ہوں۔

  • آپ ایک natural person ہیں اور data ذاتی استعمال کے لیے لے رہے ہیں، کسی کمپنی یا دوسری entity کی جانب سے نہیں۔
  • آپ SEC، CFTC، کسی state securities agency، securities exchange یا association، یا futures contract market کے ساتھ registered یا qualified نہیں ہیں۔
  • آپ investment adviser یا asset manager کے طور پر کام نہیں کر رہے، اور نہ ہی ایسا کام کرتے ہیں جس کے لیے ان میں سے کسی registration کی ضرورت ہو۔
  • آپ data کو کسی کاروباری مقصد کے لیے استعمال نہیں کرتے، اس employer کے لیے بھی نہیں جو subscription کی رقم واپس ادا کرتا ہو۔

ان میں سے ایک شرط بھی پوری نہ ہو تو exchanges آپ کو professional قرار دیتے ہیں۔ اس صورت میں ہر exchange، ہر user اور ہر ماہ کے حساب سے bill بنتا ہے، اور rate non-professional rate سے کئی گنا زیادہ ہوتا ہے۔ کسی fund کا junior analyst، جس کا ذاتی account چھوٹا ہو، professional شمار ہوگا۔ اس کے برعکس بڑا portfolio رکھنے والا retired investor، جو صرف اپنی رقم trade کرتا ہو، professional نہیں ہوگا۔ Distributors آپ کا جواب حاصل کرکے اس کی رپورٹ دینے کے پابند ہیں۔ اسی لیے ہر live data signup میں آپ کے employer اور registrations کے بارے میں سوال کیا جاتا ہے۔

Snapshot quote کیا ہے؟

Snapshot اس وقت لیا گیا ایک market reading ہوتا ہے جب آپ data طلب کرتے ہیں۔ اس میں last price، یا موجودہ bid اور ask شامل ہوتے ہیں، اور یہ صرف ایک بار واپس آتا ہے۔ بعد میں اس میں کوئی update نہیں ہوتا۔

Stream ایک مسلسل subscription ہوتی ہے۔ اس میں ہر تبدیلی ہوتے ہی data بھیج دیا جاتا ہے۔

Licensing میں دونوں کی قیمت الگ ہوتی ہے۔ Snapshot عموماً فی query قیمت کے حساب سے ہوتا ہے، جبکہ stream کی قیمت اکثر فی user فی ماہ مقرر کی جاتی ہے۔ اسی لیے free API آپ کو delayed snapshot endpoint دے گی، مگر live stream نہیں۔

اگر آپ ہر سیکنڈ snapshot refresh کریں تو عملاً آپ نے stream دوبارہ بنا لی۔ Data agreements اسی استعمال کو روکنے کے لیے لکھے جاتے ہیں۔

سامنے موجود قیمت delayed ہے یا نہیں، یہ کیسے جانیں

  • Timestamp ہی واحد قابلِ اعتماد علامت ہے۔ Live quote موجودہ ET clock کے مطابق ایک یا دو سیکنڈ کے اندر stamped ہوتی ہے۔
  • دن کی بلند ترین قیمت اور جاری volume بھی stale ہو جاتے ہیں، اس لیے delayed page دس منٹ پہلے tape پر آنے والی high کو miss کر سکتا ہے۔
  • 9:30 a.m. ET کے open کے بعد پہلے 15 منٹ میں delayed page پر موجودہ session کا کوئی data نہیں ہوتا۔ اس پر previous close یا premarket print دکھائی دیتا ہے۔
  • Freeze test، یعنی یہ دیکھنا کہ number بالکل move کر رہا ہے یا نہیں، صرف ان names پر کام کرتا ہے جو حرکت کرتے ہوں۔

اس آخری طریقے کے لیے data درکار ہے۔

استفسار کریںآخری price کتنی بار تبدیل ہوتی ہے، منٹ بہ منٹ (جون 2026)
ہر عدد کے پیچھے موجود درست SQL
WITH regular_bars AS
(
    SELECT
        ticker,
        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
        toTimeZone(window_start, 'America/New_York')         AS et,
        toFloat64(close)                                     AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'AMD')
      AND close > 0
      AND window_start >= '2026-06-01 00:00:00'
      AND window_start <  '2026-07-01 00:00:00'
      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
),
stepped AS
(
    SELECT
        ticker,
        et,
        px,
        lagInFrame(px) OVER (PARTITION BY ticker, session_date ORDER BY et
                             ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_px
    FROM regular_bars
)
SELECT
    ticker,
    round(100 * countIf(px != prev_px) / count(), 1)                                                       AS minutes_price_moved_pct,
    round(quantileDeterministic(0.5)(abs(px / prev_px - 1) * 10000, toUInt64(toUnixTimestamp(et))), 1)      AS median_move_bps
FROM stepped
WHERE prev_px > 0
GROUP BY ticker
HAVING count() > 0
ORDER BY minutes_price_moved_pct DESC
Run this yourself

June 2026 تک، AMD نے regular session کے 99.8% منٹوں میں پچھلے منٹ سے مختلف price print کی، جبکہ منٹ بہ منٹ حرکت کا median 9.6 basis points تھا۔ ایک basis point ایک فیصد کا one hundredth ہوتا ہے۔ چھ names میں KO سب سے کم مرتبہ repaint ہوا، یعنی 94.1% پر۔ اتنے active names میں اگر session کے دوران کئی منٹ تک last price میں کوئی تبدیلی نہ آئے تو یہ مناسب اشارہ ہے کہ آپ delayed یا cached number دیکھ رہے ہیں۔ Thinly traded stock میں یہی سکون معمول کی بات ہے، اسی لیے timestamp بدستور بنیادی test رہتا ہے۔

کون سے free stock quotes واقعی real time ہوتے ہیں

نجی سرمایہ کار کے لیے دو ذرائع live prices قابلِ اعتماد طور پر فراہم کرتے ہیں، جبکہ ایک عام label کا دوبارہ جائزہ لینا چاہیے۔

  • فنڈ شدہ brokerage account۔ Brokers اپنے customers کے لیے non professional entitlement فراہم کرتے ہیں اور app کے ذریعے live quotes منتقل کرتے ہیں۔ اسی لیے account کھولتے وقت فارم میں آپ کے employer کے بارے میں سوال کیا گیا تھا۔
  • Exchange operator کی اپنی website، ان names کے لیے جنہیں وہ exchange list کرتا ہے۔ یہ real time اور single venue data ہوتا ہے، اس لیے یہ consolidated NBBO کے بجائے ایک ہی order book دکھاتا ہے۔
  • وہ کوئی بھی سروس جو login اور self certification کے بغیر free real time quotes کا دعویٰ کرے۔ اس پر انحصار کرنے سے پہلے quote کا timestamp چیک کریں۔

جب data کا مقصد screen کے بجائے کسی program کو feed کرنا ہو تو classification پھر بدل جاتی ہے۔ Machine consumption کو non display terms کے تحت license کیا جاتا ہے۔ یہ per user license سے الگ schedule ہوتا ہے۔ ہماری تحریریں free stock market data APIs اور SQL کے ذریعے market data query کرنا ان tiers کی وضاحت کرتی ہیں۔

عمومی سوالات

Stock quotes میں ٹھیک 15 منٹ کی تاخیر کیوں ہوتی ہے؟

US equity prices کے لیے exchange data agreements کے تحت 15 منٹ وہ حد ہے جس کے بعد قیمتیں fee-bearing real-time product نہیں رہتیں۔ کوئی distributor user count رپورٹ کیے بغیر کم از کم اتنی پرانی معلومات شائع کر سکتا ہے۔

کسی شخص کو professional market data subscriber کیا بناتا ہے؟

Securities یا futures regulator کے ساتھ registration، investment role میں ملازمت، کسی entity کی جانب سے data حاصل کرنا، یا prices کا کسی بھی کاروباری مقصد کے لیے استعمال، یہ سب عوامل اسے professional subscriber بنا سکتے ہیں۔ Net worth اور account size کا اس درجہ بندی میں کوئی کردار نہیں۔

میں کیسے معلوم کر سکتا ہوں کہ Stock quote میں تاخیر ہے؟

Quote کے timestamp کو موجودہ ET clock سے ملائیں، اور delayed label تلاش کریں جسے vendors کے لیے دکھانا لازم ہے۔ Regular hours میں کسی active name کی price اگر کئی منٹ تک تبدیل نہ ہو تو یہ بھی تاخیر کی ایک علامت ہے۔

کیا free real-time quotes، NBBO کے برابر ہوتے ہیں؟

اکثر نہیں۔ کسی ایک exchange کا free quote صرف اسی venue کی order book دکھاتا ہے۔ NBBO ہر venue پر موجود best bid اور best offer کو ظاہر کرتا ہے، جسے consolidated tape سے اخذ کیا جاتا ہے۔

کیا end-of-day data کے لیے 15 منٹ کی تاخیر اہم ہے؟

نہیں۔ Session بند ہونے کے بعد closing price یا daily volume figure کا delayed اور real-time version ایک جیسا ہوتا ہے۔ تاخیر صرف session کے دوران اثر انداز ہوتی ہے۔


یہاں موجود ہر panel اس کے لیے استعمال ہونے والے SQL کے ساتھ فراہم کیا گیا ہے، اس لیے اوپر دیا گیا کوئی بھی number کسی دوسرے ticker یا کسی دوسرے مہینے کے لیے دوبارہ شمار کیا جا سکتا ہے۔ جس name کو آپ follow کرتے ہیں، اس پر 15 منٹ کی قدر معلوم کرنے کے لیے Strasmore terminal پر سادہ English میں درخواست دیں۔

#market data#quotes#sip#exchange fees#nbbo