Bracket, OCO Orders అంటే ఏమిటి? పూర్తి వివరణ
Bracket orderలో entry, profit target, protective stop ఎలా అనుసంధానమవుతాయి? OCOలో partial fill తర్వాత ఏమవుతుంది, ఈ linkage ఎక్కడ అమలవుతుందో తెలుసుకోండి.
Bracket order అనేది ఒకే సూచనతో మూడు orders పంపే వ్యవస్థ. అవి నిర్ణీత సంబంధంతో ఉంటాయి: ఒక entry order, దానికి అనుసంధానమైన రెండు exit orders. ఈ రెండు exit orders entryకి ఇరువైపులా ఉంటాయి. ఈ జంటను OCO అంటారు; ఇది one cancels the other అనే పదబంధానికి సంక్షిప్త రూపం. Profit-target limit entry price పైన ఉంటుంది. Protective stop దాని కింద ఉంటుంది. వీటిలో ఏదో ఒకటి పూర్తయితే, మరొకటి ఆటోమేటిక్గా రద్దవుతుంది. వాస్తవానికి bracket ఒక చిన్న state machine లాంటిది. దాని states మధ్య మారే క్షణాల్లోనే ఎక్కువ అనూహ్య పరిస్థితులు ఎదురవుతాయి.
Bracket order అంటే ఏమిటి?
ఒక trader సుమారు $50 వద్ద 200 షేర్లు కొనాలని అనుకుందాం. లాభం వస్తే positionను సుమారు $53 వద్ద మూసివేయాలి. పరిస్థితి ప్రతికూలంగా ఉంటే సుమారు $48.50 వద్ద బయటకు రావాలి. వీటిని వేర్వేరు ticketsగా నమోదు చేస్తే మూడు orders అవుతాయి. అదనంగా మాన్యువల్ పని ఉంటుంది: target పూర్తయిన వెంటనే stopను రద్దు చేయాలి. లేకపోతే 200 షేర్లు రెండుసార్లు అమ్మబడే ప్రమాదం ఉంటుంది. Bracket ఇదే ఉద్దేశాన్ని ఒకే submissionగా ప్యాక్ చేస్తుంది. Entry సాధారణ market order లేదా limit order. రెండు exits దాని child orders. ఒకటి target వద్ద positionను మూసే limit order. మరొకటి protective level వద్ద మూసే stop లేదా stop limit order.
ఈ నిర్మాణానికి ఉపయోగించే పదజాలం మారవచ్చు. Bracket, attached order, OCO bracket, OTOCO — ఇవన్నీ ఇదే ఆకృతిని సూచిస్తాయి. OTOCO అంటే one triggers a one-cancels-the-other. ఈ క్రమానికి ఇది అత్యంత ప్రత్యక్ష పేరు. Entry ఆ జంటను activate చేస్తుంది. ఆ తర్వాత ఆ జంటలో ఒకటి పూర్తయితే మరొకటి రద్దవుతుంది.
Bracket orderలో OCO అంటే ఏమిటి?
OCO అనేది రెండు resting orders మధ్య cancel link ఉన్న నిర్మాణం. రెండూ ఒకేసారి order bookలో activeగా ఉంటాయి. ఒకటి పూర్తయితే మరొకటి తొలగించబడుతుంది. ఒకటి కొంతవరకు మాత్రమే పూర్తయితే, మరొకదాన్ని పూర్తిగా తొలగించకుండా పూర్తయిన పరిమాణానికి అనుగుణంగా తగ్గిస్తారు. దీని వల్ల position పరిమాణం, దానికి ఉన్న protection పరిమాణం షేర్కు షేర్ సరిపోతాయి.
200-షేర్ long bracketలో పూర్తి క్రమం ఇలా ఉంటుంది.
- Entry మాత్రమే పనిచేస్తుంది. Target, stop రెండూ broker systemలో ఉంటాయి. కానీ అవి working orders కావు. అందువల్ల entry పూర్తికాకముందు target priceను దాటి జరిగిన printకు ఎలాంటి ప్రభావం ఉండదు.
- Entry 200 షేర్లకు పూర్తవుతుంది. రెండు child orders active అవుతాయి. ఒక్కొక్కటి 200 షేర్లకు ఉంటాయి.
- Trading stop priceను చేరుతుంది. Stop live sell orderగా మారి order bookలో అమలుకు ప్రయత్నిస్తుంది.
- మార్కెట్ దిశ మారకముందే stop 120 షేర్లకు పూర్తవుతుంది. Target limit 200 నుంచి 80 షేర్లకు తగ్గుతుంది. మిగిలిన position 80 షేర్లు కావడమే దీనికి కారణం.
- ఆ 80 షేర్లు sessionలో తర్వాత target వద్ద పూర్తవుతాయి. Stopలో మిగిలిన 80 షేర్లు రద్దవుతాయి. Bracket పూర్తిగా ముగుస్తుంది.
Entryలో partial fills వచ్చినప్పుడు platforms మధ్య ఎక్కువ తేడా కనిపిస్తుంది. కొన్ని brokers పూర్తయిన పరిమాణానికి వెంటనే childrenను activate చేసి, entry మిగిలిన భాగం పూర్తయ్యే కొద్దీ వాటి పరిమాణాన్ని పెంచుతాయి. మరికొన్ని entry మొత్తం పూర్తయ్యే వరకు వేచి ఉంటాయి. ఆ మధ్యకాలంలో positionకు protection ఉండదు. ఈ తేడాలు కేవలం రూపకల్పనకు సంబంధించినవి కావు. Partial entry fill వచ్చిన వెంటనే children activate అవుతాయా? ఒక childను edit చేస్తే మరొకదానితో ఉన్న cancel link తెగిపోతుందా? ఇవి brokerను బట్టి మారే ముఖ్యమైన అంశాలు.
రెండు legs మధ్య ఎంత దూరం ఉండాలి?
ఒక షేరు సాధారణ రోజున చేసే కదలికల noiseకు రెండు legs బయట ఉండాలి. అదే సమయంలో అది వాస్తవంగా చేరగల పరిధిలో ఉండాలి. Daily range దీనికి మొదటి సరళమైన కొలత. కింది panelలో గత సంవత్సరం కాలంలో ఆరు ప్రముఖ షేర్లను చూపిస్తున్నాం. Openతో పోల్చిన median high-to-low range శాతం, అలాగే open నుంచి close వరకు median absolute move పక్కపక్కన ఉన్నాయి.
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
SELECT
ticker,
round(quantileDeterministic(0.5)(
(toFloat64(high) - toFloat64(low)) / toFloat64(open) * 100,
toUInt32(date)), 2) AS median_range_pct,
round(quantileDeterministic(0.5)(
abs(toFloat64(close) - toFloat64(open)) / toFloat64(open) * 100,
toUInt32(date)), 2) AS median_open_to_close_pct
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'JNJ')
AND date >= today() - 370
AND date < today() - 2
GROUP BY ticker
ORDER BY median_range_pct DESCఆరు షేర్లలో సాధారణ session పరిధి అత్యంత వెడల్పుగా ఉన్నది NVDA — 2.72% వద్ద. అత్యంత సన్నని పరిధి SPYది — 0.86% వద్ద. ప్రతి వరుసలో రెండో column, మొదటి column కంటే ఎంత తక్కువగా ఉందో గమనించండి. సాధారణంగా ఒక షేరు open నుంచి close వరకు పొందే net move కంటే sessionలో ఎక్కువ దూరం కదులుతుంది. Bracketలోని రెండు legs కూడా ఆ కదలిక పరిధిలోనే ఉంటాయి. అందువల్ల సాధారణ రోజునే target, stop రెండూ చేరుకునే అవకాశం ఉంది.
Bracket leg తాకబడే అవకాశం ఎంత?
Entry నుంచి ఉన్న దూరమే trader వాస్తవంగా నియంత్రించగల setting. తర్వాతి panelలో SPYకు సంబంధించిన మూడు పూర్తి సంవత్సరాల sessionsను తీసుకున్నాం. Opening print నుంచి వివిధ దూరాల్లో, రోజులో ఏదో ఒక సమయంలో అంత దిగువకు చేరిన sessions శాతం ఎంత, అంత ఎగువకు చేరిన sessions శాతం ఎంత అన్నది ఇది చూపిస్తుంది.
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
SELECT
concat(toString(d.dist), '%') AS distance_from_open,
round(100 * countIf(
(toFloat64(a.open) - toFloat64(a.low)) / toFloat64(a.open) * 100 >= d.dist
) / count(), 1) AS reached_below_pct,
round(100 * countIf(
(toFloat64(a.high) - toFloat64(a.open)) / toFloat64(a.open) * 100 >= d.dist
) / count(), 1) AS reached_above_pct
FROM global_markets.stocks_daily_aggs AS a
CROSS JOIN
(
SELECT arrayJoin([0.25, 0.5, 1.0, 1.5, 2.0, 3.0]) AS dist
) AS d
WHERE a.ticker = 'SPY'
AND a.date >= '2023-08-01'
AND a.date < '2026-08-01'
GROUP BY d.dist
ORDER BY d.distOpen నుంచి పావు శాతం దూరంలో, 62.3% sessionsలో ధర అంత దిగువకు ఏదో ఒక సమయంలో వెళ్లింది. 64.7% sessionsలో అంత ఎగువకు వెళ్లింది. దూరాన్ని 3%కు పెంచితే downside సంఖ్య 0.5%కు పడిపోతుంది. రెండు curves ఒకేసారి క్రమంగా తగ్గుతాయి. Bracket పరిమాణాన్ని నిర్ణయించడంలో ఉన్న ప్రధాన సవాలు ఇదే. Tight stop అంటే సాధారణ రోజుల్లోనే trigger అయ్యే stop. Distant target అంటే ఎక్కువసార్లు పూర్తికాకుండానే ముగిసే target.
Stop loss ఎప్పుడూ stop price వద్దే పూర్తవుతుందా?
లేదు. Trigger price print అయిన తర్వాత order పంపాలని stop ఇచ్చే సూచన మాత్రమే. సాధారణ stop market orderను పంపుతుంది. ఆ క్షణంలో order bookలో ఉన్న ధర వద్దే fill జరుగుతుంది. Stop limit మీరు నిర్ణయించిన ధర వద్ద limit orderను పంపుతుంది. ఇది ధరను కాపాడుతుంది. కానీ అసలు fill కాకపోయే ప్రమాదాన్ని అంగీకరించాలి. ఈ trade-offను stop order వర్సెస్ stop limit order వివరిస్తుంది.
Overnight gap దీనికి స్పష్టమైన ఉదాహరణ. Exchange మూసివున్న గంటల్లో protective stop కొనసాగుతుంది. కానీ opening print trigger priceను చాలా దాటి ఉండవచ్చు. మూడున్నర సంవత్సరాల్లో AAPLకు సంబంధించిన పది ఉదాహరణలు ఇవి:
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
SELECT
formatDateTime(session_date, '%b %e, %Y') AS gap_label,
round((day_open / prev_close - 1) * 100, 2) AS overnight_gap_pct
FROM
(
SELECT
session_date,
day_open,
lagInFrame(day_close) OVER (
ORDER BY session_date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW
) AS prev_close
FROM
(
SELECT
date AS session_date,
toFloat64(any(open)) AS day_open,
toFloat64(any(close)) AS day_close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
AND date >= '2023-01-01'
AND date < '2026-07-01'
GROUP BY date
)
)
WHERE prev_close > 0
ORDER BY overnight_gap_pct ASC
LIMIT 10వాటిలో అతిపెద్దది Aug 5, 2024న -9.45%గా నమోదైంది. జాబితాలో పదోది కూడా -2.96%గా ఉంది. ఆ gapsలో ఎక్కడైనా protective stop ఉన్నా, అది trigger price వద్ద కాకుండా opening print వద్ద convert అయింది. కేవలం intraday range ఆధారంగా bracket పరిమాణాన్ని నిర్ణయిస్తే ఈ దూరాన్ని లెక్కలోకి తీసుకోరు.
OCO link వాస్తవంగా ఎక్కడ ఉంటుంది?
దాదాపు ఎప్పుడూ exchange వద్ద ఉండదు. రెండు children మధ్య cancel link broker order-management systemలో ఉంటుంది. కొన్నిసార్లు అది మీ స్వంత machineలో నడిచే trading platformలో మరో పొరలో ఉంటుంది. Exchangeకు మాత్రం రెండు సాధారణ, పరస్పర సంబంధం లేని orders కనిపిస్తాయి.
ఈ స్థానం outage సమయంలో ఏది కొనసాగుతుందో నిర్ణయిస్తుంది. Broker-side bracketలో laptop మూసివేసినా అది పనిచేస్తుంది. ఎందుకంటే రెండు legs, cancel logic broker serversలో ఉంటాయి. కొన్ని charting applications అమలు చేసే platform-side bracketకు application నడుస్తూ connectedగా ఉండాలి. కొన్ని platforms simulated stopను స్థానిక memoryలో మాత్రమే ఉంచుతాయి. Trigger price వచ్చినప్పుడు మాత్రమే దాన్ని పంపుతాయి. Laptop మూసేస్తే ఆ stop ఎప్పుడూ పంపబడదు.
ఇదే ప్రశ్న మీ స్వంత codeకు కూడా వర్తిస్తుంది. Running processలో మాత్రమే ఉండే stop, process ఆగిపోయిన తర్వాత order bookలో ఏమీ ఉంచదు. Automated systemsలో ఈ నమూనాను trading bots కోసం Circuit breakers వివరిస్తుంది: process అత్యంత ప్రతికూల సమయంలో ఆగిపోతుందని అనుకోండి. ఆ తర్వాత broker వద్ద ఇంకా ఏది workingగా ఉందో పరిశీలించండి.
Time in force ప్రతి legకు వర్తిస్తుంది
ప్రతి legకు దాని స్వంత time in force setting ఉంటుంది. Day entryకు GTC childrenను జత చేయడం సాధారణమైనా ఇబ్బందికరమైన కలయిక. Entry close వద్ద expire అవుతుంది. Children మాత్రం ఎప్పుడూ activate కావు. ఫలితంగా మరుసటి ఉదయం bracket నిశ్శబ్దంగా ఏమీ చేయదు. దీనికి విరుద్ధంగా అమర్చితే, overnight positionపై ఉన్న protection 4:00 p.m. ETకి expire అవుతుంది.
Regular hours వెలుపల order book స్వభావం మారుతుంది. కింది panelలో రోజంతటినీ కలుపుకొని SPY minute barsను ET clock time ఆధారంగా విభజించాం. ప్రతి అరగంటకు రెండు అంశాలను చూపిస్తున్నాం: ఒక నిమిషపు move సగటు పరిమాణం, basis pointsలో — ఒక basis point అంటే శాతంలో వందో వంతు — మరియు ఒక నిమిషంలో నమోదైన median volume.
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
SELECT
formatDateTime(
toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE),
'%H:%i') AS et_time,
round(avg(abs(toFloat64(close) - toFloat64(open)) / toFloat64(open) * 10000), 1) AS avg_move_bps,
round(quantileDeterministic(0.5)(toFloat64(volume), toUInt64(window_start)), 0) AS median_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 120
AND window_start < today() - 2
GROUP BY et_time
ORDER BY et_timeఈ panelలో 04:00 నుంచి 19:30 ET వరకు మొత్తం 32 అరగంట buckets ఉన్నాయి. ఎడమ నుంచి కుడికి చదివితే pattern స్పష్టమవుతుంది. Premarket గంటల్లో రెండు series తమ కనిష్ఠ స్థాయికి దగ్గరగా ఉంటాయి. 09:30 openకు చేరువలో వేగంగా పెరుగుతాయి. 16:00 తర్వాత మళ్లీ తగ్గుతాయి. ఉదయం 5 గంటలకు ఉన్న GTC stop ఈ curveలో thin భాగంలో ఉంటుంది. ఇంత తక్కువ liquidity ఉన్న order bookలో stop-market fill trigger priceకు చాలా దూరంగా ఉండవచ్చు.
తరచుగా అడిగే ప్రశ్నలు
Bracket orderకు OCO orderకు మధ్య తేడా ఏమిటి?
OCO అనేది ఆ జంట మాత్రమే. Cancel linkతో అనుసంధానమైన రెండు resting ordersలో ఒకటి పూర్తయితే మరొకటి తొలగించబడుతుంది. Bracket అనేది OCO pairను అనుసంధానించిన entry order. Entry పూర్తయిన తర్వాతే ఆ pair active అవుతుంది. ప్రతి bracketలో ఒక OCO ఉంటుంది. అయితే అనేక OCO pairsను స్వతంత్రంగా కూడా ఉపయోగిస్తారు.
నా computer ఆఫ్లో ఉన్నా bracket order పనిచేస్తుందా?
Linkage ఎక్కడ ఉందో దానిపై ఆధారపడి ఉంటుంది. Broker-side bracket broker serversలో ఉంటుంది. Platform మూసివున్నా అది పనిచేస్తుంది. Platform-side లేదా simulated bracketకు application నడుస్తూ connectedగా ఉండాలి. అది లేకపోతే child orders మార్కెట్కు చేరకపోవచ్చు.
Profit target కొంతవరకు పూర్తయితే stopకు ఏమవుతుంది?
Stop రద్దు కాకుండా పూర్తయిన పరిమాణానికి తగ్గుతుంది. 200-షేర్ targetలో 60 షేర్లు పూర్తయితే, stop 140 షేర్లకు తగ్గుతుంది. ఇది ఇంకా openగా ఉన్న positionకు సరిపోతుంది. Positionలో చివరి షేర్లు కూడా మూసివేసినప్పుడు మాత్రమే cancel జరుగుతుంది.
Premarket లేదా after-hours tradingలో bracket order ఉపయోగించవచ్చా?
ప్రవర్తన brokerను బట్టి మారుతుంది. అనేక brokers bracket childrenను regular hoursలో మాత్రమే route చేస్తారు. ముఖ్యంగా US equitiesలో 9:30 a.m. నుంచి 4:00 p.m. ET వెలుపల stop ordersను తరచుగా తిరస్కరిస్తారు లేదా holdలో ఉంచుతారు. ప్రతి legకు ఉన్న time-in-force setting ఆ leg extended sessionలో eligible అవుతుందా లేదా నిర్ణయిస్తుంది.
నా రెండు orders అనుసంధానమై ఉన్నాయని exchangesకు తెలుసా?
లేదు. US equitiesలో cancel link broker లేదా platform వద్ద ఉంటుంది. Exchangeకు రెండు independent orders అందుతాయి. ఒక leg పూర్తయినట్లు report వచ్చిన తర్వాత, linkను ఉంచిన system మిగిలిన legను రద్దు చేసే messageను పంపుతుంది.
ఇక్కడ ఉన్న ప్రతి panelకు దాని కింద ఖచ్చితమైన SQL query ఉంది. మీరు అనుసరిస్తున్న షేరు range, gap riskను కొలవాలంటే Strasmore terminalలో ప్రశ్నను సాధారణ Englishలో అడగండి.