Skip to main content

Backtest Integrity Lab

Οι πλατφόρμες λιανικής εμπορίας σας δείχνουν το Sharpe ενός backtest ή το καθαρό κέρδος και σταματούν εκεί. Τα ιδρύματα δεν εμπιστεύονται ποτέ έναν ακατέργαστο backtest — ρωτούν εάν το αποτέλεσμα επιβιώνει διόρθωση για την προκατάληψη επιλογής και τον αριθμό των διαμορφώσεων που δοκιμάσατε. Το Backtest Integrity Lab φέρνει αυτόν τον έλεγχο στο cMind. Είναι προσδιοριστικά μαθηματικά (χωρίς AI, χωρίς εξωτερικές κλήσεις), επομένως το verdict είναι αναπαραγώγιμο και κάθε αριθμός είναι εξηγήσιμος.

Ανοίξτε το στο cBots → Integrity (/quant/integrity).

Τι υπολογίζει​

Δεδομένης μιας σειράς αποδόσεων (ή μιας καμπύλης κεφαλαίου/υπολοίπου) και του αριθμού των σετ παραμέτρων που δοκιμάσατε για να φτάσετε σε αυτό, ο αναλυτής αναφέρει:

  • Sharpe ratio — ανά περίοδο και ετησιοποιημένο (τετραγωνική ρίζα χρόνου).
  • Probabilistic Sharpe Ratio (PSR) — η εμπιστοσύνη ότι το πραγματικό Sharpe ξεπερνά το benchmark, λαμβάνοντας υπόψη το μήκος του ιστορικού, την ασυμμετρία και την κύρτωση (Bailey & López de Prado, 2012). Ένα σύντομο ή με παχιές ουρές ιστορικό το χαμηλώνει.
  • Deflated Sharpe Ratio (DSR) — PSR μετρημένο ενάντια σε ένα εκλυμένο benchmark: το Sharpe που θα περίμενε κανείς από τα καλύτερα από N τυχαία δοκιμές κάτω από την μηδενική υπόθεση (το False Strategy Theorem). Όσο περισσότερες διαμορφώσεις δοκιμάσατε, τόσο υψηλότερη η πλατφόρμα — αυτό είναι αυτό που πιάνει την υπερπροσαρμογή.
  • t-statistic της μέσης απόδοσης. Ακολουθώντας τον Harvey, Liu & Zhu, ένα γνήσιο edge θα πρέπει να ξεπερνά t ≥ 3.0, όχι το σχολικό 2.0.
  • Ασυμμετρία / κύρτωση των αποδόσεων, οι οποίες τροφοδοτούν τις διορθώσεις PSR/DSR.

Το verdict​

VerdictΣημασίαΚανόνας
RobustΤο edge επιβιώνει τις δοκιμές που έτρεξαν.DSR ≥ 95% και PSR ≥ 95% και |t| ≥ 3.0
FragileΣτατιστικά ζωντανό αλλά όχι πειστικό — μην μεγενθύνετε σε αυτό μόνο του.μεταξύ των δύο
OverfitΠιθανότατα ένα τεχνούργημα της προκατάληψης επιλογής, όχι ένα πραγματικό edge.DSR < 90%

Κάθε αποτέλεσμα φέρει μια απλή αιτιολόγηση στα ελληνικά, ώστε το "γιατί" να μην κρύβεται ποτέ.

Probability of Backtest Overfitting (ανά δοκιμές)​

Η τροφοδοσία ενός αριθμού δοκιμών είναι καλή. η τροφοδοσία της πραγματικής σειράς out-of-sample κάθε διαμόρφωσης που δοκιμάσατε είναι καλύτερη. Επικολλήστε τα στο προαιρετικό trial grid (μία σειρά ανά γραμμή) και το cMind εκτελεί Combinatorially-Symmetric Cross-Validation (Bailey, Borwein, López de Prado & Zhu, 2015): χωρίζει τις παρατηρήσεις σε ομάδες, και για κάθε τρόπο επιλογής του μισού ως in-sample επιλέγει τη διαμόρφωση in-sample του καλύτερου και ελέγχει εάν αυτός ο νικητής προσγειώνεται στο κάτω ήμισυ out-of-sample. Η Probability of Backtest Overfitting (PBO) είναι το κλάσμα των διαχωρισμών όπου ο νικητής απέτυχε να γενικεύσει. Ένα PBO κοντά στο 0 σημαίνει ότι η καλύτερη διαμόρφωση είναι πραγματικά η καλύτερη· ένα PBO 0,5 ή υψηλότερο σημαίνει ότι η διαδικασία επιλογής σας επιλέγει θόρυβο — το verdict γίνεται Overfit ανεξάρτητα από το πόσο καλό φαινόταν ο νικητής.

POST /api/quant/pbo
{ "trials": [[...], [...], ...] }

Όταν ο εγγενής cTrader Console optimizer προσγειωθεί, το cMind θα τροφοδοτήσει την πλήρη επιφάνεια δοκιμών του εδώ αυτόματα.

Trials — ο αριθμός που μετράει​

Trials είναι πόσα σετ παραμέτρων δοκιμάσατε πριν επιλέξετε αυτό. Η δοκιμή μιας στρατηγικής και η δοκιμή δέκα χιλιάδων και η διατήρηση της καλύτερης είναι εξαιρετικά διαφορετικά πράγματα: το δεύτερο κατασκευάζει ένα υψηλό in-sample Sharpe τυχαία. Η τροφοδοσία του ειλικρινούς αριθμού δοκιμών είναι ολόκληρο το σημείο — αυξάνει την αποπληθωρίζουσα και μπορεί να μετακινήσει έναν "εξαιρετικό" backtest σε Overfit. Όταν ο εγγενής cTrader Console optimizer προσγειωθεί, το cMind το τροφοδοτεί το πραγματικό μέγεθος πλέγματος της σάρωσης αυτόματα.

Inputs​

  • Periodic returns — ένας αριθμός ανά περίοδο (π.χ. 0.01 = +1%). Τουλάχιστον δύο. Το πεδίο επικυρώνει καθώς πληκτρολογείτε: μετράει τους έγκυρους αριθμούς, σημαίνει οποιοδήποτε token που δεν είναι αριθμός, και ενεργοποιεί μόνο το Analyze αφού υπάρχουν τουλάχιστον δύο καθαρές τιμές (το trial grid ενεργοποιεί το Assess overfitting αφού υπάρχουν δύο σειρές με τέσσερα ή περισσότερα νούμερα κάθε μία).
  • Equity / balance curve — το cMind παράγει τις διαδοχικές απλές αποδόσεις για εσάς.
  • Ευθέως από ένα backtest run — καμία αντιγραφή-επικόλληση. Κάθε ολοκληρωμένο backtest εκθέτει ένα shield Check backtest integrity icon στη σειρά της λίστας Backtest και στην προβολή λεπτομερειών της παρουσίας του· ένα κλικ εκτελεί το Lab στην αποθηκευμένη καμπύλη κεφαλαίου αυτής της εκτέλεσης και εμφανίζει το verdict σε ένα διάλογο. Το εικονίδιο απενεργοποιείται έως ότου ο backtest ολοκληρωθεί και παράγει μια αναφορά, επομένως δεν είναι ποτέ ένα νεκρό control. Κάτω από το κάλυμμα αυτό είναι POST /api/quant/integrity/backtest/{instanceId}, το οποίο διαβάζει την αποθηκευμένη καμπύλη κεφαλαίου της αναφοράς.

API​

POST /api/quant/integrity
{ "returns": [0.006, 0.004, 0.006, ...], "trials": 250 }

Επιστρέφει το verdict, όλες τις μετρήσεις και την αιτιολόγηση. POST /api/quant/integrity/backtest/{id} εκτελεί την ίδια ανάλυση σε ένα ολοκληρωμένο backtest που κατέχετε.

Γιατί είναι αξιόπιστο​

Τα στατιστικά είναι καθαρές συναρτήσεις στον πυρήνα του τομέα (Core.Quant) με μηδενικές εξαρτήσεις υποδομής — δεν μπορούν να αποσυρθούν από ένα δίχτυο, και καρφιτσώνονται από χρυσές δοκιμές μονάδων διανύσματος ενάντια στους δημοσιευμένους τύπους. Το κανονικό CDF/inverse είναι κλειστές προσεγγίσεις φόρμας (Abramowitz-Stegun / Acklam), επομένως οι ίδιες είσοδοι παράγουν πάντα το ίδιο verdict.