อธิบาย futures bracket orders
เรียนรู้ว่า bracket order ของฟิวเจอร์สเชื่อม entry, profit limit และ protective stop อย่างไร รวมถึง partial fills, transmission, slippage และ failure paths เฉพาะ broker
คำตอบโดยตรง
โดยทั่วไป futures bracket order รวม entry หนึ่งรายการเข้ากับ limit เพื่อทำกำไรและ stop เพื่อป้องกันความเสี่ยง หลัง parent fill แล้ว exit ทั้งสองตั้งใจให้ทำงานเป็นคู่ OCO: เมื่อรายการหนึ่ง execute อีกรายการจะถูกยกเลิก โครงสร้างนี้ช่วยจัดระเบียบการตัดสินใจ แต่ไม่รับประกัน fill, stop price หรือการยกเลิกทันทีในตลาดที่เคลื่อนไหวเร็ว
คำสั่งทั้งสามทำหน้าที่อะไร
สำหรับ long futures position, parent คือ buy order ส่วน children คือ sell limit เหนือ entry และ sell stop ใต้ entry สำหรับ short position ทิศทางจะกลับกัน: sell parent มี buy stop อยู่ด้านบนและ buy limit อยู่ด้านล่าง Quantity ของ child แต่ละรายการควรตรงกับ quantity ที่ถือจริง โดยขึ้นอยู่กับกฎ partial-fill ของ broker
ความสัมพันธ์ OCO เชื่อมคำสั่งสองรายการที่มีสิทธิ์ execute อยู่แล้ว Bracket เพิ่ม parent ที่เมื่อ fill แล้วจะปล่อย children บางแพลตฟอร์มเรียกโครงสร้าง parent-plus-two-children ว่า OTOCO ชื่อเรียกไม่ได้เป็นมาตรฐาน ดังนั้นให้อ่านกฎ activation และ cancellation ของ broker แทนการพึ่ง label OCO และ bracket orders สำหรับออปชัน ให้ตัวอย่างคำศัพท์แบบคู่ขนาน
กำหนดความเสี่ยงก่อนสร้าง ticket
กำหนด invalidation level, target, contract month และ maximum loss ก่อนกรอก order ticket แปลงระยะ stop เป็นเงินด้วย tick size และ tick value ของสัญญา รวม commissions, exchange fees, สมมติฐาน fill ที่ไม่เป็นใจ และ gap scenario Futures position sizing อธิบายว่าเหตุใด initial margin จึงไม่ใช่งบขาดทุนที่ปลอดภัย
ตัวอย่างเช่น long micro contract ที่มี stop 20 ticks และ tick value $1.25 มี planned price risk $25 ต่อสัญญาก่อนต้นทุน นี่เป็นเพียง scenario ไม่ใช่ maximum loss ที่รับประกัน: stop อาจ fill เลย trigger และตลาดอาจเคลื่อนก่อน protective child ได้รับการยอมรับ หาก shock case ไม่อยู่ใน limit ของบัญชี ให้ลด quantity หรือข้าม trade
อย่าเลือก target เพียงเพราะทำให้ risk-reward ratio ดูน่าสนใจ ระบุสภาวะตลาดที่ทำให้ thesis ใช้ไม่ได้ และเงื่อนไขที่อนุญาตให้ exit ตามดุลยพินิจเร็วขึ้น Bracket ควร encode rule ที่ทดสอบแล้ว ไม่ใช่ใช้แทน rule นั้น
Parent activation และ transmission สำคัญ
Bracket ที่ปลอดภัยไม่ควรเปิดให้ child execute ก่อนที่ position จะมีอยู่ Broker implementations โดยทั่วไปจะ hold children ไว้จน parent fill แต่พฤติกรรมที่แน่นอนอาจต่างกันสำหรับ partial fills, rejected parents, การเทรดนอกเวลา และ API submissions
เมื่อส่งผ่าน API broker อาจต้องใช้ transmission flag หรือ staging mechanism ที่เทียบเท่า Interactive Brokers อธิบายการส่ง parent และ child แรกโดยไม่ transmit จากนั้น transmit child สุดท้ายเพื่อปล่อยทั้งกลุ่มพร้อมกัน วิธีนี้ลดโอกาสที่ parent จะ live โดยไม่มี exit ที่ตั้งใจไว้ แต่ยังต้องตรวจ order acknowledgements และ status events ดู [เอกสาร bracket-order ของ Interactive Brokers](https://www.interactivebrokers.com/docs/general/order-types/complex-orders/bracket-orders)
ใน ticket แบบ manual ให้ตรวจว่า entry เป็น parent จริง children อ้างถึง parent ID ที่ถูกต้อง และกลุ่ม active แล้ว ไม่ใช่แค่แสดงอยู่ในเครื่อง Ticket ที่ดูเป็นสีเขียวไม่ได้พิสูจน์ว่า exchange ยอมรับทุก order
เลือก order types อย่างมีเจตนา
Profit child โดยทั่วไปเป็น limit order มันควบคุมราคาที่แย่ที่สุดที่ยอมรับได้สำหรับ exit แต่ยังค้างไม่ fill ได้หากตลาดแตะระดับแล้วกลับตัว Protective child อาจเป็น stop-market หรือ stop-limit Stop-market ให้ความสำคัญกับ execution แต่สามารถ fill เลย trigger ในการเคลื่อนที่เร็ว ส่วน stop-limit ควบคุม limit price แต่ trigger แล้วไม่ fill ได้
อ่าน market orders เทียบกับ limit orders และ stop orders เทียบกับ stop-limit orders ก่อนเลือก type ตรวจสอบว่า price source ใดเป็นตัว trigger stop, limit ถูกปัดเป็น ticks อย่างไร, order อนุญาตใน overnight session หรือไม่ และ exchange หรือ broker ใช้ protection bands หรือไม่
Time in force ก็เป็นการตัดสินใจด้านความเสี่ยงอีกเรื่อง Day child ที่หมดอายุเมื่อ session สิ้นสุดอาจทิ้ง overnight position ไว้โดยไม่มีการป้องกัน GTC child อาจอยู่ต่อยาวกว่าความเชื่อในการเทรดและต้องยกเลิกเองเมื่อปิด position เปรียบเทียบ day และ GTC futures orders กับ trading schedule ของสัญญา
Partial fills เปลี่ยน quantity ที่ปลอดภัย
สมมติ parent ห้าสัญญา fill สองสัญญา Bracket จะปลอดภัยก็ต่อเมื่อ active exits คุ้มครองสอง ไม่ใช่ห้า เว้นแต่ broker ตั้งใจให้ parent quantity ที่เหลือสามยังทำงาน และสามารถปรับขนาด children เมื่อมี fill เพิ่ม บางระบบ activate children ตามสัดส่วน บางระบบรอ parent fill ครบ และบางระบบให้ trader amend quantity เอง
หลังทุก fill event ให้เปรียบเทียบ:
หาก child fill บางส่วน position ที่เหลืออาจเล็กลงขณะที่ sibling ยังแสดง quantity เดิม ทำตาม OCO behavior ของ broker และ amend หรือ cancel อย่างชัดเจน อย่าสมมติว่า OCO cancellation จะคำนวณ quantity ของ sibling ใหม่โดยอัตโนมัติ Rejected เทียบกับ not-filled futures orders อธิบายว่า order ที่ pending หรือ rejected ไม่ได้เท่ากับความเสี่ยงถูกลบออก
- Filled parent quantity กับ position ที่ถือจริง
- Active stop quantity กับ position ที่ต้องได้รับการป้องกัน
- Profit child quantity และ parent quantity ที่เหลือ
- Average entry price และ exit prices ที่ปัดตาม tick
- Orders ที่ไม่เชื่อมโยงหรือซ้ำกัน
OCO cancellation เป็น race ไม่ใช่คำรับประกัน
เมื่อ child รายหนึ่ง execute ระบบจะส่ง cancellation request ให้กับอีกรายการ Request นั้นใช้เวลาเดินทางไปถึง broker, exchange หรือ matching engine ในตลาดที่เคลื่อนไหวรุนแรง children ทั้งสองอาจ execute หรือรายการหนึ่งอาจ execute หลัง position เปลี่ยนไปแล้ว Bracket ลดความล่าช้าจากการทำมือ แต่ไม่ได้ทำให้ overfill เป็นไปไม่ได้
กำหนดการตอบสนองเมื่อเกิด fill ที่ไม่คาดคิด: หยุดส่ง order ใหม่ อ่าน execution report คำนวณ net position ที่เกิดขึ้น cancel children ที่ stale และ flatten หรือ re-protect ตามแผนที่เขียนไว้ อย่ารีบกลับทิศเพียงเพราะทั้งสองฝั่ง fill ก่อนอื่นกระทบยอด quantity และ fees
กระทบยอดหลัง parent และหลัง exit
ใช้ execution report ไม่ใช่ chart หรือ order-ticket preview เป็น source of truth บันทึก contract month, side, quantity, average price, timestamp, order ID, trigger source และ fees ยืนยันว่า exchange รับ contract และ position อยู่ในเดือนที่ตั้งใจ Continuous chart ไม่ใช่ tradable contract ด้วยตัวมันเอง
หลัง exit ให้ตรวจว่า position เป็นศูนย์หรือเหลือเท่าที่ตั้งใจ และไม่มี child หรือ parent order ใดยังทำงาน เปรียบเทียบ realized P&L กับ tick value และ costs ของสัญญา Realized เทียบกับ unrealized futures P&L ช่วยแยกผลลัพธ์ที่ปิดแล้วออกจาก exposure ที่ยัง live
หากปล่อย bracket ข้ามคืน ให้กันเงินสำหรับ variation margin และการเปลี่ยนแปลง margin policy ที่อาจเกิดขึ้น Protective stop ไม่จำกัดขาดทุนผ่าน gap และ broker อาจ liquidate positions เมื่อ equity ต่ำกว่า requirements ทบทวน margin call เทียบกับ forced liquidation
Checklist ก่อนส่งและหลัง fill
ก่อนส่ง:
1. ยืนยัน contract month, direction และ quantity ที่แน่นอน 2. คำนวณ stop risk, target logic, fees และ shock scenario 3. ตรวจ tick rounding, trigger source, session และ time in force 4. ยืนยัน parent-child IDs และพฤติกรรม partial-fill ของ broker 5. ตรวจว่า margin และ free cash ยังสูงกว่า buffer ในแผน
หลัง parent fill:
1. ยืนยัน position จริงและ quantities ของ child ที่ active 2. ตรวจว่า stop live อยู่และ profit order มีราคาที่ตั้งใจ 3. Cancel orders ที่ซ้ำหรือ stale 4. บันทึก fill และติดตาม status events ไม่ใช่ดูเพียง last price
หลัง child ใด ๆ fill ให้ทำ reconciliation ซ้ำ Bracket จะสมบูรณ์ก็ต่อเมื่อ position และ orders ที่เกี่ยวข้องทั้งหมดตรงกับแผน [!WARNING] Bracket order ไม่ใช่ขีดจำกัดการขาดทุนที่รับประกัน Slippage, gaps, trading halts, orders ที่ถูก reject หรือล่าช้า, partial fills, connection failures, margin ที่เปลี่ยน และ OCO behavior เฉพาะ broker อาจทำให้ผลต่างจาก stop หรือ target ที่วางแผนไว้ บทความนี้ให้ความรู้และไม่ได้แนะนำ contract, broker, order type หรือ strategy
คำถามที่พบบ่อย
Futures bracket order เหมือน OCO order หรือไม่
ไม่ OCO เชื่อมทางเลือกสองรายการที่มีสิทธิ์ execute ส่วน bracket โดยทั่วไปเพิ่ม parent entry ซึ่งเมื่อ fill แล้วจะ activate exits สองรายการ จากนั้น exits จึงทำงานเป็น OCO siblings ชื่อและกฎ activation ของ broker ต่างกัน
Futures bracket ทั้งสองฝั่ง fill ได้หรือไม่
ได้ Cancellation request อาจ race กับ execution ระหว่างตลาดเคลื่อนไหวเร็ว หรือ status update ที่ล่าช้าอาจทำให้ children ทั้งสองยังมีสิทธิ์ execute กระทบยอด net position ทันทีและทำตาม contingency ที่เขียนไว้ล่วงหน้า
เกิดอะไรขึ้นเมื่อ entry fill เพียงบางส่วน
Broker อาจ activate exits เฉพาะ quantity ที่ fill รอ parent ครบ หรือให้ปรับขนาดด้วยมือ ตรวจ position จริงและ active child quantities หลังทุก fill event
Protective child ควรเป็น stop-market หรือ stop-limit
ขึ้นอยู่กับว่า strategy ให้ความสำคัญกับ execution certainty หรือ price control มากกว่า Stop-market อาจ slip ส่วน stop-limit อาจค้างไม่ fill ทดสอบ rule กับ trigger และ session behavior ของ broker ก่อนพึ่งพา