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

Η στρατηγική πέρασε τις δοκιμές της. Ύστερα το ανταλλακτήριο άλλαξε το tick size.

Η στρατηγική πέρασε τις δοκιμές της. Ύστερα το ανταλλακτήριο άλλαξε το tick size.

Στις 08:00 UTC μια Τρίτη, ένα crypto venue άλλαξε το tick size ενός perpetual contract μεσαίας τιμής. Η στρατηγική basis μας δεν το αντιλήφθηκε. Το σήμα της εξακολουθούσε να βλέπει το ίδιο spread μεταξύ spot και futures, τα όρια κινδύνου παρέμειναν αμετάβλητα και το backtest συνέχιζε να εμφανίζει τα ίδια αποτελέσματα.

Το paper trading το αντιλήφθηκε. Ο order adapter στρογγύλεψε μια buy limit προς τα κάτω, στην πλησιέστερη επιτρεπόμενη τιμή. Έτσι, η εντολή βρέθηκε ένα tick κάτω από το επίπεδο που είχε μοντελοποιήσει το backtest. Η αγορά άγγιξε την παλιά τιμή, η προσομοιωμένη εντολή εκτελέστηκε, αλλά η εντολή του paper trading έμεινε ανεκτέλεστη. Ως το μεσημέρι, το inventory της στρατηγικής είχε γίνει μονόπλευρο.

Το περιστατικό έμοιαζε με ένα μικρό σφάλμα στρογγυλοποίησης. Στην πραγματικότητα, ήταν πρόβλημα στα όρια του μοντέλου: η στρατηγική γνώριζε τις τιμές, αλλά το backtest δεν γνώριζε το πλέγμα τιμών του venue.

Διαπραγματευόμασταν με ένα απλό σήμα basis: αγορά spot και πώληση perpetual όταν το premium των futures ξεπερνούσε ένα όριο. Οι εντολές ήταν passive, επειδή το αναμενόμενο edge του basis ήταν μικρό. Λίγα ticks αρκούσαν για να κρίνουν αν η είσοδος θα απέφερε αρκετά ώστε να καλύψει τις χρεώσεις και την τελική έξοδο.

Τι άλλαξε όταν άλλαξε το tick size;

Πριν από την ενημέρωση, το perpetual δεχόταν τιμές σε βήματα των 0.01. Μετά, δεχόταν βήματα των 0.05 στη σχετική ζώνη τιμών. Το σήμα υπολόγισε στόχο πώλησης στα 42,318.03, τιμή έγκυρη με τον παλιό κανόνα. Με τον νέο κανόνα, η τιμή αυτή δεν ήταν έγκυρη.

Το ανταλλακτήριο απέρριπτε τις μη έγκυρες τιμές, αλλά ο adapter μας είχε εφεδρική συμπεριφορά: στρογγύλευε την πώληση προς τα κάτω στα 42,318.00. Και αυτή η τιμή ήταν μη έγκυρη. Ένας δεύτερος εφεδρικός χειρισμός στρογγύλευε ξανά, αυτή τη φορά στα 42,318.05, που ήταν έγκυρη αλλά λιγότερο επιθετική για τον πωλητή. Η εντολή δεν μπορούσε πλέον να πουλήσει στην τιμή που είχε μοντελοποιηθεί. Η διαδρομή κώδικα είχε γραφτεί για άλλη αγορά και μετέτρεπε αθόρυβα την απόρριψη σε αλλαγή τιμής.

Αυτή η μία εντολή έθετε δύο διαφορετικά ερωτήματα. Πρώτον, ποια τιμή μπορεί να δεχτεί το venue; Δεύτερον, πώς πρέπει να αντιδράσει η στρατηγική όταν η επιθυμητή τιμή της δεν βρίσκεται στο πλέγμα; Το ανταλλακτήριο απαντά στο πρώτο. Η στρατηγική ή η πολιτική εκτέλεσης πρέπει να απαντήσει στο δεύτερο.

Πρόθεση εντολήςΚανόνας πλέγματοςΣυνήθης κατεύθυνση στρογγυλοποίησηςΤι μπορεί να αλλάξει
Buy limitΗ τιμή πρέπει να είναι πολλαπλάσιο του tickΠρος τα κάτω, ώστε να παραμένει στο όριο ή χαμηλότεραΜικρότερη πιθανότητα εκτέλεσης
Sell limitΗ τιμή πρέπει να είναι πολλαπλάσιο του tickΠρος τα πάνω, ώστε να παραμένει στο όριο ή υψηλότεραΜικρότερη πιθανότητα εκτέλεσης
Marketable limitΠρέπει επίσης να τηρούνται τα όρια τιμώνΕξαρτάται από τη μέγιστη αποδεκτή τιμήΑν θα διασχίσει το spread

Δεν υπάρχει μία σωστή μέθοδος στρογγυλοποίησης για όλες τις περιπτώσεις. Η στρογγυλοποίηση μιας αγοράς προς τα κάτω διατηρεί το όριο τιμής του αγοραστή, αλλά μπορεί να μειώσει την πιθανότητα εκτέλεσης. Η στρογγυλοποίηση προς τα πάνω μπορεί να κάνει την εντολή marketable, αλλάζοντας τις χρεώσεις και το market impact. Για την passive είσοδο basis μας, η σιωπηρή μετατόπιση της εντολής ήταν λάθος. Η στρατηγική είχε επιλέξει έναν στόχο· ο adapter άλλαξε τα οικονομικά χαρακτηριστικά του.

Γιατί το backtest εξακολουθούσε να δείχνει υγιές;

Ο ιστορικός προσομοιωτής εντολών μας αντιμετώπιζε τις limit τιμές ως συνεχείς αριθμούς. Αν το χαμηλό της μπάρας έφτανε την τιμή αγοράς ή το υψηλό της έφτανε την τιμή πώλησης, υπολόγιζε ότι η εντολή εκτελέστηκε. Αυτό είναι ήδη μια γενναιόδωρη προσέγγιση για μια passive εντολή, αφού το ότι η αγορά διαπραγματεύτηκε στην τιμή του ορίου δεν λέει τίποτα για τη θέση στην ουρά. Όμως, η αλλαγή του tick έκανε το κενό πιο θεμελιώδες: η εντολή δεν θα μπορούσε να είχε υπάρξει σε αυτή την τιμή.

Επαναλάβαμε τις ίδιες αποφάσεις εφαρμόζοντας το νέο πλέγμα από την ώρα έναρξης ισχύος του. Αρκετές εκτελέσεις εξαφανίστηκαν. Μερικές εντολές στρογγυλοποιήθηκαν σε τιμές που διέσχιζαν το spread και επιβαρύνθηκαν με taker fees αντί για maker fees. Η διαδρομή της θέσης που προέκυψε αποκλίνει, οπότε άλλαξαν και οι μεταγενέστερες αντισταθμίσεις και έξοδοι. Ένας κανόνας που έμοιαζε με μεταδεδομένα είχε αλλάξει ολόκληρη τη σειρά συναλλαγών.

Και η ενημέρωση δεν ήταν κάποια έκπληξη κρυμμένη σε ένα γράφημα. Το venue είχε δημοσιεύσει αλλαγή κανόνων για το instrument, μαζί με χρονική σήμανση έναρξης ισχύος. Αποθηκεύαμε προσεκτικά τα δεδομένα αγοράς, αλλά τα μεταδεδομένα των instrument βρίσκονταν σε cache που ανανεωνόταν κατά την εκκίνηση. Το backtest χρησιμοποιούσε τους σημερινούς κανόνες για κάθε ιστορική ημερομηνία· το paper trading είχε παλιούς κανόνες μέχρι να γίνει επανεκκίνηση της διεργασίας. Κανένα από τα δύο περιβάλλοντα δεν αναπαριστούσε τι επέτρεπε το venue κάθε στιγμή.

Πώς πρέπει ένα backtest να μοντελοποιεί αλλαγές στο tick size;

Διατηρήστε εκδόσεις των κανόνων για τα instrument με διαστήματα ισχύος, όπως κάνετε και με άλλες εισόδους που εξαρτώνται από τη χρονική στιγμή. Κατ’ ελάχιστον, κρατήστε την ώρα έναρξης ισχύος και τις τιμές κανόνων που χρειάζονται για την επικύρωση μιας εντολής: tick size, βήμα ποσότητας, ελάχιστη ποσότητα και τυχόν ζώνες τιμών. Ο προσομοιωτής πρέπει να φορτώνει το σύνολο κανόνων που ίσχυε τη στιγμή της προσομοιωμένης απόφασης.

Έπειτα, ορίστε ρητά τη διαχείριση των εντολών. Αν μια τιμή-στόχος δεν είναι έγκυρη, απορρίψτε την, στρογγυλοποιήστε την βάσει τεκμηριωμένης πολιτικής ή επανυπολογίστε τον στόχο πάνω στο πλέγμα. Καταγράψτε ποια ενέργεια έγινε. Ένα backtest που διορθώνει αυτόματα κάθε εντολή μπορεί να χρησιμεύσει για την εκτίμηση μιας συγκεκριμένης πολιτικής εκτέλεσης, αλλά δεν πρέπει να παρουσιάζει αυτή την πολιτική σαν εκτέλεση στο ανταλλακτήριο.

Για τις passive εντολές, μια έγκυρη ως προς το tick τιμή είναι μόνο η πρώτη προϋπόθεση για εκτέλεση. Χρειάζεστε επίσης μοντέλο για το αν η αγορά διαπραγματεύτηκε πέρα από την τιμή σας, για την ουρά που βρίσκεται μπροστά σας, τις ακυρώσεις και το επίπεδο χρεώσεων που θα είχατε.

Προσθέσαμε δύο ελέγχους. Ο ένας περνά κάθε παραγόμενη εντολή από τους κανόνες instrument που ίσχυαν τη συγκεκριμένη χρονική στιγμή και σταματά με σαφές σφάλμα αν η τιμή ή το μέγεθος δεν είναι έγκυρα. Ο άλλος συγκρίνει την τελική κανονικοποιημένη εντολή του adapter του backtest με εκείνη του paper trading: πλευρά, τιμή, ποσότητα, time-in-force και πρόθεση ως προς τις χρεώσεις. Αν διαφέρουν, η εκτέλεση δεν θεωρείται συγκρίσιμη.

Μετά, επαναλάβαμε την αλλαγή της Τρίτης. Το backtest πλέον δεν ισχυριζόταν ότι υπήρξαν εκτελέσεις στα 42,318.03 μετά την ενημέρωση του πλέγματος. Το paper trading και η προσομοίωση έπαιρναν την ίδια απόφαση για κάθε μη έγκυρο στόχο, ακόμη κι όταν αυτή ήταν να παραλείψουν την εντολή.

Το σήμα δεν είχε χαλάσει. Είχαν παλιώσει οι παραδοχές του για το αντικείμενο που μπορούσε να διαπραγματευτεί. Μια στρατηγική μπορεί να αντέξει ένα νέο tick size, αρκεί το σύστημα έρευνας να αντιμετωπίζει τους κανόνες του venue ως μέρος της αγοράς που προσομοιώνει.

κανόνες ανταλλακτηρίουtick sizeστρογγυλοποίηση εντολώνbacktestingpaper trading
ΚοινοποίησηXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Όλα τα άρθρα