Ο νόμος της αποδοχής του Quant: Αν το post-change PnL είναι πάνω, ήταν η αλλαγή. Ο νόμος της αποδοχής του Quant: Αν το post-change PnL είναι πάνω, ήταν η αλλαγή. Εργάζομαι στην ποσοτική διαπραγμάτευση και δημιουργώ πλήρως αυτοματοποιημένα ερευνητικά περιβάλλοντα και συστήματα διαπραγμάτευσης που με βοηθούν να προχωρήσω από τα δεδομένα της αγοράς στις στρατηγικές διαπραγμάτευσης παραγωγής στην ανάλυση απόδοσης.Μια από τις βασικές απαιτήσεις τέτοιων συστημάτων είναι να μπορέσω να δοκιμάσω γρήγορα τις ιδέες μου και να επαναλάβω γρήγορα για να βελτιώσω τη συνολική απόδοση των συναλλαγών. Είναι μια πολύ προφανής μέτρηση για να πω αν κάνω καλύτερα από πριν ή όχι. PnL Εάν έχετε εκτελέσει ποτέ μια στρατηγική ζωντανής συναλλαγών, θα γνωρίζετε αυτό το καθημερινό τελετουργικό: ανοίξτε πίνακες παρακολούθησης για να ελέγξετε τις πληρωμές, τις καθυστερήσεις, το απόθεμα και - αναπόφευκτα - να δείτε το PnL. Αυτό το διάγραμμα είναι δελεαστικό καθώς είναι ο τελικός πίνακας αποτελεσμάτων που συνοψίζει πόσο επιτυχημένη είναι η επιχείρηση. Οι αγορές είναι μη σταθερές, ο όγκος των πληρωμών, τα καθεστώτα μετατόπισης της μεταβλητότητας, οι μεταβολές της μικροδομής και η κατανομή των αποτελεσμάτων είναι λιπαρή. fool yourself Αυτό το άρθρο δίνει μια Δείτε πώς να αντικαταστήσετε το PnL-chasing με Έτσι, ο κύκλος επανάληψης λαμβάνει περισσότερα σήματα ανά μονάδα χρόνου. practical statistical hypothesis testing Γιατί το PnL είναι μια θορυβώδης μετρική Το PnL είναι ένα από πολλά τυχαία συστατικά: Συγκεντρωτικά Η καθημερινή σας διάσπαση PnL μπορεί να διπλασιαστεί σε μια μέρα ειδήσεων, ακόμη και αν το σύστημά σας είναι αμετάβλητο. Το χρονοδιάγραμμα των μικροδευτερολέπτων, η θέση της ουράς, τα επίπεδα αμοιβών, η αλληλεπίδραση κρυμμένη έναντι φωτεινής - όλα ενέχουν τυχαίοτητα στα αποτελέσματα των συναλλαγών. Μερικές πρώτες νίκες συνδυάζονται σε μεγαλύτερη νοητική έκθεση αργότερα (ή αντίστροφα), κάνοντας την καμπύλη να φαίνεται πειστική χωρίς να αλλάζει το υποκείμενο μέσο αποτέλεσμα ανά εμπόριο. Οι αλλαγές στα καπάκια αποθέματος, τα πλάτη αναφοράς, η εσωτερική διασταύρωση ή η δρομολόγηση μπορούν να μετακινήσουν το PnL σε αντίθετες κατευθύνσεις και να ακυρώσουν ή να ενισχύσουν το ένα το άλλο. Το PnL είναι ένας πολύ καλός στόχος για την παρακολούθηση της επιχείρησης, αλλά δεν είναι απαραίτητα μια κατάλληλη μετρική για την αποδοχή / απόρριψη αλλαγών έρευνας σε σύντομα παράθυρα. Τι εμείς Θέλουν να γνωρίζουν ΔΩ ΔΩ Όταν στέλνουμε μια αλλαγή (για παράδειγμα, ένα νέο χαρακτηριστικό στο σήμα, μια διαφορετική λογική αναφοράς, ένας διαφορετικός κανόνας εκτέλεσης), θέλουμε να απαντήσουμε: Η παρατηρούμενη βελτίωση είναι πιθανό να συνεχιστεί ή είναι κάτι που είδαμε τυχαία; Is the observed improvement likely to persist, or is it something we saw by chance? Αυτό μας φέρνει στον κόσμο των στατιστικών δοκιμών υποθέσεων, όπου αμφισβητούμε τη στατιστική σημασία των παρατηρούμενων αποτελεσμάτων. Αυτή η πιθανότητα είναι η Οι μικρές τιμές p σημαίνουν «αυτό θα ήταν σπάνιο αν δεν υπήρχε πραγματικό αποτέλεσμα». Under a world where the change to the true mean outcome, how often would we see a difference at least as large as what we observed? Τίποτα δεν κάνει p-value Τίποτα δεν κάνει Ένα πρακτικό παράδειγμα: δύο στρατηγικές Διαφορετικά αλλά δεν είναι Κοίτα Κοίτα Ας υποθέσουμε ότι έχουμε στείλει μια αλλαγή και πήραμε μερικές συναλλαγές σε μια στρατηγική πριν και μετά την αλλαγή (είτε από το backtest είτε από ζωντανή διαπραγμάτευση). Στρατηγική Α: Πριν από την αλλαγή Στρατηγική Β: Μετά την αλλαγή Παρακάτω έχω δημιουργήσει δύο συνθετικές σειρές PnL ανά εμπόριο. οι σωρευτικές γραμμές PnL Αλλά μπορούμε πραγματικά να εμπιστευτούμε αυτό που βλέπουμε και να βγάλουμε συμπεράσματα με βάση αυτό; Μετά από όλα, δεν είναι το PnL ο τελικός στόχος μιας στρατηγικής συναλλαγών; Θα δοκιμάσουμε αν το μέσο PnL ανά συναλλαγή διαφέρει πραγματικά, εκτελώντας ένα κοινό στατιστικό τεστ παρακάτω. diverge visibly Ο κώδικας που χρησιμοποίησα για να δημιουργήσω τα οικόπεδα και να εκτελέσω ένα στατιστικό τεστ είναι παρακάτω: import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy import stats import seaborn as sns sns.set(); rng = np.random.default_rng(49) # generate PnLs per trade n = 1200 pnl_A = rng.normal(loc=0.0, scale=1.0, size=n) pnl_B = rng.normal(loc=0.0, scale=1.0, size=n) # generate cumulative PnLs cum_A = pnl_A.cumsum() cum_B = pnl_B.cumsum() # run a statistical test t_stat, p_value = stats.ttest_ind(pnl_A, pnl_B, equal_var=False) print(f"mean_A={pnl_A.mean():.4f}, mean_B={pnl_B.mean():.4f}") print(f"Welch t-statistic={t_stat:.3f}, p-value={p_value:.3f}") plt.figure(figsize=(12,7)) plt.plot(np.arange(1, n+1), cum_A, label="Strategy A") plt.plot(np.arange(1, n+1), cum_B, label="Strategy B") plt.ylabel("Cumulative PnL", fontsize=15); plt.xlabel("Trade #", fontsize=15); plt.legend(["Cumulative PnL — Strategy A", "Cumulative PnL — Strategy B"], fontsize=15) plt.tight_layout(); plt.savefig("cumulative_pnl_A_vs_B.png", dpi=160); plt.show(); Ιδού οι αριθμοί που εκπέμπει: mean_A=0.0611, mean_B=0.0037 Welch t-statistic=1.380, p-value=0.168 Βλέπουμε τις δύο τυποποιημένες εξόδους μιας στατιστικής δοκιμής – μια στατιστική t και μια τιμή p. Θα πω περισσότερα γι’ αυτές πιο κάτω στην ιστορία. Για να πούμε ότι ο μέσος όρος ανά εμπόριο PnL διαφέρει. Ωστόσο οι δύο σωρευτικές γραμμές φαίνονται αρκετά μακριά. there is not enough evidence Τι ακριβώς συνέβη; (Αποκάλυψη της υπόθεσης δοκιμής) Προσωπικά, δεν μου άρεσε αυτή η προσέγγιση πολύ την πρώτη φορά που έμαθα για τη δοκιμή στατιστικών υποθέσεων, επειδή τα περισσότερα σεμινάρια δεν εξηγούν την ιδέα πίσω από αυτό και απλά σας επιτρέπουν να απομνημονεύσετε έναν τόνο πράγματα. Παρόλο που θα μπορούσα να δουλέψω με αυτό και να υπολογίσω μερικά αποτελέσματα ακολουθώντας τυφλά τον αλγόριθμο πώς να το κάνω και να κοιτάζω τα πράγματα σε τεράστιους πίνακες, η στιγμή που έμαθα τους μηχανισμούς για να το παράγω και από πού προέρχεται πραγματικά όλα ήταν μια μεγάλη ανακούφιση για μένα. 1) Το ερώτημα που θέτουμε Μηδενική υπόθεση (H0): ο πραγματικός μέσος όρος ανά συναλλαγή PnL είναι ο ίδιος πριν και μετά την αλλαγή. Εναλλακτική (H1): διαφέρουν (δύο πλευρές), ή ένα είναι μεγαλύτερο (μοναδικό), ανάλογα με την ερώτησή σας. 2) Τα στατιστικά στοιχεία που υπολογίζουμε Στον πυρήνα της, η είναι : t-statistic διαφορά στο δείγμα σημαίνει διαιρεμένη από το τυποποιημένο σφάλμα αυτής της διαφοράς. διαφορά στο δείγμα σημαίνει διαιρεμένη από το τυποποιημένο σφάλμα αυτής της διαφοράς. Εάν τα δύο δείγματα σημαίνουν ότι είναι μακριά , το t-stat γίνεται μεγάλο σε μέγεθος. Εάν είναι κοντά σε σχέση με τον θόρυβο, το t-stat είναι μικρό. Για το πόσο θορυβώδες είναι 3) Από πού προέρχεται η τιμή p Κάτω από το H0 (χωρίς πραγματική διαφορά), το t-στατιστικό ακολουθεί μια γνωστή κατανομή (α με κάποιο βαθμό ελευθερίας). Είναι απλά : t-distribution p-value η πιθανότητα, κάτω από το H0, να παρατηρήσετε ένα t-stat τουλάχιστον τόσο ακραίο (μεγάλη τιμή ενός t-stat) όσο αυτό που πήρατε. the probability, under H₀, of observing a t-stat at least as extreme (large value of a t-stat) as the one you got. Αυτά είναι όλα αυτά τα τραπέζια (τα οποία μπορεί να έχετε αντιμετωπίσει σε διαφορετικούς οδηγούς δοκιμών υποθέσεων) που κάνουν - Μικρή τιμή p σημαίνει ότι η παρατηρούμενη διαφορά σας θα ήταν σπάνια αν δεν υπήρχε πραγματικό αποτέλεσμα. looking up a quantile 4) Πώς να διαβάσετε τους πραγματικούς αριθμούς που παράγονται από τον παραπάνω κώδικα Python Εδώ είναι τι σας λένε αυτοί οι αριθμοί: t ≈ 1.380 λέει: η παρατηρούμενη διαφορά στο μέσο PnL ανά συναλλαγή μεταξύ Α και Β είναι 1.380 τυποποιημένα σφάλματα μακριά από το μηδέν. p ≈ 0.168 (δύο-πρόσωπο) λέει: αν δεν υπήρχε πραγματικά καμία διαφορά στα μέσα, θα δείτε μια διαφορά τουλάχιστον τόσο μεγάλη περίπου 16-17% του χρόνου τυχαία. 5) Γιατί οι χάρτες μας ξεγέλασαν Το σωρευτικό PnL είναι ένα Με χιλιάδες συναλλαγές, τα τυχαία βήματα διαχωρίζονται τακτικά από τα μάτια - ακόμη και αν τα μέσα είναι πανομοιότυπα.Ο εγκέφαλός μας είναι προσαρμοσμένος για να ανιχνεύσει κλίσεις και διαχωρισμούς, αλλά όχι πάρα πολύ για να ενσωματώσει τη διαφορά σωστά.Το τεστ t σας αναγκάζει να ζυγίσετε τη μέση διαφορά . random walk against the per-trade dispersion 6) Τι θα ήταν «σημαντικό» εδώ; Πρακτικά, θα δείτε την τιμή p στο 0,05 εάν το απόλυτο του t-στατιστικού είναι 1,96 (μόνο το 5% των πιθανών τιμών t-στατιστικών είναι πέρα από αυτό). Διατηρώντας τη διακύμανση και τη δομή μεγέθους δείγματος το ίδιο, θα χρειαστείτε περίπου 42% μεγαλύτερη μέση διαφορά (επειδή 1.96 / 1.38 ≈ 1.42) για να φτάσετε στο 5% διπλή γραμμή. «Αλλά το PnL είναι αυτό που πληρώνει τους λογαριασμούς». Δεν απορρίπτουμε το PnL, είμαστε : separating roles Το PnL σας λέει αν η επιχείρηση ως σύνολο λειτουργεί. Οι δοκιμές υπόθεσης σας λένε αν αυτή η συγκεκριμένη αλλαγή είναι πιθανό να βοηθήσει έξω από το δείγμα που μόλις είδατε. Όταν οι δύο διαφωνούν, έχετε μάθει κάτι: ίσως το περιβάλλον ήταν ασυνήθιστα ευνοϊκό, ίσως μια αλλαγή δρομολόγησης ενισχυμένη έκθεση, ίσως έχετε στείλει πολλαπλές αλλαγές. Η επίδραση . Αύξηση Πρότυπο εφαρμογής που συνιστώ (ταχεία επανάληψη χωρίς αυτο-απάτη) Το Per-trade PnL είναι καλό, σε στρατηγικές υψηλής συχνότητας / δημιουργίας αγοράς είναι συνηθισμένο να χρησιμοποιούνται συγκεντρώσεις όπως το per-interval PnL (π.χ. 1 λεπτό, 5 λεπτά) για να αντικατοπτρίζουν τα αποθέματα, τα τέλη και την συγκέντρωση κινδύνου - και να μειώσουν τη σειριακή συσχέτιση. For a mean-effect question, Welch’s t-test is a good default. If tails are very heavy or serial correlation is strong, switch to: Choose the statistic. (cluster by day, by venue, by symbol group), or Cluster-robust tests (label-shuffling), or Randomization / permutation tests (resample blocks to respect autocorrelation). Bootstrap Η προαιρετική διακοπή («θα κοιτάξουμε κάθε ώρα και θα στείλουμε όταν p < 0,05) διογκώνει τα ψευδή θετικά. Διαχειριστείτε πολλαπλές συγκρίσεις. Εάν δοκιμάσετε 20 κουμπιά, ένα θα «κερδίσει» με τύχη. Χρησιμοποιήστε το ποσοστό ψευδούς ανακάλυψης (Benjamini-Hochberg) ή το Bonferroni σε πλαίσια υψηλών στοιχημάτων. Κρατήστε ένα κεντρικό αρχείο καταγραφής όλων των δοκιμών που εκτελείτε. Αποφύγετε τη διαρροή και την υπερσυμπίεση backtest.Split αγορές ή χρόνο, μην διπλασιάσετε τα χαρακτηριστικά σε όλη την αμαξοστοιχία / δοκιμή, και να είναι σαφής σχετικά με τις ημερομηνίες κατάψυξης. Μια p-αξία μπορεί να είναι μικρή για ένα εκατομμύριο συναλλαγές, αλλά το αποτέλεσμα είναι οικονομικά ασήμαντο μετά από αμοιβές και κίνδυνο. Μια πραγματική άκρη θα πρέπει να επιβιώσει από διαχωρισμούς: από το σύμβολο της ρευστότητας κύπελλο, από την ώρα της ημέρας, από το καθεστώς της μεταβλητότητας. Επιστροφή στο παράδειγμά μας: τι πρέπει να συμπεράνετε Λαμβάνοντας υπόψη τους παραπάνω αριθμούς (t ≈ 1,380, p ≈ 0,168): Δεν υπάρχει αρκετή απόδειξη ότι η μέση PnL ανά συναλλαγή της Στρατηγικής Β διαφέρει από τη Στρατηγική Α. Η αρκετή απόκλιση στο σωρευτικό PnL είναι συμβατή με την τυχαία υπό διαδικασίες ίσου μέσου όρου. Είτε συλλέγετε περισσότερα δεδομένα (προετοιμάστε ένα μεγαλύτερο δείγμα), ενισχύστε την υπόθεση (καλύτερα χαρακτηριστικά, έλεγχος κινδύνου), ή εκτελέστε ένα καθαρότερο A / B (απομονωμένους συγχέτες). Λόγω του Κοινές παγίδες (έχω κάνει όλα έτσι δεν χρειάζεται να) Επαναλαμβάνοντας την εξέταση και σταματώντας όταν η τιμή p πέσει κάτω από το 0.05.Χρησιμοποιήστε μεθόδους σταθερού ορίζοντα ή διαδοχικές μεθόδους που υπολογίζουν την εξέταση, διαφορετικά αυξάνετε ψευδώς θετικά. Χρησιμοποιώντας «per-fill» αποτελέσματα όταν οι πληρωμές είναι πολύ συσχετισμένες. Νομίζετε ότι έχετε 100k δείγματα, αλλά θα μπορούσε να έχετε πραγματικά 2k ανεξάρτητα γεγονότα. Συγκρίνετε τις σωρευτικές καμπύλες μεταξύ περιόδων με διαφορετικό όγκο / ρευστότητα και το ονομάζετε κέρδος. Η εξίσωση της «στατιστικής σημασίας» με την «οικονομική αξία».Ένα μικρό περιθώριο μπορεί να εξαλειφθεί από τα τέλη, την καθυστέρηση ή τον κίνδυνο απογραφής. Αν προσαρμόσετε 20 χαρακτηριστικά και διατηρήσετε το καλύτερο, η τιμή p σας πρέπει να διορθωθεί για αυτή την επιλογή. Ένα mnemonic για το t-test που στην πραγματικότητα κολλάει Όταν αισθάνεστε πειρασμένοι να δείτε ένα διάγραμμα PnL, θυμηθείτε: t = «πόσο μακριά είναι τα δύο δείγματα μέσων» ÷ «πόσο αβέβαια είναι αυτά τα μέσα». t = “how far the two sample means are” ÷ “how uncertain those means are.” Εάν διπλασιάσετε το μέγεθος του δείγματος σας, ο παρονομαστής (αβεβαιότητα) συρρικνώνεται. οι ασήμαντες διαφορές σταματούν να φαίνονται «σημαντικές». Τελειώνουν οι σημειώσεις Ελπίζω ότι έχετε κάποια διαίσθηση πίσω από το γιατί δεν είναι προφανές να κρίνετε τις αλλαγές στη στρατηγική συναλλαγών σας κοιτάζοντας μόνο τη διαφορά PnL, ποια στατιστικά εργαλεία μπορούν να χρησιμοποιηθούν για να κάνουν την ερευνητική διαδικασία πιο ισχυρή και ίσως κάποια σαφήνεια για το τι κρύβεται πίσω από όλους αυτούς τους όρους που χρησιμοποιούνται στη δοκιμή στατιστικών υποθέσεων και πώς να τα παράγουν πραγματικά χωρίς να ακολουθούν τυφλά τις οδηγίες του εγχειριδίου. Πολλές ερευνητικές ομάδες Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Γιατί; Οι ομάδες δημιουργούν πιο πολύπλοκα πλαίσια που ταιριάζουν στον σκοπό τους, αλλά αυτό είναι ένα καλό μέρος για να ξεκινήσετε. fail to iterate και Κάντε αυτό και ο κύκλος επανάληψης σας θα γίνει πιο ήρεμος, πιο γρήγορος και πιο σύνθετος. Αυτή η δημοσίευση χρησιμοποιεί μόνο δημόσια διαθέσιμες πληροφορίες και είναι για εκπαιδευτικούς σκοπούς, όχι επενδυτικές συμβουλές. Όλες οι απόψεις και οι απόψεις που εκφράζονται είναι δικές μου και δεν αντιπροσωπεύουν εκείνες οποιουδήποτε από τους πρώην / τωρινούς εργοδότες μου ή οποιουδήποτε άλλου μέρους.