Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

ट्रेड मार्कआउट क्या है और निष्पादन गुणवत्ता कैसे मापें

ट्रेड मार्कआउट का अर्थ और इसके साइन कन्वेंशन को विस्तार से समझें। एक सेकंड से लेकर पांच मिनट तक की समय सीमा पर मार्कआउट कर्व का विश्लेषण और एडवर्स सिलेक्शन की गणना करना सीखें।

ट्रेड मार्कआउट (trade markout) किसी फिल (fill) के बाद एक निश्चित समय सीमा में मिड प्राइस (mid price) में आया बदलाव है, जिसे फिल के प्रिंट होने के क्षण से मापा जाता है। सकारात्मक मार्कआउट का अर्थ है कि आपके ट्रेड के बाद बाजार आपकी दिशा में चला। नकारात्मक मार्कआउट का अर्थ है कि बाजार आपके विपरीत चला, जिसे ट्रेडिंग डेस्क की भाषा में एडवर्स सिलेक्शन (adverse selection) कहा जाता है। आप जो समय सीमा (horizon) चुनते हैं—चाहे वह एक सेकंड हो या पांच मिनट—यह तय करती है कि यह संख्या किस प्रश्न का उत्तर दे रही है।

ट्रेड मार्कआउट क्या है?

मिड प्राइस से शुरुआत करें: यह बेस्ट बिड (best bid) और बेस्ट ऑफर (best offer) के बीच का बिंदु है, यानी NBBO का मध्य बिंदु। मार्कआउट आपके फिल के बाद एक चुनी हुई समय सीमा पर उस मिड प्राइस को लेता है, उसमें से एक संदर्भ मूल्य (reference price) घटाता है, और आपके द्वारा ट्रेड की गई साइड के अनुसार उसे साइन (धनात्मक या ऋणात्मक) देता है।

**समय सीमा h पर मार्कआउट = साइड * (t+h पर मिड प्राइस - संदर्भ मूल्य)**, जहाँ यदि आपने खरीदा है तो साइड प्लस वन है और यदि आपने बेचा है तो माइनस वन है।

साइन कन्वेंशन (sign convention) ही वह जगह है जहाँ अक्सर भ्रम होता है। यदि आपने खरीदा और उसके बाद मिड प्राइस गिर गया, तो मार्कआउट नकारात्मक होगा: आपने खरीदा, कीमत नीचे गई, और जिसने आपको बेचा उसने उस ट्रेड से लाभ कमाया। यही एडवर्स सिलेक्शन है जिसे एक संख्या के रूप में लिखा गया है। यदि आपने बेचा और उसके बाद मिड प्राइस गिर गया, तो मार्कआउट सकारात्मक होगा, क्योंकि साइड के साथ साइन बदल जाता है। हर फिल की दो साइड होती हैं, और एक साइड का मार्कआउट दूसरी साइड का उल्टा साइन होता है।

तीन संदर्भ मूल्य

आप जिस संदर्भ मूल्य को घटाते हैं, वह यह तय करता है कि मार्कआउट क्या माप रहा है।

  • फिल प्राइस (Fill price)। मार्कआउट धन का रूप ले लेता है: यह बताता है कि आपने जो भुगतान किया, उसके मुकाबले t+h पर आपकी पोजीशन का मूल्य क्या है। इसमें आपके द्वारा भुगतान किया गया या कमाया गया स्प्रेड (spread) शामिल होता है।
  • फिल के क्षण पर मिड प्राइस। यह स्प्रेड को हटा देता है और यह अलग करता है कि आपके ट्रेड करने के बाद बाजार कैसे चला, जो एडवर्स सिलेक्शन का सबसे स्पष्ट संकेत है।
  • उस साइड पर कोट (quote) जिस पर आपने ट्रेड किया। जिस टच (touch) को आपने लिया या पोस्ट किया, उसके मुकाबले मापना यह बताता है कि फिल उस कीमत की तुलना में कैसा है जो वास्तव में उपलब्ध थी।

एग्जीक्यूशन क्वालिटी (execution quality) का काम एडवर्स सिलेक्शन के लिए दूसरे संदर्भ मूल्य पर और लाभ-हानि (P&L) के लिए पहले संदर्भ मूल्य पर निर्भर करता है। नीचे दिए गए पहले पैनल में, फिल के एक सेट पर दोनों दिखाई देते हैं।

मार्कआउट कर्व और इसके आकार का अर्थ

जब आप कई समय सीमाओं पर समान सांख्यिकी चलाते हैं, तो आपको एक कर्व मिलता है। इसका आकार किसी भी एकल संख्या से अधिक जानकारी देता है।

  • एक कर्व जो पहले सेकंड के भीतर तेजी से गिरता है और नीचे ही रहता है, वह ऐसी फ्लो (flow) को दर्शाता है जिसे पिक-ऑफ (picked off) किया जा रहा है: कीमत फिल के लगभग तुरंत बाद विपरीत दिशा में चली जाती है।
  • एक कर्व जो मिनटों तक गिरता रहता है, वह ऐसी फ्लो को दर्शाता है जिसमें इस बारे में वास्तविक जानकारी थी कि कीमत कहाँ जा रही है।
  • शून्य के करीब एक सपाट कर्व सौम्य फ्लो (benign flow) को दर्शाता है। पांच मिनट बाद, मिड प्राइस वैसा ही दिखता है जैसा फिल के समय था।
  • एक कर्व जो नकारात्मक शुरू होता है और वापस शून्य की ओर चढ़ता है, वह आकार है जिसे रिबेट (rebate) इकट्ठा करने वाला पैसिव मेकर (passive maker) ढूंढता है। शुरुआती गिरावट स्प्रेड और तत्काल प्रभाव है, और रिकवरी बाजार की वापसी है।

समय सीमा का चुनाव स्वयं इस बात का निर्णय है कि आप क्या माप रहे हैं। एक सेकंड से कम समय में, मार्कआउट मुख्य रूप से लेटेंसी (latency) और क्यू पोजीशन (queue position) को पढ़ता है। इसे एक मिनट तक बढ़ाने पर यह फ्लो में अल्पकालिक जानकारी को पढ़ता है। पांच मिनट के बाद, सामान्य बाजार ड्रिफ्ट (market drift) फिल के प्रभाव को दबाने लगता है।

एक वास्तविक मार्कआउट कर्व, फिल दर फिल

नीचे दिया गया पैनल 10 जून, 2026 के नियमित सत्र से प्रत्येक INTC प्रिंट को लेता है, प्रत्येक को प्रिंट होने से पहले के सेकंड के अंतिम कोट के मुकाबले बाय-इनिशिएटेड (buy initiated) या सेल-इनिशिएटेड (sell initiated) के रूप में वर्गीकृत करता है, और 5 समय सीमाओं पर साइन्ड मार्कआउट का औसत निकालता है। दो सीरीज समान फिल पर चलती हैं: एक फिल के समय मिड प्राइस से मापी गई, दूसरी फिल प्राइस से।

क्वेरीINTC मार्कआउट कर्व, 10 जून 2026, दो संदर्भ आधारों से मापा गया
हर आंकड़े के पीछे का पूरा SQL
WITH
    mid_by_second AS
    (
        SELECT
            dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
            argMax((toFloat64(bid_price) + toFloat64(ask_price)) / 2, sip_timestamp)    AS mid
        FROM global_markets.cache_stocks_quotes
        WHERE ticker = 'INTC'
          AND sip_timestamp >= toDateTime('2026-06-10 13:30:00', 'UTC')
          AND sip_timestamp <  toDateTime('2026-06-10 20:00:00', 'UTC')
          AND bid_price > 0
          AND ask_price > bid_price
        GROUP BY sec
    ),
    signed_fills AS
    (
        SELECT
            t.sec        AS sec,
            t.fill_price AS fill_price,
            q.mid        AS ref_mid,
            if(t.fill_price > q.mid, 1, -1) AS side
        FROM
        (
            SELECT
                dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
                sec - 1          AS ref_sec,
                toFloat64(price) AS fill_price
            FROM global_markets.stocks_trades
            WHERE ticker = 'INTC'
              AND sip_timestamp >= toDateTime('2026-06-10 13:30:01', 'UTC')
              AND sip_timestamp <  toDateTime('2026-06-10 19:55:00', 'UTC')
              AND price > 0
              AND size > 0
        ) AS t
        INNER JOIN mid_by_second AS q ON q.sec = t.ref_sec
        WHERE t.fill_price != q.mid
    )
SELECT
    multiIf(f.horizon_s < 60,
            concat(toString(f.horizon_s), ' sec'),
            concat(toString(intDiv(f.horizon_s, 60)), ' min'))              AS horizon,
    round(avg(f.side * (fut.mid - f.ref_mid) / f.ref_mid) * 10000, 3)       AS mid_basis_bps,
    round(avg(f.side * (fut.mid - f.fill_price) / f.fill_price) * 10000, 3) AS fill_basis_bps,
    count()                                                                 AS fill_count
FROM
(
    SELECT
        sec,
        fill_price,
        ref_mid,
        side,
        horizon_s,
        sec + horizon_s AS future_sec
    FROM signed_fills
    ARRAY JOIN [1, 5, 15, 60, 300] AS horizon_s
) AS f
INNER JOIN mid_by_second AS fut ON fut.sec = f.future_sec
GROUP BY f.horizon_s
ORDER BY f.horizon_s
Run this yourself

900593 वर्गीकृत फिल में, मिड बेसिस सीरीज 1 sec पर 3.068 बेसिस पॉइंट्स और 5 min पर 2.977 बेसिस पॉइंट्स पढ़ती है। एक बेसिस पॉइंट कीमत का एक सौवां हिस्सा होता है, इसलिए एक फिल एक राउंडिंग एरर (rounding error) को हिलाता है और दस लाख शेयर वास्तविक धन को हिलाते हैं।

फिल बेसिस सीरीज -0.488 बेसिस पॉइंट्स पर खुलती है। सबसे छोटी समय सीमा पर दोनों सीरीज के बीच की दूरी प्रभावी हाफ-स्प्रेड (effective half spread) है: प्रिंट मिड प्राइस से कितनी दूर उतरा। एक टेकर (taker) एंट्री पर इसका भुगतान करता है और एक मेकर (maker) इसे कमाता है। पहली समय सीमा के बाद सब कुछ बाजार की चाल है।

फिल का आकार और कर्व का आकार

एडवर्स सिलेक्शन सभी फिल पर समान रूप से नहीं पड़ता है। एक ही सत्र को प्रिंट आकार के आधार पर विभाजित करने पर छोटे फिल और एक हजार या उससे अधिक शेयरों के ब्लॉक एक ही अक्ष पर आते हैं।

क्वेरीवही कर्व, प्रिंट आकार के अनुसार विभाजित: छोटे फिल बनाम ब्लॉक
हर आंकड़े के पीछे का पूरा SQL
WITH
    mid_by_second AS
    (
        SELECT
            dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
            argMax((toFloat64(bid_price) + toFloat64(ask_price)) / 2, sip_timestamp)    AS mid
        FROM global_markets.cache_stocks_quotes
        WHERE ticker = 'INTC'
          AND sip_timestamp >= toDateTime('2026-06-10 13:30:00', 'UTC')
          AND sip_timestamp <  toDateTime('2026-06-10 20:00:00', 'UTC')
          AND bid_price > 0
          AND ask_price > bid_price
        GROUP BY sec
    ),
    signed_fills AS
    (
        SELECT
            t.sec        AS sec,
            t.fill_size  AS fill_size,
            q.mid        AS ref_mid,
            if(t.fill_price > q.mid, 1, -1) AS side
        FROM
        (
            SELECT
                dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
                sec - 1          AS ref_sec,
                toFloat64(price) AS fill_price,
                size             AS fill_size
            FROM global_markets.stocks_trades
            WHERE ticker = 'INTC'
              AND sip_timestamp >= toDateTime('2026-06-10 13:30:01', 'UTC')
              AND sip_timestamp <  toDateTime('2026-06-10 19:55:00', 'UTC')
              AND price > 0
              AND size > 0
        ) AS t
        INNER JOIN mid_by_second AS q ON q.sec = t.ref_sec
        WHERE t.fill_price != q.mid
    )
SELECT
    multiIf(f.horizon_s < 60,
            concat(toString(f.horizon_s), ' sec'),
            concat(toString(intDiv(f.horizon_s, 60)), ' min'))                                   AS horizon,
    round(avgIf(f.side * (fut.mid - f.ref_mid) / f.ref_mid, f.fill_size < 1000) * 10000, 3)       AS small_fill_bps,
    round(avgIf(f.side * (fut.mid - f.ref_mid) / f.ref_mid, f.fill_size >= 1000) * 10000, 3)      AS block_fill_bps,
    countIf(f.fill_size >= 1000)                                                                 AS block_fill_count
FROM
(
    SELECT
        sec,
        fill_size,
        ref_mid,
        side,
        horizon_s,
        sec + horizon_s AS future_sec
    FROM signed_fills
    ARRAY JOIN [1, 5, 15, 60, 300] AS horizon_s
) AS f
INNER JOIN mid_by_second AS fut ON fut.sec = f.future_sec
GROUP BY f.horizon_s
HAVING countIf(f.fill_size < 1000) > 0
   AND countIf(f.fill_size >= 1000) > 0
ORDER BY f.horizon_s
Run this yourself

5 min समय सीमा पर, एक हजार शेयरों से कम के प्रिंट का औसत 2.983 बेसिस पॉइंट्स है, जबकि एक हजार या उससे अधिक शेयरों के 11588 प्रिंट का औसत 2.495 है। उन दो समूहों के मुकाबले समान कुल वॉल्यूम भरने वाले दो कोट दिन का अंत एक ही स्थान पर नहीं करते हैं।

मार्कआउट एग्जीक्यूशन रिपोर्ट में स्प्रेड नंबर कैसे बनते हैं

मार्कआउट मानक स्प्रेड डीकंपोजिशन (spread decomposition) में गायब शब्द है। प्रभावी स्प्रेड वह है जो एक टेकर ने वास्तव में भुगतान किया: मिड से प्रिंट तक की साइन्ड दूरी का दोगुना। इसे दो भागों में विभाजित करें। एक हिस्सा रियलाइज्ड स्प्रेड (realized spread) है, जिसे बाजार के चलने के बाद एक मेकर अपने पास रखता है। दूसरा हिस्सा एडवर्स सिलेक्शन है, जो मिड बेसिस मार्कआउट का दोगुना है। यह पहचान सटीक है: प्रभावी स्प्रेड = रियलाइज्ड स्प्रेड + एडवर्स सिलेक्शन।

क्वेरीप्रभावी स्प्रेड का रियलाइज्ड स्प्रेड और एडवर्स सिलेक्शन में विभाजन, प्रति आधा घंटा
हर आंकड़े के पीछे का पूरा SQL
WITH
    mid_by_second AS
    (
        SELECT
            dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
            argMax((toFloat64(bid_price) + toFloat64(ask_price)) / 2, sip_timestamp)    AS mid
        FROM global_markets.cache_stocks_quotes
        WHERE ticker = 'INTC'
          AND sip_timestamp >= toDateTime('2026-06-10 13:30:00', 'UTC')
          AND sip_timestamp <  toDateTime('2026-06-10 20:00:00', 'UTC')
          AND bid_price > 0
          AND ask_price > bid_price
        GROUP BY sec
    ),
    signed_fills AS
    (
        SELECT
            t.sec + 60   AS future_sec,
            t.et_time    AS et_time,
            t.fill_price AS fill_price,
            q.mid        AS ref_mid,
            if(t.fill_price > q.mid, 1, -1) AS side
        FROM
        (
            SELECT
                dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
                sec - 1          AS ref_sec,
                toFloat64(price) AS fill_price,
                formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), toIntervalMinute(30)), '%H:%i') AS et_time
            FROM global_markets.stocks_trades
            WHERE ticker = 'INTC'
              AND sip_timestamp >= toDateTime('2026-06-10 13:30:01', 'UTC')
              AND sip_timestamp <  toDateTime('2026-06-10 19:55:00', 'UTC')
              AND price > 0
              AND size > 0
        ) AS t
        INNER JOIN mid_by_second AS q ON q.sec = t.ref_sec
        WHERE t.fill_price != q.mid
    )
SELECT
    f.et_time                                                                  AS et_time,
    round(avg(2 * f.side * (f.fill_price - f.ref_mid) / f.ref_mid) * 10000, 3) AS effective_spread_bps,
    round(avg(2 * f.side * (f.fill_price - fut.mid) / f.ref_mid) * 10000, 3)   AS realized_spread_bps,
    round(avg(2 * f.side * (fut.mid - f.ref_mid) / f.ref_mid) * 10000, 3)      AS adverse_selection_bps,
    count()                                                                    AS fill_count
FROM signed_fills AS f
INNER JOIN mid_by_second AS fut ON fut.sec = f.future_sec
GROUP BY f.et_time
ORDER BY f.et_time
Run this yourself

09:30 पूर्वी समय से शुरू होने वाले आधे घंटे में, प्रभावी स्प्रेड का औसत 10.651 बेसिस पॉइंट्स है, जिसमें से 8.313 साठ सेकंड की समय सीमा पर एडवर्स सिलेक्शन टर्म है और 2.338 वह है जो एक मेकर अपने पास रखता है। पैनल में 13 आधे घंटे के बकेट शामिल हैं।

ये घटक Rule 605 और 606 एग्जीक्यूशन रिपोर्ट में वे मात्राएं हैं जिनका सारांश दिया गया है, और ये सब पेनी रूल और प्राइस इम्प्रूवमेंट पर आधारित प्राइस इम्प्रूवमेंट दावों के पीछे का गणित हैं। रिबेट प्रति शेयर एक निश्चित क्रेडिट है। एडवर्स सिलेक्शन उन फिल पर प्रति शेयर एक परिवर्तनीय लागत है जो एक कोट वास्तव में प्राप्त करता है। एक हेडलाइन रेट कार्ड के बजाय एक मापे गए कर्व पर एक को दूसरे के मुकाबले तौलना, मेकर-टेकर फीस और रिबेट के पीछे की जांच है, और यह मार्केट मेकर पैसे क्यों खोते हैं के तंत्र के साथ स्थित है।

इन संख्याओं की गणना कैसे की गई

प्रत्येक पैनल 10 जून, 2026 के नियमित सत्र, 09:30 से 16:00 पूर्वी समय के INTC कोट और प्रिंट को पढ़ता है। कोट प्रति सेकंड एक मिड प्राइस में सिमट जाते हैं, जो उस सेकंड के भीतर प्रिंट हुआ अंतिम कोट है। एक प्रिंट को बाय-इनिशिएटेड तब वर्गीकृत किया जाता है जब वह पिछले सेकंड के मिड प्राइस से ऊपर उतरा, और सेल-इनिशिएटेड तब जब वह नीचे उतरा, जो मानक कोट नियम है। ठीक उस मिड प्राइस पर बैठने वाले प्रिंट को अनुमान लगाने के बजाय छोड़ दिया जाता है, इसलिए मिडपॉइंट एग्जीक्यूशन सैंपल से बाहर रहते हैं। संदर्भ के रूप में पिछले सेकंड के मिड का उपयोग करने से संदर्भ को आगे देखने से रोका जाता है। समय सीमाएं प्रिंट के सेकंड से गिने जाने वाले पूरे सेकंड हैं, और एक फिल समय सीमा में तभी प्रवेश करता है जब लक्ष्य सेकंड में कोई कोट मौजूद हो।

FAQ

ट्रेडिंग में मार्कआउट क्या है?

मार्कआउट एक फिल के बाद एक निश्चित समय सीमा में मिड प्राइस में आया साइन्ड बदलाव है। सकारात्मक का अर्थ है कि फिल मिलने के बाद बाजार आपके ट्रेड की दिशा में चला। नकारात्मक का अर्थ है कि यह दूसरी दिशा में चला, जो एडवर्स सिलेक्शन की परिभाषा है।

क्या नकारात्मक मार्कआउट हमेशा एक खराब फिल है?

नहीं। एक मार्केटेबल ऑर्डर पर एक सेकंड का नकारात्मक मार्कआउट मुख्य रूप से वह स्प्रेड है जिसका उस ऑर्डर ने भुगतान किया, जो तुरंत काम पूरा करने की कीमत है। अधिक महत्वपूर्ण यह है कि क्या कर्व लंबी समय सीमाओं पर गिरता रहता है या सपाट हो जाता है।

मार्कआउट और स्लिपेज (slippage) में क्या अंतर है?

स्लिपेज एक फिल की तुलना निर्णय मूल्य या आगमन मूल्य से करता है, इसलिए यह एक ऑर्डर के पूरे पथ को ग्रेड करता है। मार्कआउट एक फिल की तुलना फिल के बाद की समय सीमा पर मिड प्राइस से करता है, इसलिए यह ग्रेड करता है कि आगे क्या हुआ। एक पैरेंट ऑर्डर को स्कोर करता है, दूसरा व्यक्तिगत फिल को स्कोर करता है।

मार्कआउट को कौन सी समय सीमा का उपयोग करना चाहिए?

यह इस पर निर्भर करता है कि फिल किसके लिए था। सब-सेकंड समय सीमाएं लेटेंसी-संवेदनशील एग्जीक्यूशन को ग्रेड करती हैं, जबकि एक मिनट लिक्विड नामों पर एडवर्स सिलेक्शन के लिए सामान्य डिफ़ॉल्ट है। संख्या के बगल में समय सीमा प्रकाशित करना ही वह चीज है जो दो मार्कआउट को तुलनात्मक बनाती है।

मार्कआउट प्रभावी स्प्रेड से कैसे संबंधित है?

प्रभावी स्प्रेड रियलाइज्ड स्प्रेड और एडवर्स सिलेक्शन घटक में विभाजित हो जाता है, और वह घटक मिड बेसिस मार्कआउट का दोगुना है। समय सीमा बदलें और दोनों के बीच का विभाजन उसके साथ बदल जाता है, यही कारण है कि एक प्रकाशित स्प्रेड सांख्यिकी अपनी समय सीमा के बिना अधूरी है।


यहाँ का प्रत्येक पैनल उस SQL के साथ आता है जिसने इसे तैयार किया। एक खोलें, टिकर या तारीख बदलें, और वही मार्कआउट कर्व Strasmore टर्मिनल पर शून्य से फिर से बन जाएगा।