Backtest Integrity Lab
แพลตฟอร์มข้อมูลปลีกแสดงค่า Sharpe หรือกำไรสุทธิของ backtest และหยุดตรงนั้น สถาบันไม่เคยเชื่อ backtest แบบธรรมชาติ — พวกเขาถามว่าผลลัพธ์นั้นรอดชีวิตหรือไม่ การแก้ไขสำหรับการเลือกอคติและจำนวนของการกำหนดค่าที่พยายาม. Backtest Integrity Lab นำการตรวจสอบนั้นมาที่ cMind. มันคือ คณิตศาสตร์ที่กำหนดได้ (ไม่มี AI, ไม่มีการโทรภายนอก) ดังนั้นคำพิพากษาจึงสามารถทำซ้ำได้และตัวเลขทุกตัวสามารถอธิบายได้.
เปิดที่ cBots → Integrity (/quant/integrity).
What it computes
ให้ชุดของอัตราผลตอบแทน (หรือเส้นโค้งส่วนของผู้ถือหุ้น/ยอดคงเหลือ) และจำนวนของชุดพารามิเตอร์ที่คุณพยายามเพื่อให้ได้มาซึ่งมัน ตัววิเคราะห์จะรายงาน:
- Sharpe ratio — ต่องวดเวลาและต่อปี (square-root-of-time).
- Probabilistic Sharpe Ratio (PSR) — ความเชื่อมั่นว่า true Sharpe เอาชนะเกณฑ์มาตรฐาน โดยคำนึงถึงความยาวของบันทึกประวัติ ความเบ้ และความเบื้องต้น (Bailey & López de Prado, 2012). บันทึกที่สั้นหรือมีหางอ้วนจะทำให้มันลดลง.
- Deflated Sharpe Ratio (DSR) — PSR วัดเทียบกับ เกณฑ์มาตรฐานที่ยบ: Sharpe ที่คุณคาดว่าจะได้รับจาก ดีที่สุดของ N ทดลองแบบสุ่ม ภายใต้ null (False Strategy Theorem). ยิ่งมีการกำหนดค่าที่คุณลองมากเท่าไหร่ บาร์ก็ยิ่งสูงขึ้น — นี่คือสิ่งที่จับ overfitting.
- t-statistic ของอัตราผลตอบแทนเฉลี่ย. ตามที่ Harvey, Liu & Zhu กล่าว ข้อได้เปรียบที่แท้จริงควรมีค่าใหญ่ t ≥ 3.0 ไม่ใช่ 2.0 ตามหนังสือเรียน.
- Skewness / kurtosis ของผลตอบแทน ซึ่งเสริม PSR/DSR การแก้ไข.
The verdict
| Verdict | Meaning | Rule |
|---|---|---|
| Robust | ข้อได้เปรียบรอดชีวิตการทดลองที่คุณรัน. | DSR ≥ 95% and PSR ≥ 95% and |t| ≥ 3.0 |
| Fragile | มีความสามารถทางสถิติแต่ไม่น่าเชื่อถือพอ — อย่าโตขึ้นด้วยเพียงอย่างนี้เท่านั้น. | between the two |
| Overfit | น่าจะเป็นสิ่งประดิษฐ์ของการเลือกอคติ ไม่ใช่ข้อได้เปรียบที่แท้จริง. | DSR < 90% |
ผลลัพธ์ทั้งหมดมาพร้อมกับเหตุผลในภาษาอังกฤษธรรมชาติเพื่อให้ "เหตุใด" ไม่เคยซ่อนอยู่.
Probability of Backtest Overfitting (across trials)
การป้อนจำนวนการทดลอง count นั้นดี การป้อน ชุดของข้อมูลนอกตัวอย่างจากการกำหนดค่าทุกการกำหนดค่าที่คุณลองมา จะดีกว่า. วางลงในตารางการทดลอง trial grid ที่เป็นทางเลือก (ชุดหนึ่งต่อบรรทัด) และ cMind รัน Combinatorially-Symmetric Cross-Validation (Bailey, Borwein, López de Prado & Zhu, 2015): มันแบ่งการสังเกตออกเป็นกลุ่ม และสำหรับการเลือกครึ่งหนึ่งในตัวอย่างในแต่ละวิธี มันเลือกการกำหนดค่าที่ดีที่สุดในตัวอย่างและตรวจสอบว่าผู้ชนะนั้นลงจอดในครึ่งล่างหรือไม่ นอกตัวอย่าง. Probability of Backtest Overfitting (PBO) คือส่วนของการแบ่งที่ผู้ชนะไม่สามารถทำให้ทั่วไปได้. PBO ใกล้เคียง 0 หมายความว่าการกำหนดค่าที่ดีที่สุดนั้นเป็นสิ่งที่ดีที่สุดจริง ๆ; PBO 0.5 หรือมากกว่านั้นหมายความว่ากระบวนการเลือกของคุณกำลังเลือกสัญญาณรบกวน — คำพิพากษาจึงกลาย Overfit ไม่ว่าผู้ชนะจะดูดีแค่ไหน.
POST /api/quant/pbo
{ "trials": [[...], [...], ...] }
เมื่อ optimizer ของ cTrader Console แบบดั้งเดิมถึงมา cMind จะป้อนพื้นผิวการทดลองแบบเต็มของมันที่นี่โดยอัตโนมัติ.
Trials — the number that matters
Trials คือ จำนวนชุดพารามิเตอร์ที่คุณทดสอบ ก่อนที่จะเลือกชุดนี้. การทดสอบกลยุทธ์หนึ่งและการทดสอบสิบพันและการเก็บรักษาที่ดีที่สุดนั้นแตกต่างกันอย่างมาก: อันที่สองสร้าง Sharpe ในตัวอย่างสูงโดยบังเอิญ. การป้อนจำนวนการทดลองที่ซื่อสัตย์นั้นเป็นประเด็นทั้งหมด — มันเพิ่มการยบ และสามารถย้ายการ backtest "ยอดเยี่ยม" ไปยัง Overfit. เมื่อ optimizer ของ cTrader Console แบบดั้งเดิมถึงมา cMind จะป้อนขนาดกริดจริงของการกวาดโลกของมันโดยอัตโนมัติ.
Inputs
- Periodic returns — ตัวเลขหนึ่งต่องวดเวลา (เช่น
0.01= +1%). อย่างน้อยสอง. ฟิลด์จะตรวจสอบความถูกต้องเมื่อคุณพิมพ์: จะนับตัวเลขที่ถูกต้อง ธงโทเค็นใด ๆ ที่ไม่ใช่ตัวเลข และจะเปิดใช้งาน Analyze เท่านั้นหลังจากมีค่าที่สะอาดอย่างน้อยสองค่า (ตารางการทดลองเปิดใช้งาน Assess overfitting เมื่อชุดสองชุดจำนวนบวกสี่บวกแต่ละชุดพร้อม). - Equity / balance curve — cMind ได้มาจากผลตอบแทนธรรมชาติแบบต่อเนื่องสำหรับคุณ.
- Straight from a backtest run — no copy-paste. backtest ที่เสร็จสิ้นทุก ๆ ตัวแสดงเกะเก้า Check backtest integrity ไอคอนในแถว Backtest list และในมุมมองรายละเอียดอินสแตนซ์ของมัน; คลิกเดียวรันแลบจากเส้นโค้งส่วนของผู้ถือหุ้นที่จัดเก็บของการรันนั้นและแสดงคำพิพากษาในการสนทนา. ไอคอนจะปิดใช้งานจนกว่า backtest จะเสร็จสิ้นและสร้างรายงาน ดังนั้นจึงไม่เคยเป็นการควบคุมที่ตายแล้ว. ภายใต้หลังคา นี่คือ
POST /api/quant/integrity/backtest/{instanceId}ซึ่งอ่านเส้นโค้งส่วนของผู้ถือหุ้นของรายงานที่จัดเก็บ.
API
POST /api/quant/integrity
{ "returns": [0.006, 0.004, 0.006, ...], "trials": 250 }
ส่งกลับคำพิพากษา เมตริกทั้งหมด และเหตุผล. POST /api/quant/integrity/backtest/{id} รันการวิเคราะห์เดียวกันบน backtest ที่เสร็จสิ้นซึ่งคุณเป็นเจ้าของ.
Why it is reliable
สถิติเป็นฟังก์ชันบริสุทธิ์ในแกนโดเมน (Core.Quant) ที่มีการพึ่งพิงโครงสร้างพื้นฐานเป็นศูนย์ — พวกเขาไม่สามารถถูกดึงลงมาด้วยความผันผวนของเครือข่าย และพวกเขาได้รับการตรึง ด้วยทดสอบหน่วยเวกเตอร์ทองคำต่อสูตรที่เผยแพร่. ซีดีเอฟปกติ/ผกผันเป็นการประมาณแบบปิด (Abramowitz-Stegun / Acklam) ดังนั้นอินพุตเดียวกันจะให้คำพิพากษาเดียวกันเสมอ.