MOEasymmetry← บทความทั้งหมด
Methodology · 2026-06-12 · 5 นาที

Emergency Kill Switch ในระบบเทรดของผม

ตามรอย ศึกษา รอจังหวะ จู่โจม
ไทย อ่านภาษาอังกฤษ
⚠️ บันทึกการวิจัยและการเทรดส่วนตัว — ไม่ใช่คำแนะนำการลงทุน ผู้เขียนไม่ได้ให้บริการที่ปรึกษาการลงทุนที่มีใบอนุญาต

ทุก live system ต้องการวิธีปิดตัวเอง ไม่ใช่แค่ stop-loss บน position แต่วิธีหยุด ระบบ ไม่ให้เทรดเมื่อมีบางอย่างผิดปกติ

ผมมี kill switch สามระดับ wire ใน automated paper trading infrastructure นี่คือวิธีที่พวกมันทำงานและเหตุผล

ทำไมต้องมี Kill Switches

Failure mode ที่ kill trading accounts มักจะไม่ใช่ trade เดียวที่แย่ มันคือ series ของ trades ที่ถูก take หลัง trade แย่แรก compounding การขาดทุนก่อนที่ trader จะรู้ว่า environment เปลี่ยนไป

ใน momentum system สิ่งนี้อันตรายเป็นพิเศษ Momentum systems ถูก calibrate สำหรับ trending environments เมื่อตลาดเปลี่ยนเป็น choppy หรือเข้า distribution phase, momentum signals สร้าง whipsaw แล้ว whipsaw อีก loss แต่ละครั้งอยู่ใน expected distribution แต่ frequency ของ losses อยู่นอกมัน ระบบที่ไม่มี environmental circuit breaker จะ trade ต่อไปจนกว่า statistical edge จะ return ในที่สุด เผา capital ระหว่างนั้น

Kill switch คือ circuit breaker มันไม่ใช่เรื่องการป้องกันจาก losing trades — สิ่งเหล่านั้น expected และ budgeted มันเกี่ยวกับการหยุด execution เมื่อ sequence ของ losses บ่งบอกว่าบางอย่างเกี่ยวกับ environment เปลี่ยนไป

โครงสร้างสามระดับ

Tier 1 — Position-level stop: 7% hard stop

ทุก individual trade มี hard stop loss สำหรับ entries ส่วนใหญ่ stop ถูกตั้งที่ higher low ของ base (support level ที่ define setup) capped ที่ 7% จาก entry

นี่คือ normal loss ต่อ trade คาดได้ ระบบรันที่ 0.25% risk ต่อ trade ดังนั้น full stop-out คือ -0.25% ของ capital ตลอด 10 concurrent positions full drawdown บนทุกอย่างพร้อมกันจะเป็น -2.5%

Tier 2 — Session-level stop: -10% portfolio drawdown (pause and review)

ถ้า total paper portfolio drawdown จาก recent high เกิน 10% ระบบหยุด take new entries และ flag สำหรับ review Existing positions ยังคงเปิดและ follow individual stops ของพวกมัน

คำถาม review: การขาดทุน 10% อยู่ใน expected distribution ของช่วง walk-forward 20 ปีหรือไม่ หรือมันบ่งบอก regime change? ความแตกต่างนี้สำคัญเพราะ statistical edge ถูก calibrate บนทุก regimes — 10% stop ไม่ได้หมายความว่า "regime changed" หมายความว่า "require human confirmation ก่อน continue"

Tier 3 — Strategy-level stop: -15% / -25% portfolio drawdown

ที่ -15% ระบบ suspend new entries สำหรับสัปดาห์นั้นและสร้าง alert ที่ -25% ระบบปิดตัวเองทั้งหมดและต้องการ manual restart พร้อม explicit override

Thresholds เหล่านี้ derive จาก walk-forward maximum drawdown distribution -25% แทน roughly 95th percentile ของ historical monthly drawdown การ hit มันในช่วงสั้นๆ ชี้ว่าระบบ failing ไม่ใช่แค่ experience bad stretch ภายใน historical range

การ Implement

ใน live paper trading infrastructure kill switches ถูก check ตอนเริ่ม entry evaluation แต่ละครั้ง:

`python def check_kill_switch(conn): portfolio_dd = get_current_drawdown(conn) if portfolio_dd < -0.25: raise KillSwitchLevel3("System shutdown: -25% drawdown") elif portfolio_dd < -0.15: suspend_new_entries(conn, duration_days=7) return False # No new entries this session elif portfolio_dd < -0.10: flag_for_review(conn) return False # Pause until human confirms return True # OK to proceed `

Kill switch ยังป้องกัน double-fire บน macOS sleep/wake cycles — known issue ที่ Python daemons สามารถถูก instantiate สองครั้งเมื่อ Mac wake จาก sleep Singleton guard ป้องกัน kill switch logic จากการ run ใน concurrent processes สองอัน

สิ่งที่ Kill Switch ป้องกัน

Protection หลักคือ regime change Momentum system edge ขึ้นอยู่กับ environment — confirmed uptrend, expanding ranges, sector rotation เมื่อ environment นั้นสิ้นสุด edge หายไปชั่วคราว

Kill switch ไม่ทำนาย regime change มันตอบสนองต่อ loss sequence ที่ unlikely ทางสถิติภายใต้ historical distribution ของระบบ นั่นเป็น softer signal มันอาจเป็น bad luck sequence ภายใน normal distribution หรืออาจเป็น regime change การตอบสนองที่เหมาะสมเหมือนกัน: หยุด ประเมิน restart อย่างมีสติ

Kill switch ยังป้องกัน system bugs ด้วย Mis-wired order, incorrect stop calculation, database corruption ที่สร้าง phantom positions สิ่งเหล่านี้สามารถสร้าง losses ที่ดูเหมือน regime change Kill switch catch พวกมันก่อนที่พวกมันจะ compound

สิ่งที่มันไม่ป้องกัน

Kill switches ไม่ป้องกัน gapping risk หุ้อที่ถือ overnight ที่ open ลง 40% จากข่าวร้าย Individual position stops ไม่ execute ที่ราคาที่ระบุเมื่อตลาด gap through พวกมัน นี่เป็น known limitation; ระบบ budget สำหรับ tail risk โดยการ keep position sizes เล็ก (0.25% ต่อ trade, max 10 concurrent = 2.5% maximum concurrent risk)

พวกมันยังไม่ป้องกัน systematic miscalibration — ถ้า win rate และ R-multiples ที่ใช้ calibrate kill switch thresholds นั้น overstated (เพราะ backtest overfitting) thresholds อาจ loose เกินไป นี่คือเหตุผลที่ thresholds derive จาก walk-forward distribution ไม่ใช่ in-sample backtest distribution

ตามรอย ศึกษา รอจังหวะ จู่โจม


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

Draft 2026-06-12. แหล่งที่มา: Locked Nov 2026 config: 2 systems × 10 slots × 0.25% risk × kill -10/-15/-25 Implementation: intraday_session_us.py และ intraday_session.py Singleton guards: _enforce_singleton() pattern (ดู vault decisions/Daemon-Singleton-Guards.md) Walk-forward drawdown distribution: 20yr clean WF (vault validated-systems/) Kill thresholds: -10% (pause, human review), -15% (suspend 7d), -25% (full shutdown)

รับบทความวิจัยใหม่ทางอีเมล
ทดสอบจริง · ล้มเหลวจริง · เผยแพร่ทั้งหมด
Subscribe — ฟรี
📊 ดูแดชบอร์ดสด เครื่องสแกน breakout และ track record จริงได้ที่ หน้าหลัก MOEasymmetry — งานวิจัย ไม่ใช่คำแนะนำการลงทุน
← ก่อนหน้า
ทำไมผมถึงรันระบบเทรด 3 ระบบแยกกันจนถึงพฤศจิกายน
งานวิจัยและบันทึกการเทรดส่วนบุคคล ไม่ใช่คำแนะนำการลงทุน · Personal research & trading journal — not investment advice. The author does not provide licensed advisory services.
Home · Articles · Methodology · Track record