Ένα backtest απέδωσε 20% σε ετησιοποιημένη βάση. Χρησιμοποίησε 8 χρόνια δεδομένων, 1,640 συναλλαγές και έναν καθαρό διαχωρισμό walk-forward. Έπειτα αντικαταστήσαμε το σημερινό ιστορικό του προμηθευτή με τις τιμές που είχαν καταγραφεί τότε, και το πλεονέκτημα έπεσε στο 3%.
Ο απρόσμενος αριθμός δεν ήταν η αρχική απόδοση. Ήταν οι 17 ποσοστιαίες μονάδες που εξαρτώνταν από αναθεωρημένα δεδομένα. Αυτή η εκ των υστέρων γνώση μπορεί να κρύβεται σε οικονομικές ανακοινώσεις, εταιρικά θεμελιώδη μεγέθη, σύνθεση δεικτών, ακόμη και σε φαινομενικά απλά πεδία αγοράς. Τα ιστορικά δεδομένα δείχνουν τι αναφέρει τώρα η πηγή. Ένα σύνολο δεδομένων point-in-time δείχνει τι θα μπορούσε να γνωρίζει τότε η στρατηγική σας.
Γιατί μπορεί να αλλάξουν τα ιστορικά δεδομένα μετά το γεγονός;
Ορισμένες τιμές δημοσιεύονται πρώτα ως εκτιμήσεις και διορθώνονται αργότερα. Ένα οικονομικό στατιστικό που ανακοινώνεται την Παρασκευή μπορεί να αναθεωρηθεί τον επόμενο μήνα. Μια εταιρεία μπορεί να αναδιατυπώσει ένα μέγεθος κερδών. Ένας προμηθευτής δεδομένων μπορεί να διορθώσει μια λανθασμένη καταγραφή, να συμπληρώσει ένα χρονικό διάστημα που έλειπε ή να αντικαταστήσει μια προκαταρκτική τιμή με την οριστική. Μια βάση δεδομένων που αποθηκεύει μόνο την πιο πρόσφατη τιμή κάνει όλες αυτές τις αλλαγές να φαίνονται σαν να ίσχυαν ανέκαθεν.
Αυτό έχει σημασία όταν μια στρατηγική κατατάσσει εταιρείες με βάση τα ανακοινωμένα έσοδα ή συναλλάσσεται σε μια αγορά μετά από προγραμματισμένη ανακοίνωση δεδομένων. Αν δει τον διορθωμένο αριθμό μήνες νωρίτερα, το backtest τής έχει δώσει πληροφορίες που δεν υπήρχαν στην αγορά τη στιγμή της απόφασης. Ο υπολογισμός του σήματος μπορεί να είναι άψογος· η είσοδός του, όμως, προέρχεται από λάθος εκδοχή της ιστορίας.
Εδώ υπάρχει μια εύκολη παγίδα: ένα πεδίο με όνομα date συνήθως περιγράφει την περίοδο που καλύπτει μια τιμή, όχι το πότε έγινε διαθέσιμη. Μια γραμμή τριμηνιαίων εσόδων με ημερομηνία 31 Μαρτίου μπορεί να δημοσιεύτηκε μόλις τον Μάιο. Η ετικέτα αφορά την περίοδο της επιχειρηματικής δραστηριότητας, όχι το σύνολο πληροφοριών που είχε στη διάθεσή της η στρατηγική.
Ποια χρονική σήμανση πρέπει να χρησιμοποιεί ένα backtest;
Παρακολουθήστε ξεχωριστά την περίοδο ισχύος της τιμής και τον χρόνο διαθεσιμότητάς της. Όπου είναι δυνατόν, κρατήστε επίσης τον χρόνο δημοσίευσης και τον χρόνο εισαγωγής στο σύστημα. Η στρατηγική μπορούσε να χρησιμοποιήσει μια τιμή μόνο αφότου δημοσιεύτηκε και την έλαβε το σύστημα· αν οι χρόνοι διαφέρουν, χρησιμοποιήστε τον μεταγενέστερο για μια συντηρητική αναπαράσταση.
| Χρονική σήμανση | Τι περιγράφει | Σε τι χρησιμεύει |
|---|---|---|
| Χρόνος ισχύος | Την περίοδο ή το γεγονός στο οποίο αναφέρεται η τιμή | Ομαδοποιεί τις παρατηρήσεις με βάση αυτό που μετράται |
| Χρόνος δημοσίευσης | Πότε η πηγή δημοσίευσε αυτή την έκδοση | Δεν επιτρέπει να εμφανιστεί μια ανακοίνωση πριν υπάρξει |
| Χρόνος εισαγωγής | Πότε το σύστημά σας έλαβε την έκδοση | Καταγράφει καθυστερήσεις παράδοσης και καθυστερημένες συμπληρώσεις |
Για παράδειγμα, ας υποθέσουμε ότι οι τριμηνιαίες πωλήσεις μιας εταιρείας αφορούν την περίοδο Ιανουαρίου έως Μαρτίου, ανακοινώνονται στις 8 Μαΐου στις 16:15 ώρα Ανατολικής Ακτής και φτάνουν στο ερευνητικό σας αποθετήριο στις 16:17. Μια στρατηγική που αποφασίζει στο κλείσιμο της 8ης Μαΐου δεν μπορεί να χρησιμοποιήσει αυτή την ανακοίνωση, αν η απόφαση στο κλείσιμο πάρθηκε στις 16:00. Μια στρατηγική που αποφασίζει το επόμενο πρωί μπορεί. Η ημερομηνία λήξης του τριμήνου από μόνη της δεν απαντά σε καμία από τις δύο ερωτήσεις.
Πώς ελέγχω αν οι αναθεωρήσεις καθορίζουν το αποτέλεσμα;
Εκτελέστε την ίδια στρατηγική δύο φορές: μία με την έκδοση των δεδομένων που ήταν διαθέσιμη σε κάθε ιστορική στιγμή απόφασης και μία με το πιο πρόσφατο αναθεωρημένο ιστορικό. Κρατήστε σταθερές τις παραδοχές εκτέλεσης, το σύμπαν και τον κώδικα. Η διαφορά είναι αποτέλεσμα ευαισθησίας στις αναθεωρήσεις, όχι σύγκριση νέων στρατηγικών.
Έπειτα εξετάστε από πού προκύπτει η διαφορά. Αλλάζει η απόδοση τις ημέρες των ανακοινώσεων; Συγκεντρώνονται οι μεγαλύτερες αποκλίσεις σε λίγες εταιρείες με αναδιατυπωμένα στοιχεία ή σε διορθωμένες παρατηρήσεις; Συναλλάσσεται η στρατηγική πριν από τον σχετικό χρόνο δημοσίευσης; Ένας μικρός έλεγχος σε επίπεδο γεγονότων συχνά εξηγεί περισσότερα από ένα ακόμη διάγραμμα σωρευτικών αποδόσεων.
Αυτοί οι αριθμοί είναι ενδεικτικοί, όχι καθολική επιβάρυνση. Το χρήσιμο αποτέλεσμα είναι μια αντιστοιχισμένη σύγκριση για τη δική σας στρατηγική, με τις ίδιες συναλλαγές και κόστη όπου είναι δυνατόν. Αν η αναθεωρημένη έκδοση αποδίδει πολύ καλύτερα, βρείτε ποια πεδία και ημερομηνίες εξηγούν τη διαφορά πριν εμπιστευτείτε το εντυπωσιακό αποτέλεσμα του backtest.
Τι πρέπει να καταγράφει ένας έλεγχος δεδομένων point-in-time;
Ξεκινήστε από τα πεδία που χρησιμοποιεί πράγματι η στρατηγική σας. Για καθένα, εντοπίστε την πηγή, τη σημασία της χρονικής σήμανσης, την πολιτική αναθεώρησης και το αν μπορούν να ανακτηθούν προηγούμενες εκδόσεις. Ρωτήστε τον προμηθευτή πώς αναπαριστώνται οι διορθώσεις: με αντικατάσταση γραμμών, με νέες γραμμές έκδοσης ή με ξεχωριστό αρχείο καταγραφής ελέγχου. Η ένδειξη «ιστορικά δεδομένα» σε μια σελίδα προϊόντος δεν αρκεί για να απαντηθεί το ερώτημα.
- Αποθηκεύστε κάθε έκδοση μαζί με τη χρονική σήμανση δημοσίευσης ή πρώτης διαθεσιμότητάς της.
- Συνδέστε τα χαρακτηριστικά με τις αποφάσεις βάσει του χρόνου διαθεσιμότητας, όχι των ετικετών περιόδου.
- Κρατήστε ένα παγωμένο στιγμιότυπο ή μια έκδοση της πηγής για αναπαραγώγιμες εκτελέσεις.
- Επισημάνετε τιμές που φτάνουν καθυστερημένα, αναθεωρούνται ή δεν έχουν αξιόπιστο ιστορικό.
Κρατήστε το πεδίο εφαρμογής πρακτικό. Αν η στρατηγική σας χρησιμοποιεί μόνο συναλλαγές και μπάρες χρηματιστηρίου, οι αναθεωρήσεις οικονομικών δεδομένων μπορεί να μην την επηρεάζουν. Ωστόσο, οι διορθώσεις σε μπάρες και οι αναδρομικές συμπληρώσεις από προμηθευτές μπορεί να έχουν σημασία, ειδικά όταν ένα σήμα εξαρτάται από αγορά χαμηλής ρευστότητας ή από ένα ακριβώς ορισμένο χρονικό παράθυρο.
Όταν δεν υπάρχει διαθέσιμο ιστορικό point-in-time
Μην αντιμετωπίζετε σιωπηρά τη σημερινή τιμή ως χθεσινή. Καταγράψτε το πεδίο ως περιορισμό, εξαιρέστε το από ισχυρισμούς που εξαρτώνται από την ιστορική διαθεσιμότητα ή εφαρμόστε μια συντηρητική καθυστέρηση και δείξτε πόσο αλλάζει το αποτέλεσμα. Ένα υποκατάστατο με καθυστέρηση μπορεί να φανεί χρήσιμο στην έρευνα, αρκεί η καθυστέρηση να δηλώνεται ρητά και ο περιορισμός να συνοδεύει το αποτέλεσμα.
Σκοπός του backtest είναι να ανασυνθέσει μια απόφαση με βάση τις πληροφορίες που υπήρχαν τότε. Αν τα δεδομένα σας εμφανίζουν μόνο την πιο πρόσφατη έκδοση, το συμπέρασμα έχει όριο: μπορεί να ελέγξει τη στρατηγική απέναντι στο σημερινό ανασυντεθειμένο ιστορικό, αλλά δεν μπορεί να αποδείξει ακριβώς τι θα μπορούσε να έχει δει ένας ιστορικός παράγοντας.
← Όλα τα άρθρα

