12 Νοέμβριος 2026 · εκτέλεση

Το backtest σου γέμισε στην επίσημη τιμή κλεισίματος. Ποτέ δεν μπήκες στη δημοπρασία.

Το backtest σου γέμισε στην επίσημη τιμή κλεισίματος. Ποτέ δεν μπήκες στη δημοπρασία.

Η επίσημη τιμή κλεισίματος σε ένα αρχείο μετοχών μοιάζει με οποιαδήποτε άλλη τιμή. Timestamp 16:00:00 Eastern, ένας αριθμός, έτοιμος για πλήρωση. Τα ημερήσια σήματα την μαρκάρουν. Οι αναδιαρθρώσεις την χτυπούν. Ένας πράκτορας έρευνας θα την αντιμετωπίσει ως προσφορά που καθόταν στο βιβλίο, περιμένοντάς σε.

Το κλείσιμο είναι δημοπρασία, όχι προσφορά. Είναι η τιμή uncross εντολών on-close που έπρεπε να έχουν γίνει αποδεκτές πριν από ένα cutoff. Αν το backtest γέμισε εκεί χωρίς να μπει σε εκείνη την παρτίδα, πήρε ένα print στο οποίο δεν θα είχες συμμετάσχει.

Πλήρωση στις 16:00 σαν να ήταν το uncross μια market order

Η συνηθισμένη συντόμευση είναι: υπολόγισε το σήμα στο κλείσιμο ή λίγο πριν, γέμισε στην επίσημη τιμή κλεισίματος, βάλε timestamp 16:00. Σε μια ήσυχη Τρίτη στην AAPL το ψέμα είναι μερικά σεντς. Στις μέρες που κυριαρχούν σε ένα βιβλίο ημερήσιας αναδιάρθρωσης, είναι ολόκληρη η συναλλαγή.

Στις 16:00:00.000 ο closing cross τρέχει, ή μόλις έχει τρέξει. Μια marketable εντολή που στέλνεις τότε δεν μπαίνει σε εκείνο το cross. Προσγειώνεται σε ό,τι έχει απομείνει: υπολειπόμενο εμφανιζόμενο μέγεθος, ένα odd lot, extended hours στο ARCA ή το Nasdaq. Αυτό το print μπορεί να απέχει δύο σεντς από την επίσημη τιμή κλεισίματος, ή σαράντα μονάδες βάσης, και είναι διαφορετική δεξαμενή ρευστότητας. Σε ένα Russell reconstitution, σε ένα month-end ή σε μια Παρασκευή triple-witching το κλείσιμο είναι συχνά διψήφιο μερίδιο του όγκου της ημέρας. Αυτή ήταν η ρευστότητα. Εσύ δεν ήσουν μέσα.

3:50cutoff on-close του NYSE (ET)
3:55cutoff closing-cross του Nasdaq (ET)
~10%τυπικός όγκος large-cap στο κλείσιμο

Το κάναμε paper-trade κατά λάθος. Μια αλλαγή παραμέτρου προσγειώθηκε στις 15:48. Το backtest συνέχισε να γεμίζει κάθε όνομα στην επίσημη τιμή κλεισίματος. Το OMS έστειλε συνηθισμένες market orders στις 16:00:03 γιατί κανείς δεν είχε συνδέσει MOC. Prints after-hours, μια χούφτα απορρίψεις, και υστέρηση 19 μονάδων βάσης έναντι του αρχείου σε μια μέρα που το αρχείο έλεγε ότι ήμασταν flat ως το κλείσιμο. Η στρατηγική δεν είχε χαλάσει. Ο κανόνας πλήρωσης είχε χαλάσει.

Ακόμα σκέφτομαι τις 15:49 ως φυσικό τόπο. Κάποιος αλλάζει ένα βάρος. Κάποιος άλλος κοιτάει το ρολόι. Το cutoff δεν νοιάζεται ποιος από τους δύο έχει δίκιο.

Η MOC είναι η εντολή που πραγματικά ζητάει εκείνο το uncross, και ούτε η MOC είναι υπόσχεση. Ένα halt, μια παύση LULD, μια ακυρωμένη δημοπρασία, ένα όνομα που δεν άνοιξε ποτέ: μπορείς να είσαι flat στις 16:00 με μια working on-close που πεθαίνει. Η LOC επιτρέπεται να χάσει εντελώς. Αν το uncross είναι $40.12 και το limit σου είναι $40.00, δεν κατέχεις τίποτα. Αρκετά backtests εξακολουθούν να καταχωρούν το κλείσιμο.

Χειρότερα, κάποια αρχεία παρόχων αποθηκεύουν ένα composite κλείσιμο που δεν εκτυπώθηκε ποτέ σε κανένα venue. Δεν μπορείς να μπεις σε ένα composite. Αν η στρατηγική θα είχε στείλει NYSE MOC, η πλήρωση που μετράει είναι το uncross του NYSE, στο μέγεθος που θα είχε απορροφήσει η δημοπρασία.

Να αποκαλείς το τελευταίο print των κανονικών ωρών ως κλείσιμο

Κάποια pipelines αρνούνται την επίσημη τιμή κλεισίματος εξαρχής και παίρνουν το τελευταίο SIP print πριν τις 16:00, γιατί εκείνο το print τουλάχιστον «συνέβη». Σε ένα mega-cap, το last και το official συχνά απέχουν ένα ή δύο σεντς και δεν θα το προσέξεις. Σε ένα mid-cap το τελευταίο print μπορεί να είναι 200 μετοχές στις 15:59:51, υπογεγραμμένο από όποιον σήκωσε ένα υπολειπόμενο display. Η επίσημη τιμή κλεισίματος δύο δευτερόλεπτα αργότερα είναι ένα uncross ενός εκατομμυρίου μετοχών σε διαφορετική τιμή.

Ο δείκτης, το καλάθι δημιουργίας ETF και κάθε αναδιάρθρωση MOC διαπραγματεύτηκαν το uncross. Το backtest σου διαπραγματεύτηκε το υπόλοιπο. Και ένα τελευταίο print δεν έρχεται με το μέγεθός σου κολλημένο πάνω του. Αν εκείνο το print είναι 400 μετοχές και το clip σου είναι 5,000, δεν πήρες εκείνη την τιμή. Πήρες ένα timestamp που έτυχε να είναι το τελευταίο.

Έχω δει ένα αρχείο mid-cap όπου το last-print έναντι της επίσημης τιμής κλεισίματος μετακινήθηκε 28 σεντς σε μια Πέμπτη αναδιάρθρωσης. Το backtest που χρησιμοποιούσε το last έμοιαζε πιο «ενήμερο για τη μικροδομή». Ήταν απλώς μια διαφορετική, πιο ρηχή αγορά, και εξακολουθούσε να υποθέτει ότι θα μπορούσαμε να είμαστε εκείνες οι 200 μετοχές.

Να μετατοπίζεις την πλήρωση στο αυριανό άνοιγμα για να είσαι συντηρητικός

Η τρίτη υπεκφυγή εμφανίζεται στην αναθεώρηση κώδικα ως σχόλιο: μην υποθέτεις ότι μπορούμε να διαπραγματευτούμε το κλείσιμο, οπότε γέμισε στο επόμενο άνοιγμα. Ακούγεται ώριμο. Χτίζει μια άλλη στρατηγική.

Ένα σήμα close-to-close που εκτελείται στο επόμενο άνοιγμα έχει φάει το overnight gap. Για πολλούς μετοχικούς παράγοντες αυτό το gap είναι μεγάλο κομμάτι της κίνησης που νόμιζες ότι κατείχες. Το να γεμίζεις στο άνοιγμα δεν κάνει το backtest προσεκτικό. Μετατοπίζει το P&L σε μια συνεδρία που δεν είχες σκοπό να διαπραγματευτείς, και σε ρίχνει σε μια δημοπρασία ανοίγματος που επίσης δεν μοντελοποίησες.

Στο χαρτί τα συντρίμμια είναι εύκολο να διαβαστούν λάθος. Το ημερήσιο P&L του backtest εξακολουθεί να ευθυγραμμίζεται με το σήμα. Το paper book κρατάει μια νύχτα index gap και ένα πρωί slippage του opening-cross. Μετά οι άνθρωποι τσακώνονται για implementation shortfall όταν η ειλικρινής περιγραφή είναι ότι τα δύο συστήματα δεν κάνουν την ίδια συναλλαγή.

Αλλά και το άνοιγμα είναι δημοπρασία. Αν έχασες το χθεσινό cutoff, δεν παίρνεις αυτόματα ένα καθαρό last στις 9:30. Παίρνεις μηχανική MOO/LOO, ένα imbalance και ένα gap. Το να το αποκαλείς συντηρητική πλήρωση κλεισίματος απλώς κρύβει ένα δεύτερο μη μοντελοποιημένο cross κάτω από ένα ενάρετο σχόλιο.

Η πλήρωση που καταχώρισεςΤι χρειαζόταν πραγματικά το venueΠώς μοιάζουν τα συντρίμμια
Επίσημη τιμή κλεισίματος, χωρίς τύπο εντολήςMOC ή LOC αποδεκτή πριν από το cutoff εκείνου του venuePrint after-hours, μια απόρριψη, ή μια σύνθετη τιμή που κανείς δεν φιλοξένησε
Τελευταίο SIP print πριν τις 16:00Μια συναλλαγή στην οποία θα μπορούσες να ήσουν, στο μέγεθός σουΈνα υπόλοιπο 200 μετοχών αντιμετωπισμένο ως πλήρωση clip
Επόμενο άνοιγμα ως «ασφαλέστερο» κλείσιμοΈνα μοντέλο opening-cross, συν το overnight gapΜια διαφορετική στρατηγική, ακόμα δημοπρασία, ακόμα χαμένη
Αν ο paper λογαριασμός δεν μπορεί να στείλει MOC ή LOC, το backtest δεν παίρνει την επίσημη τιμή κλεισίματος. Άλλαξε την πλήρωση. Μην προσεγγίζεις το uncross με μια market order στις 16:00.

Η ειλικρινής διάκριση είναι μικρή. Είτε το ερευνητικό συμβόλαιο λέει ότι είμαστε στο κλείσιμο, οπότε η εντολή είναι on-close, με timestamp πριν τις 15:50 στο NYSE ή τις 15:55 στο Nasdaq, με μέγεθος έναντι του αναμενόμενου όγκου κλεισίματος, και επιτρέπεται να λήξει χωρίς πλήρωση αν είναι LOC. Είτε δεν είμαστε στο κλείσιμο, οπότε after-hours ή next-open είναι κατονομασμένη πολιτική με τη δική της δημοπρασία, και η καμπύλη equity σταματάει να φοράει ετικέτα 16:00.

Πλέον απορρίπτουμε κάθε backtest που καταχωρεί την επίσημη τιμή κλεισίματος χωρίς εντολή on-close που κάθεται μέσα στο cutoff για εκείνο το venue. Έχει σκοτώσει μερικές όμορφες καμπύλες ημερήσιου σήματος. Εκείνες οι καμπύλες δεν ήταν ποτέ εκτελέσιμες στην τιμή που ισχυρίζονταν.

backtestingμικροδομή αγοράςμετοχέςδημοπρασία κλεισίματοςεκτέλεση
ΚοινοποίησηXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Όλα τα άρθρα