StackTrading Docs

QnA Init Docs — UC_4.15.1: Soft Breach - Daily Loss Limit Hit (LIVE)

Ngày tạo: 2026-08-17 Phiên bản: v1.1 BA phụ trách: Huyen Dinh Trạng thái: ✅ Đã chốt — BA đã phản hồi toàn bộ QnA (2026-08-18)

BA directive (2026-08-18, override toàn bộ QnA dưới đây khi viết SRS): LIVE Soft Lock (UC_4.15.1) có cùng kiến trúc/flow với SIM Soft Lock (UC_4.10.1) — 3-step sequence Flatten → Lock → Reset, overlay behaviour, Auth0/dashboard isolation, rounding (CR-13), fee/commission exclusion... đều giống 100%. Điểm khác biệt DUY NHẤT là công thức tính threshold (LIVE dùng Market_Loss_When_Stopped từ Table A/B thay vì SIM's flat 7.5% × Notional). Khi Architect viết SRS cho UC_4.15.1: bất kỳ phần nào giống SIM thì REFERENCE thẳng tới UC_4.10.1 (anchor link), KHÔNG viết lại nội dung. Chỉ viết riêng phần công thức/threshold khác biệt.

Input gốc do anh cung cấp (bảng Definition/Trigger/Business logic/UI-UX/Endpoints/Zapier flow/Table cho UC_4.15.1) được đối chiếu với UC_4.10.1 (SIM — cùng function, khác environment) và source zapier_v7_full.txt / v7_full.txt / QnA đã confirm. Các câu hỏi dưới đây chỉ nêu phần khác biệt LIVE vs SIM hoặc gap trong source — phần nào input đã khớp 100% với SIM/source thì không raise lại.


UC_4.15.1 — Soft Breach: Daily Loss Limit Hit (LIVE)

IDCâu hỏiGiả định (BA/QC đề xuất)BA chốt (ưu tiên cao nhất)Trạng thái
QN-4.15.1-01🔴**[CRITICAL] LIVE có flatten (force-close) open position khi Soft Breach không?** Input LIVE (Definition + Business logic step 3) chỉ nói "shift to Read-Only, cancel all working orders, block new entries" — không có bước flatten position đang mở. Trong khi SIM (UC_4.10.1) flatten TẤT CẢ open position trước khi lock (3-step: Flatten → Lock → Reset). Đây có phải là khác biệt có chủ đích giữa LIVE và SIM (LIVE để position đang mở tiếp tục chạy, chỉ cancel pending order + block order mới), hay input chỉ bị thiếu ý "flatten" khi soạn?Theo đúng literal wording của input: LIVE Soft BreachKHÔNG flatten open position — chỉ cancel working orders (pending) + block new entry. Position đang mở tiếp tục chạy dưới Mark-to-Market, có thể tự đóng theo TP/SL riêng của nó hoặc tiếp tục cho tới khi trigger Hard Breach (Market_Loss_When_Stopped) hoặc reset_time.Có flatten positions. LIVE Soft Lock dùng cùng 3-step sequence (Flatten → Lock → Reset) như SIM UC_4.10.1 — không viết lại nội dung, REF thẳng tới UC_4.10.1 §2 Trigger / BR_4.10.1.4.✅ Đã chốt
QN-4.15.1-02🔴**[BLOCKING gap — Table A/B thiếu data Level 9-16]** Table A (Forex, zapier_v7_full.txt Appendix A) và Table B (Futures, Appendix B) có cột Market_Loss_When_Stopped để trống cho Level 9 đến Level 16 (Trader / Senior Trader 1 / Senior Trader 2) — chỉ có Severance_Pay/Retry_Discount/DTO_Days. Level 1-8 và Level 17-24 đã có đủ số. Vì Definition xác nhận Daily Loss Limit "Applies to all levels including Level 9+", worked example / bảng threshold cho L9-16 cần số thật, không thể tự suy ra.⚠️ No safe default — không thể tự bịa số tiền. Đề xuất: viết SRS với worked example đầy đủ cho L1-8 và L17-24 (đã có số), đánh dấu L9-16 là[BLOCKED — pending Table A/B data], không convert ra khỏi scope.Không cần viết worked-example số cụ thể trong SRS. Chỉ cần define công thức (Daily_Loss_Limit = Market_Loss_When_Stopped × Daily_Loss_Ratio) tham chiếu Table A/B như data source — SRS không phải nơi liệt kê từng số tiền theo level. Gap Level 9-16 thiếu data không block việc viết SRS.✅ Đã chốt
QN-4.15.1-03🟡 Gateway Futures —wording nào chuẩn? Input (dòng "3rd Party") ghi "Ironbeam FCM Rithmic Gateway (Live DMA)". Nhưng QnA-confirmed doc Stage 2 - Dashboard & Fomula (Settings).csv ghi "Rithmic Live FCM Gateway (Ironbeam)", và RFQ V7 (§2.2 Execution Gateways) ghi "Live FCM Rithmic Gateway" (không kèm "Ironbeam" trong tên gateway — Ironbeam chỉ là FCM cấp sub-account riêng, không phải tên gateway). Cùng nghĩa, khác thứ tự chữ — chuẩn hoá theo nguồn nào?Dùng wording QnA-confirmed:"Rithmic Live FCM Gateway (Ironbeam)" — theo priority chain QnA (★★★) > Customer supplies (★★★, RFQ chỉ ghi "Live FCM Rithmic Gateway" không có Ironbeam).Đồng ý assumption✅ Đã chốt
QN-4.15.1-04🟡 Gateway Forex — input ghi**"MT5 Manager API or TraderEvolution Admin API - Live Sub Account under Forex Omnibus corporate account"**. Source (v7_full.txt) cho thấy đây thực chất là 2 layer riêng: (a) trader có sub-account riêng ST_LIVE_[ID] trên MT5/TraderEvolution, (b) lệnh route qua YourBourse Bridge và settle tại Omnibus corporate account của Stack Trading ở Forex.com/IBKR (layer LP, không phải "nằm dưới" sub-account MT5). Input hiện tại gộp 2 layer thành 1 câu — có cần viết tách rõ 2 layer trong SRS cho chính xác, hay giữ nguyên câu ngắn gọn như input?Viết tách rõ 2 layer (không đổi business logic, chỉ chính xác hoá kiến trúc): trader sub-accountST_LIVE_[ID] → route qua YourBourse Bridge → settle tại Omnibus corporate account (Forex.com/IBKR).ok✅ Đã chốt
QN-4.15.1-05🟡MT5 flatten mechanism cho LIVE — có plugin riêng không? SIM UC_4.10.1 (BR_4.10.1.4) ghi "C++ MT5 Plugin (Sotatek-built) → flattens positions" cho MT5. Research không tìm thấy tên plugin này trong source — plugin flatten thực tế trong source là YourBourse Contest Stop Out (vendor-built, vendor-cài trên MT5 White Label server; Sotatek chỉ build C++ SDK wrapper qua P/Invoke để gọi Manager API, không phải build plugin flatten). Nếu QN-4.15.1-01 xác nhận LIVE Soft Breach không flatten position thì câu hỏi này moot cho UC này — nhưng cần biết: (a) MT5 LIVE 'Disable/Read-Only' đủ để enforce Read-Only mà không cần gọi plugin nào thêm? (b) Có nên sửa luôn label "Sotatek-built" ở UC_4.10.1 (SIM) vì có vẻ ghi sai nguồn?Nếu QN-4.15.1-01 chốt "không flatten" → câu này moot, chỉ cần "MT5 Manager API 'Disable/Read-Only'" là đủ cho UC_4.15.1, không cần mention plugin flatten. Việc sửa label ở UC_4.10.1 (SIM) đề xuất để riêng, không xử lý trong UC này.Không moot (QN-4.15.1-01 đã chốt "Có flatten positions"). (a) Không đủ. Theo QnA confirmed STAGE2-019 (Adrian Stack, 2026-07-20 — override RFQ V7): "the MT5 stop-out plugin has configurable failsafes to liquidate forcefully. Sotatek is scoped for building this plugin as a C++ MT5 plugin (not a third-party YourBourse plugin)". Lock (MT5 Manager API 'Disable/Read-Only') và Flatten (C++ MT5 Plugin — Sotatek-built) là 2 cơ chế tách biệt — Disable/Read-Only chỉ chặn order mới, không tự force-close position đang mở. UC_4.15.1 cần viết cả 2 bước, đồng bộ 100% với BR_4.10.1.4 (SIM): "API: MT5 Manager API 'Disable/Read-Only'" + "Flatten: C++ MT5 Plugin (Sotatek-built)". (b) Không sửa — label "Sotatek-built" ở UC_4.10.1 (SIM) đúng theo QnA confirmed, không phải lỗi ghi nguồn. (Source: QnA_STAGE2_DASHBOARD_EVALUATION.md STAGE2-019 ★★★ — thắng RFQ_ Stack Trading Prop Tech V7.pdf §2.2)✅ Đã chốt
QN-4.15.1-06🟡Auth0/dashboard login account có tách biệt với trading account cho LIVE không? SIM UC_4.10.1 khẳng định rõ: dashboard login KHÔNG bị ảnh hưởng khi Soft Lock (trader vẫn xem được dashboard/chart/P&L). Không tìm thấy câu tương tự ghi riêng cho LIVE trong source — nhưng kiến trúc chung (Auth0 session, endpoint "Set Account State" chỉ tác động execution gateway) là environment-agnostic. Xác nhận statement này áp dụng y hệt cho LIVE?Có — áp dụng y hệt SIM: Auth0/dashboard session không bị ảnh hưởng, chỉ trading/execution account bị Read-Only.Có, y hệt — REF thẳng tới UC_4.10.1 §4 Post-conditions, không viết lại.✅ Đã chốt
QN-4.15.1-07🟢Daily_PnL/Net_P&L của LIVE có loại trừ fee/commission/swap không? SIM đã confirm (QN-4.10.1-03): Net_P&L KHÔNG trừ fee/commission (tính riêng), lấy từ ACCOUNT_METRICS/POSITION_METRICS. Với LIVE (tiền thật), swap/rollover fee có ảnh hưởng thực tế hơn SIM — xác nhận LIVE dùng cùng định nghĩa (không trừ fee vào Net_P&L dùng để check breach) hay LIVE cần cộng thêm swap vào P&L check breach?Dùng cùng định nghĩa như SIM:Net_P&L/Daily_PnL dùng để check breach không bao gồm fee/commission/swap — các phí này tracked riêng, không ảnh hưởng threshold check.Tương tự SIM — REF thẳng tới UC_4.10.1 §2 Trigger — Net P&L definition, không viết lại.✅ Đã chốt
QN-4.15.1-08🟢**[PATTERN] Formula notation — có nên viết qua biến trung gian Daily_Loss_Limit như SIM không?** Input viết trực tiếp Daily_PnL <= Market_loss_when_stopped / 3. SIM UC_4.10.1 viết qua biến trung gian: Daily_Loss_Limit = Absolute_Stop_Loss × Daily_Loss_Ratio (Table C, 1/3) rồi mới Net_P&L <= −Daily_Loss_Limit. Cùng giá trị toán học, chỉ khác cách trình bày (source rõ ràng hơn qua Table C). Có nên viết LIVE theo cùng pattern (Daily_Loss_Limit = Market_Loss_When_Stopped × Daily_Loss_Ratio) để đồng bộ SIM + trace được về Table C, thay vì hard-code "/3"?Có — viết theo cùng pattern với SIM để đồng bộ format + trace nguồn Table C rõ ràng, giá trị không đổi (1/3 = Daily_Loss_Ratio).Ok — dùng pattern Daily_Loss_Limit = Market_Loss_When_Stopped × Daily_Loss_Ratio (khác SIM chỉ ở biến Market_Loss_When_Stopped thay cho Absolute_Stop_Loss; Daily_Loss_Ratio = 1/3, Table C, giống SIM 100%).✅ Đã chốt

Changelog

DateVersionUpdated itemBeforeAfterNotes
2026-08-17v1Initial creation8 QnA itemsInit Flow Step 1+2 — challenged against UC_4.10.1 (SIM), zapier_v7_full.txt Table A/B/C, v7_full.txt gateway sections, and QnA_STAGE2_SETTINGS_CAREER_VIRAL_EN.md (LUC-FRM-01) / QnA_STAGE2_FAILURE_AND_RECOVERY.md (FR-02)
2026-08-18v1.1All 8 QnA items — Status column⏳ Chờ BA (all)✅ Đã chốt (all)BA (Huyen Dinh) đã trả lời toàn bộ QnA trực tiếp trong chat. BA directive bổ sung: LIVE Soft Lock giống SIM Soft Lock 100% về flow/architecture, chỉ khác công thức threshold (Market_Loss_When_Stopped thay cho Absolute_Stop_Loss) — mọi phần giống SIM khi viết SRS PHẢI reference tới UC_4.10.1, không viết lại nội dung. Đã bổ sung anchor-link REF cho QN-01, 06, 07, 08.

On this page