Skip to content
คู่มือออปชันทั้งหมด
แยกจุดเริ่มเหตุการณ์ออกจากป้ายกำกับผลลัพธ์อ่าน 12 นาที

วิธี Triple Barrier: การติดป้ายกำกับเหตุการณ์ทางการเงิน

เรียนรู้ว่าระดับทำกำไร ระดับจำกัดขาดทุน และกรอบเวลาถือครองสูงสุดร่วมกันกำหนดป้ายกำกับเหตุการณ์อย่างไร พร้อมวิธีจัดการข้อมูลราคาที่กำกวมและผลลัพธ์ที่ทับซ้อนกัน

ในคู่มือนี้เงื่อนไขสามข้อกำหนดป้ายกำกับของแต่ละเหตุการณ์

สรุปสั้น

วิธี Triple Barrier กำหนดป้ายกำกับให้เหตุการณ์ทางการเงินตามเงื่อนไขแรกที่เกิดขึ้นหลังเริ่มเหตุการณ์ ได้แก่ ระดับทำกำไรด้านบน ระดับจำกัดขาดทุนด้านล่าง หรือกำหนดเวลาถือครองสูงสุด ระดับของแต่ละเหตุการณ์อิงราคาเริ่มต้น P₀ และสเกลความผันผวน σᵢ ซึ่งต้องทราบได้ตั้งแต่เวลาเริ่มต้น ในบทความนี้ การแตะระดับด้านบนได้ป้าย +1 การแตะระดับด้านล่างได้ −1 และการหมดเวลาโดยไม่แตะระดับแนวนอนทั้งสองได้ 0 บาง implementation ใช้เครื่องหมายของผลตอบแทนเมื่อหมดเวลาแทน จึงควรระบุหลักเกณฑ์ที่เลือกให้ชัดเจน

เงื่อนไขสามข้อกำหนดป้ายกำกับของแต่ละเหตุการณ์

สำหรับเหตุการณ์ i ให้บันทึกเวลาเริ่ม tᵢ ราคา P₀ ค่าประมาณสเกลผลตอบแทน σᵢ ตัวคูณ m_PT และ m_SL และระยะเวลาสูงสุด Tᵢ ถ้าใช้ผลตอบแทนอย่างง่าย ราคาเป้าหมายด้านบนคือ P₀ × (1 + m_PT σᵢ) ส่วนระดับด้านล่างคือ P₀ × (1 − m_SL σᵢ) สองระดับนี้เป็นแนวกั้นแนวนอน ส่วน Tᵢ เป็นแนวกั้นแนวตั้ง

เมื่อกำหนด m_PT = 2 เป้าหมายด้านบนจะอยู่สูงกว่าราคาเริ่มต้นสองเท่าของสเกล ส่วน m_SL = 1.5 ทำให้ระดับด้านล่างอยู่ห่างลงมา 1.5 เท่าของสเกล หากแตะระดับใดก่อนถึง Tᵢ เหตุการณ์จะสิ้นสุดที่ระดับนั้นและได้ป้ายกำกับตามนั้น หากไม่มีระดับแนวนอนใดถูกแตะ เหตุการณ์จะสิ้นสุดเมื่อถึงแนวกั้นแนวตั้ง

สามารถกำหนดระดับด้วยผลตอบแทนอย่างง่ายหรือผลตอบแทนลอการิทึมได้ แต่ทั้งสองแบบไม่ได้ให้ราคาเดียวกันเสมอเมื่อการเคลื่อนไหวมีขนาดใหญ่ เลือกนิยามผลตอบแทนและวิธีแปลงเป็นราคาให้สอดคล้องกันทั้งตอนสร้างเป้าหมายและตอนจำลองการซื้อขาย บทที่ 3 ของ Advances in Financial Machine Learning อธิบายการติดป้ายกำกับตามเหตุการณ์และการกำหนดแนวกั้นตามสเกลความผันผวน

สเกลความผันผวนต้องรู้ได้ตั้งแต่เริ่มเหตุการณ์

σᵢ ทำให้ระยะของแนวกั้นปรับตามความผันผวนที่เกี่ยวข้องกับเหตุการณ์นั้น อาจประมาณจากผลตอบแทนในอดีตหรือแบบจำลองที่กำหนดไว้ล่วงหน้า แต่ต้องใช้เฉพาะข้อมูลที่มีอยู่ไม่เกินเวลา tᵢ หากคำนวณความผันผวนโดยรวมช่วงเวลาในอนาคต ระดับแนวกั้นก็จะรั่วไหลของข้อมูลอนาคต แม้คุณจะสร้างฟีเจอร์อย่างระมัดระวังก็ตาม

การใช้เปอร์เซ็นต์คงที่เข้าใจง่าย แต่ระดับอาจอยู่ใกล้เกินไปในช่วงตลาดสงบและไกลเกินไปในช่วงตลาดผันผวน การปรับด้วยความผันผวนช่วยให้ระยะเปลี่ยนตามสภาวะตลาด แต่ σᵢ ไม่ใช่คำรับรองหรือคำทำนายความผันผวนในอนาคต เป็นเพียงส่วนหนึ่งของกติกาที่กำหนดไว้เพื่อสร้างป้ายกำกับ

เก็บราคาเริ่มต้น σᵢ ตัวคูณ เวลาเริ่มและเวลาสิ้นสุด สาเหตุที่สิ้นสุด และราคาที่ใช้ตัดสินว่ามีการแตะระดับไว้สำหรับแต่ละเหตุการณ์ ข้อมูลเหล่านี้ช่วยให้ทำซ้ำป้ายกำกับ ตรวจสอบระยะเวลาที่แตกต่างกัน และค้นหาการใช้ข้อมูลอนาคตโดยไม่ตั้งใจ

ตัวกระตุ้นเหตุการณ์กับป้ายกำกับตอบคนละคำถาม

ตัวกระตุ้นกำหนดว่าจะเริ่มติดตามเหตุการณ์เมื่อใด ตัวอย่างเช่น ตัวกรอง CUSUM อาจสร้างเหตุการณ์เมื่อการเคลื่อนไหวสะสมเกินเกณฑ์ แทนที่จะสร้างตัวอย่างใหม่ทุกแท่ง ตัวกระตุ้นตอบว่า “เริ่มสร้างตัวอย่างเมื่อใด” ขณะที่กติกา Triple Barrier ตอบว่า “หลังจากนั้นผลลัพธ์ใดเกิดก่อน”

อย่าสับสนตัวกระตุ้นกับป้ายกำกับหรือสัญญาณซื้อขาย การสร้างป้ายกำกับด้วยแนวกั้นใช้เส้นทางราคาในอนาคตเพื่อคำนวณตัวแปรเป้าหมาย y ซึ่งเหมาะกับการสร้างป้ายกำกับฝึกโมเดล แต่ฟีเจอร์และ σᵢ ของเหตุการณ์ต้องคำนวณจากข้อมูลที่ทราบในเวลาเริ่มต้น หลักการนี้อธิบายไว้ใน เอกสาร mlfinpy เรื่องการติดป้ายกำกับ และแสดงใน โค้ด implementation ของ Triple Barrier

ตัวอย่างแสดงว่าแต่ละแนวกั้นทำงานอย่างไร

สมมติ P₀ = $100, σᵢ = 2%, m_PT = 2, m_SL = 1.5 และกำหนดให้แนวกั้นแนวตั้งหมดลงเมื่อสิ้นสุดแท่งอนาคตแท่งที่สาม เมื่อใช้ผลตอบแทนอย่างง่าย ระดับบนคือ $104 และระดับล่างคือ $97

  • เส้นทาง $100 → $104.50 แตะระดับบนในแท่งอนาคตแท่งแรก จึงได้ป้าย +1 แม้หลังจากนั้นราคาอาจกลับทิศ
  • เส้นทาง $100 → $96.50 แตะระดับล่างในแท่งอนาคตแท่งแรกก่อนหมดเวลา จึงได้ป้าย −1
  • เส้นทาง $100 → $101 → $102 → $101.50 ไม่แตะระดับแนวนอน เมื่อถึงสิ้นสุดแท่งอนาคตที่สามจึงหมดเวลาและได้ป้าย 0 ตามกติกาในบทความนี้ แม้ผลตอบแทนสุดท้ายจะเป็น +1.5%

ตัวอย่างสุดท้ายย้ำว่าเลขศูนย์หมายถึง “ยังไม่มีการแตะแนวกั้นแนวนอนก่อนหมดเวลา” ไม่ได้หมายความว่าผลตอบแทนเป็นศูนย์ บางวิธีถือว่ากำหนดเวลาสิ้นสุดเป็นเพียงจุดหยุดสังเกต แล้วจัดป้ายบวกหรือลบตามเครื่องหมายผลตอบแทนปลายทาง นั่นเป็นกติกาอีกแบบหนึ่ง ควรบันทึกไว้และไม่รวมป้ายที่เกิดจากกติกาคนละแบบเข้าด้วยกัน

เส้นทางราคาไร้ป้ายกำกับสามเส้น: เส้นแรกทะลุขอบบน เส้นที่สองทะลุขอบล่าง และเส้นที่สามจบระหว่างสองขอบเมื่อถึงเวลาจำกัด
ภาพแนวคิดของการแตะขอบบน ขอบล่าง หรือขอบเวลาครั้งแรก เส้นทางเป็นเพียงภาพประกอบ ไม่ใช่ข้อมูลตลาด

ป้ายกำกับทิศทางต่างจากเมตาเลเบล

ในงานทำนายทิศทาง ป้าย +1 และ −1 บอกว่าราคาถึงระดับด้านใดก่อน ส่วน 0 ในบทความนี้แยกกรณีหมดเวลา โมเดลสามารถทำนายคลาสเหล่านี้จากฟีเจอร์ ณ จุดเริ่มต้นได้ แต่ป้ายดังกล่าวบอกผลลัพธ์เทียบกับแนวกั้นเท่านั้น ไม่ได้บอกโดยตัวมันเองว่าหลังหักค่าใช้จ่ายแล้วจะมีกำไร

การทำเมตาเลเบลเริ่มจากโมเดลหลักที่เสนอทิศทางสถานะ เช่น ซื้อหรือขาย จากนั้นใช้แนวกั้นกับผลตอบแทนที่คำนึงถึงทิศทางนั้น แล้วใช้โมเดลรองประเมินว่าควรรับสัญญาณหรือไม่ ความหมายของป้ายและแนวกั้นจึงขึ้นอยู่กับว่าการคำนวณใช้ด้านของสถานะด้วยหรือไม่ ระบุทิศทางที่เสนอในข้อมูลให้ชัดเจน อย่าตีความป้าย +1 ทุกแบบว่าเป็นคำแนะนำให้ซื้อ

ข้อมูลตลาดอาจไม่บอกลำดับการแตะระดับ

ข้อมูลราคาปิดอย่างเดียวอาจพลาดการแตะแนวกั้นระหว่างแท่ง เพราะราคาสูงสุดหรือต่ำสุดอาจผ่านระดับก่อนปิด แท่ง OHLC ที่มีทั้งจุดสูงสุดผ่านแนวกั้นด้านบนและจุดต่ำสุดผ่านแนวกั้นด้านล่างไม่ได้บอกว่าราคาแตะระดับใดก่อน จึงตัดสินผู้ชนะจากตัวเลขทั้งสี่ค่าไม่ได้อย่างน่าเชื่อถือ

หากลำดับการแตะมีผล ให้ใช้ข้อมูลที่ละเอียดพอจะตรวจสอบลำดับได้ หากไม่มีข้อมูลดังกล่าว ให้กำหนดกฎอนุรักษนิยมที่ทำซ้ำได้สำหรับกรณีแตะสองระดับในแท่งเดียว เช่น นับผลด้านที่เสียเปรียบ แล้วใช้กฎเดียวกันทุกเหตุการณ์ ระบุความกำกวมนี้ในวิธีการศึกษา อย่านำสมมติฐานเรื่องลำดับเสนอเสมือนเป็นสิ่งที่สังเกตได้จริง

กำหนดด้วยว่า “แตะ” หมายถึงรายการซื้อขาย ราคาเสนอซื้อขาย ราคาปิด หรือราคาที่ส่งคำสั่งได้ การกระโดดข้ามระดับ สเปรด และความล่าช้าในการส่งคำสั่งอาจทำให้จุดราคาที่เห็นทำรายการจริงไม่ได้

เหตุการณ์ที่ทับซ้อนกันต้องตรวจสอบตอนแบ่งข้อมูล

หลายเหตุการณ์อาจดำเนินพร้อมกันและใช้การเคลื่อนไหวในอนาคตช่วงเดียวกันคำนวณป้ายกำกับ การสุ่มแบ่งแถวเป็นชุดฝึกกับชุดทดสอบจึงอาจวางผลลัพธ์จากช่วงเวลาที่ทับซ้อนกันไว้ทั้งสองชุด ในการตรวจสอบ ให้ใช้ช่วงจริงตั้งแต่เริ่มเหตุการณ์จนแตะแนวกั้นหรือหมดเวลา และนำตัวอย่างฝึกที่มีช่วงผลลัพธ์ทับกับชุดทดสอบออกตามกติกาที่กำหนด

แนวทางนี้อธิบายเพิ่มเติมในคู่มือเรื่อง purged cross-validation และ embargo สำหรับอนุกรมเวลาในตลาดการเงิน การ purge ช่วยลดการรั่วไหลจากป้ายกำกับที่ทับซ้อนกัน แต่ไม่ได้แก้ฟีเจอร์ที่ใช้ข้อมูลอนาคต การเลือกโมเดลซ้ำหลายครั้ง หรือสมมติฐานราคาซื้อขายที่ไม่สมจริง

ต้นทุนเปลี่ยนความหมายของผลลัพธ์

เส้นทางการแตะแนวกั้นมักคำนวณจากการเปลี่ยนแปลงของราคาสินทรัพย์ แต่ผลของธุรกรรมจริงยังขึ้นกับสเปรด ค่าธรรมเนียม slippage เงินทุนสำหรับสัญญา perpetual ต้นทุนยืม และกติกาการจับคู่คำสั่ง หากต้องการจำแนกผลตอบแทนสุทธิ ให้รวมปัจจัยเหล่านี้ไว้ในนิยามผลตอบแทนเป้าหมายและสมมติฐานการส่งคำสั่งที่สมจริงก่อนคำนวณป้ายกำกับ

แม้ได้ป้ายบวกก็ไม่ได้ยืนยันว่ากลยุทธ์จะทำกำไร ผลลัพธ์ขึ้นกับความถี่ของเหตุการณ์ โมเดล ตลาด ขนาดสถานะ และคุณภาพการส่งคำสั่ง การติดป้ายกำกับจากข้อมูลย้อนหลังไม่ใช่คำรับรองผลหรือคำแนะนำในการซื้อขาย

บันทึกกติกาก่อนฝึกโมเดล

อธิบายวิธีสร้างเหตุการณ์ ที่มาของ P₀ และ σᵢ ตัวคูณและระยะเวลาที่ใช้ แหล่งราคาที่ใช้ตรวจจับการแตะ และแนวทางสำหรับกรณีแตะสองระดับ ระบุว่าการหมดเวลาได้ป้าย 0 เสมอหรือใช้เครื่องหมายของผลตอบแทนปลายทาง รวมถึงการคำนวณผลลัพธ์ก่อนหรือหลังต้นทุน

การบันทึกกติกาทำให้ชุดข้อมูลตรวจสอบและทำซ้ำได้ พารามิเตอร์ที่ต่างกันสร้างโจทย์ทำนายคนละแบบ แม้ใช้ข้อมูลดิบชุดเดียวกัน

คำถามที่พบบ่อย

Q1เมื่อหมดเวลา ป้ายกำกับต้องเป็นศูนย์เสมอหรือไม่?

ไม่จำเป็น บทความนี้เลือกเลขศูนย์เป็นคลาสแยกสำหรับเหตุการณ์ที่ไม่แตะแนวกั้นแนวนอนก่อนแนวกั้นแนวตั้ง วิธีอื่นอาจกำหนดป้ายตามเครื่องหมายของผลตอบแทนเมื่อหมดเวลา สิ่งสำคัญคือเลือกและใช้กติกาเดียวกันให้สม่ำเสมอ

Q2ตัวกระตุ้นเหตุการณ์ต่างจากวิธี Triple Barrier อย่างไร?

ตัวกระตุ้น เช่น CUSUM ระบุเวลาเริ่มต้นของตัวอย่าง ส่วนแนวกั้นทั้งสามระบุว่าเงื่อนไขผลลัพธ์ใดเกิดก่อนหลังเริ่มเหตุการณ์ ทั้งสองเป็นขั้นตอนคนละส่วนในการสร้างชุดข้อมูลฝึก

Q3ป้าย +1 รับประกันว่าจะกำไรหลังหักต้นทุนหรือไม่?

ไม่รับประกัน ป้ายนี้บอกเพียงว่าราคาแตะแนวด้านบนก่อนตามข้อมูลและกติกาที่กำหนด สเปรด ค่าธรรมเนียม เงินทุน slippage ขนาดสถานะ และวิธีส่งคำสั่งอาจเปลี่ยนผลสุทธิได้

แหล่งข้อมูลและการอ่านเพิ่มเติม

รายงานปัญหา

เราจะเตรียมอีเมลพร้อมลิงก์บทความนี้ Mark จะได้รับรายงานเมื่อคุณส่งอีเมลแล้วเท่านั้น

ตรวจสอบอย่างรวดเร็ว

อ่านคู่มือจบแล้ว ลองตอบคำถาม 3 ข้อ

คำถาม 1 / 3

คำถาม 01

หากเหตุการณ์แตะแนวกั้นด้านบนในแท่งอนาคตแท่งแรก ก่อนแนวกั้นด้านล่างและก่อนหมดเวลา จะได้ป้ายใด?

เลือกคำตอบเพื่อดูคำอธิบาย

อภิธานศัพท์ออปชัน

ตรวจสอบโมเดลเทรดPurged cross-validation และ embargo: ป้องกัน label leakage ในโมเดลเทรดเรียนรู้วิธีตรวจสอบ time series การเงินเมื่อช่วงเวลาของ forward label ซ้อนทับกัน และความต่างระหว่าง purging, embargo, walk-forward, TimeSeriesSplit และ CPCVผู้ชนะจากแบ็กเทสต์ตกต่ำกว่าค่ามัธยฐานของกลุ่มบ่อยเพียงใดอธิบายความน่าจะเป็นของการโอเวอร์ฟิตแบ็กเทสต์ (PBO) และ CSCVเรียนรู้ว่า combinatorially symmetric cross-validation ประมาณค่า PBO อย่างไร แปลงอันดับ OOS เป็น logit อย่างไร และเหตุใดจึงไม่ใช่การพยากรณ์การขาดทุนในอนาคตเลือกเวลาสังเกตจากการเปลี่ยนแปลงราคาที่สะสมอธิบาย CUSUM Filter: การสุ่มตัวอย่างเหตุการณ์ทางการเงินเรียนรู้ว่า CUSUM filter แบบสมมาตรเลือกเวลาเกิดเหตุการณ์จากผลตอบแทนลอการิทึมอย่างไร ตั้งเกณฑ์โดยไม่ใช้ข้อมูลอนาคต และต่างจากการทดสอบเสถียรภาพของสมการถดถอยอย่างไรกลไกออปชันการถูกใช้สิทธิ์ออปชันคืออะไรทำความเข้าใจว่าการถูก assign เปลี่ยน short call หรือ put ให้เป็นภาระผูกพันต่อหุ้นได้อย่างไร เกิดขึ้นเมื่อใด และเตรียมเงินสดกับหุ้นอย่างไรจำนวนสัญญาที่อนุญาตไม่ใช่งบประมาณความเสี่ยงPosition limits เทียบกับ exercise limits ของออปชันอธิบายอย่างไรเรียนรู้ว่า position limits ของออปชันที่จดทะเบียนต่างจาก exercise limits อย่างไร เหตุใดการรวมฝั่งเดียวกันและการรายงานจึงสำคัญ และเหตุใดมาร์จินหรือ buying power จึงไม่บอกว่าจำนวนหนึ่งได้รับอนุญาต