7 Νοέμβριος 2026 · μικροδομή

Το backtest διάβασε τη σωστή τιμή από τη λάθος αγορά

Το backtest διάβασε τη σωστή τιμή από τη λάθος αγορά

Στις 10:14 UTC, μια απλή στρατηγική breakout αγόρασε ένα perpetual κρυπτονομίσματος, αφού η τιμή ξεπέρασε το υψηλό των 20 λεπτών. Το backtest έδειξε εκτέλεση στα $64,210. Η τιμή υπήρχε στα δεδομένα, το σήμα είχε σωστή χρονοσήμανση και η προσομοιωμένη εντολή έφτασε στην επόμενη μπάρα. Παρ’ ολίγον να θεωρήσουμε το αποτέλεσμα άψογο.

Ύστερα αντιπαραβάλαμε τα αναγνωριστικά των μέσων. Το σήμα προήλθε από το perpetual BTCUSDT. Η εκτέλεση έγινε σε inverse συμβόλαιο BTCUSD. Και τα δύο διαπραγματεύονταν κοντά στα $64,210 και αμφότερες ήταν ρευστές αγορές. Παρ’ όλα αυτά, είχαν διαφορετικά βιβλία εντολών, τιμές, μεγέθη tick, βάθος και προμήθειες. Το backtest είχε συνθέσει μια αγορά στην οποία κανένας trader δεν μπορούσε να έχει πρόσβαση.

Η ίδια η στρατηγική ήταν συνηθισμένη: είσοδος σε κλείσιμο πάνω από το κυλιόμενο υψηλό, έξοδος σε κλείσιμο κάτω από το κυλιόμενο χαμηλό και μέγεθος θέσης βάσει σταθερού κινδύνου σε δολάρια. Το πρόβλημα φάνηκε μόνο όταν θέσαμε μια πιο συγκεκριμένη ερώτηση από το «πόσο άξιζε το BTC;». Ρωτήσαμε: «τι θα μπορούσε να αγοράσει αυτή η εντολή σε αυτό ακριβώς το συμβόλαιο εκείνη τη στιγμή;»

Το γράφημα ήταν σύνθετο πριν καν εκτελεστεί η στρατηγική

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

Τη στιγμή του breakout, το υψηλό της ενοποιημένης μπάρας ήταν $64,205. Η τελευταία συναλλαγή του επιλεγμένου συμβολαίου είχε ήδη φτάσει τα $64,218. Την ίδια ώρα, μια αποθηκευμένη προσωρινά προσφορά για το inverse συμβόλαιο εξακολουθούσε να δείχνει ask στα $64,210. Ο προσομοιωτής χρησιμοποίησε το breakout από μία σειρά και το ελκυστικό ask από μια άλλη. Κάθε τιμή ήταν πραγματική. Ο συνδυασμός τους ήταν φανταστικός.

ΕίσοδοςΤι χρησιμοποίησε το backtestΤι χρειαζόταν η εντολή
Υψηλό breakoutΕνοποιημένη τιμή BTCΙστορικό τιμών του επιλεγμένου συμβολαίου
Τιμή αναφοράς εισόδουΑποθηκευμένο ask inverse συμβολαίουΠρόσφατο ask για το μέσο στο οποίο έγινε η συναλλαγή
Ποσότητα εκτέλεσηςΖητούμενο μέγεθος θέσηςΔιαθέσιμη ποσότητα σε κάθε επίπεδο τιμής

Μια γραμμή σε έναν πίνακα δεδομένων αγοράς μπορεί να φαίνεται πλήρης, ενώ τα πεδία της περιγράφουν διαφορετικές αγορές. Ένα ψευδώνυμο συμβόλου δεν αποδεικνύει ότι δύο μέσα μοιράζονται το ίδιο βιβλίο εντολών. Το ID του συμβολαίου, η πλατφόρμα, το νόμισμα της προσφοράς και η χρονοσήμανση πρέπει να διατηρούνται μαζί σε όλη τη διαδικασία δημιουργίας σήματος και εκτέλεσης.

Αναπαράγαμε την εντολή πάνω στο βιβλίο εντολών

Επαναλάβαμε την είσοδο χρησιμοποιώντας το καλύτερο ask του επιλεγμένου perpetual και τις ενημερώσεις του βιβλίου εντολών που ήταν διαθέσιμες τη στιγμή της απόφασης. Η προσφορά ήταν πρόσφατη, αλλά στο ανώτατο επίπεδο υπήρχαν μόνο 0.18 BTC. Η προσομοιωμένη εντολή μας ήταν 0.50 BTC. Τα υπόλοιπα 0.32 BTC θα εκτελούνταν σε υψηλότερα ask.

$64,218καλύτερο ask κατά την άφιξη της εντολής
0.18 BTCδιαθέσιμα σε αυτό το ask
$64,231σταθμισμένη ως προς τον όγκο τιμή αναπαραγωγής

Η προσαρμοσμένη είσοδος ήταν $21 ακριβότερη ανά BTC από την καταγεγραμμένη εκτέλεση, πριν από τις προμήθειες. Η διαφορά είναι μικρή για μία συναλλαγή. Στο σύνολο της δοκιμής, όμως, η στρατηγική αποκόμιζε το μεγαλύτερο μέρος του μικτού κέρδους της από λίγα γρήγορα breakout. Η αναπαραγωγή αυτών των εισόδων με τα σωστά βιβλία εντολών μείωσε το μικτό αποτέλεσμα κατά 31%· οι προμήθειες taker και το market impact το περιόρισαν ακόμη περισσότερο.

Βρήκαμε επίσης δύο περιπτώσεις όπου η προσφορά κορυφής του βιβλίου έφτασε μετά τη στιγμή απόφασης του σήματος. Ένα backtest που συνδέει εγγραφές με βάση την πλησιέστερη χρονοσήμανση μπορεί σιωπηρά να επιλέξει μια μελλοντική ενημέρωση. Πλέον κάνουμε αντιστοίχιση προς τα πίσω: η προσφορά πρέπει να έχει καταγραφεί έως τη στιγμή αποστολής της εντολής και καταγράφουμε την ηλικία της. Αν η πιο πρόσφατη αξιοποιήσιμη προσφορά είναι πολύ παλιά, ο προσομοιωτής σημειώνει την εντολή ως μη εκτελέσιμη ή εφαρμόζει έναν ρητό κανόνα για παλιά δεδομένα.

Τι χρειάζεται για να είναι μια τιμή διαπραγματεύσιμη

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

Κρατήσαμε την ενοποιημένη σειρά για να παρακολουθούμε το πλαίσιο της αγοράς και την αφαιρέσαμε από τη διαδρομή εκτέλεσης. Τα σήματα πλέον βασίζονται στο ιστορικό του ίδιου του επιλεγμένου συμβολαίου· οι εντολές αναπαράγονται στο βιβλίο εντολών αυτού του συμβολαίου, με τις προμήθειες και το μέγεθος να εφαρμόζονται μετά τον υπολογισμό της εκτέλεσης. Λίγο περισσότερη υποδομή και μια καμπύλη κεφαλαίου πολύ λιγότερο εντυπωσιακή.

Το breakout όντως συνέβη. Το backtest απλώς του έδωσε καλύτερη αγορά από εκείνη που είχε επιλέξει η στρατηγική.

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