Μια ημερήσια στρατηγική που υπολογίζει το σήμα της από την τιμή κλεισίματος της Δευτέρας δεν μπορεί να τοποθετήσει εντολή στο κλείσιμο της Δευτέρας. Μπορεί να την υποβάλει αφού γίνει γνωστή αυτή η τιμή και έπειτα να συναλλαχθεί σε μεταγενέστερη, εκτελέσιμη τιμή. Αυτή η μικρή επιλογή χρονισμού μπορεί να αλλάξει το αποτέλεσμα περισσότερο από έναν έξυπνο δείκτη.
Για ένα ημερήσιο backtest, καταγράψτε τη σειρά των γεγονότων πριν γράψετε το σήμα: πότε ολοκληρώνεται η μπάρα, πότε υπολογίζει η στρατηγική, πότε φτάνει η εντολή στην αγορά και σε ποια τιμή θα μπορούσε εύλογα να εκτελεστεί. Αν όλα αυτά συμβαίνουν την ίδια στιγμή, το backtest έχει παραλείψει το δύσκολο μέρος.
Μπορώ να χρησιμοποιήσω τη σημερινή τιμή κλεισίματος για να κάνω συναλλαγή στο σημερινό κλείσιμο;
Συνήθως, όχι. Ένα σήμα που εξαρτάται από την τελική τιμή κλεισίματος είναι διαθέσιμο μόνο αφού ολοκληρωθεί η δημοπρασία κλεισίματος ή πραγματοποιηθεί η τελευταία συναλλαγή. Μια εκτέλεση στην ίδια τιμή προϋποθέτει ότι η στρατηγική γνώριζε το αποτέλεσμα αρκετά νωρίς ώστε να συμμετάσχει σε τιμή που συνέβαλε στον προσδιορισμό του αποτελέσματος.
Ας πάρουμε έναν απλό κανόνα: αγορά όταν η τιμή κλεισίματος είναι πάνω από τον κινητό μέσο όρο 20 ημερών. Στο κλείσιμο της Δευτέρας, ο κανόνας ενεργοποιείται. Ένα backtest που αγοράζει στο κλείσιμο της Δευτέρας χρησιμοποιεί την ολοκληρωμένη τιμή της Δευτέρας τόσο για την απόφαση όσο και για την εκτέλεση. Σε ένα βασικό μοντέλο ημερήσιων μπαρών, η έντιμη προσέγγιση είναι να δημιουργηθεί η εντολή αφού ολοκληρωθεί η μπάρα της Δευτέρας και να εκτελεστεί το νωρίτερο στο άνοιγμα της Τρίτης, με τα κατάλληλα κόστη.
Υπάρχουν στρατηγικές που υποβάλλουν εντολές στη δημοπρασία κλεισίματος, χρησιμοποιώντας πληροφορίες διαθέσιμες πριν από την ώρα cutoff της δημοπρασίας. Μπορούν να γίνουν backtest, αλλά το σήμα πρέπει να βασίζεται μόνο σε δεδομένα πριν από το cutoff και η εκτέλεση να αποτυπώνει τη δημοπρασία. Ο όρος «ημερήσιο σήμα» από μόνος του δεν διασφαλίζει κανένα από τα δύο.
Ποια είναι η σωστή τιμή εκτέλεσης για ένα ημερήσιο backtest;
Δεν υπάρχει μία καθολικά σωστή τιμή. Το επόμενο άνοιγμα είναι μια σαφής αρχική παραδοχή όταν το σήμα σχηματίζεται από ολοκληρωμένη ημερήσια μπάρα και η εντολή αποστέλλεται μετά. Δεν αποτελεί εγγύηση: ένα νυχτερινό χάσμα μπορεί να μετακινήσει την αγορά, ενώ μια market order θα επιβαρυνθεί με spread, προμήθειες και ενδεχομένως επίπτωση στην αγορά.
Για το παραπάνω σήμα της Δευτέρας, ας υποθέσουμε ότι το κλείσιμο της Δευτέρας είναι $100 και το άνοιγμα της Τρίτης $103. Ένα backtest από κλείσιμο σε κλείσιμο μπορεί να δείξει μικρό κέρδος αν προσποιηθεί ότι αγοράζει στα $100. Μια είσοδος στο επόμενο άνοιγμα ξεκινά στα $103. Η διαφορά των $3 δεν είναι «ολίσθηση» που πρέπει να ρυθμίσουμε ώστε να εξαφανιστεί· είναι το κόστος της τιμής που προκύπτει επειδή μαθαίνουμε το σήμα μετά το κλείσιμο της Δευτέρας.
| Πότε γίνεται διαθέσιμο το σήμα | Υποψήφια εκτέλεση | Τι υποθέτει το μοντέλο |
|---|---|---|
| Μετά το ημερήσιο κλείσιμο | Άνοιγμα επόμενης συνεδρίασης | Η εντολή μπορεί να φτάσει στην αγορά πριν ή κατά το άνοιγμα |
| Πριν από το cutoff της δημοπρασίας κλεισίματος | Δημοπρασία κλεισίματος | Το σήμα χρησιμοποιεί μόνο πληροφορίες πριν από το cutoff· η εκτέλεση στη δημοπρασία μοντελοποιείται |
| Μετά το ημερήσιο κλείσιμο | Μεταγενέστερη ενδοημερήσια τιμή | Η στρατηγική περιμένει· η εκτέλεση απαιτεί ενδοημερήσια δεδομένα και καθορισμένο πρόγραμμα |
Στις αγορές κρυπτονομισμάτων, το «ημερήσιο κλείσιμο» είναι μια σύμβαση, καθώς οι συναλλαγές συνεχίζονται κατά την αλλαγή του χρονικού ορίου. Μια στρατηγική μπορεί και πάλι να χρησιμοποιεί ολοκληρωμένο ημερήσιο κερί UTC, αλλά πρέπει να περιμένει να ολοκληρωθεί το κερί και να φτάσουν τα δεδομένα. Αν η ροή δεδομένων σας οριστικοποιεί μια μπάρα με καθυστέρηση αρκετών δευτερολέπτων, είναι ιδιαίτερα δύσκολο να δικαιολογηθεί μια εντολή στην τιμή του χρονικού ορίου.
Πώς πρέπει να μοντελοποιώ τις εντολές όταν έχω μόνο ημερήσιες μπάρες;
Να είστε σαφείς για το τι μπορούν και τι δεν μπορούν να σας πουν οι μπάρες. Τα ημερήσια OHLCV μπορούν να υποστηρίξουν μια προσέγγιση εκτέλεσης στο επόμενο άνοιγμα, αλλά δεν αποκαλύπτουν το spread τη στιγμή που φτάνει η εντολή σας, την πορεία των τιμών μέσα στη μέρα ή αν μια limit order θα είχε ενταχθεί στην ουρά πριν αγγίξει η τιμή το όριό της.
Για μια ημερήσια market order, ξεκινήστε από το επόμενο άνοιγμα και στη συνέχεια χρεώστε στη στρατηγική τα κόστη που θα αντιμετώπιζε στην πράξη: προμήθειες venue, εκτίμηση spread και εκτίμηση επίπτωσης ανάλογη με το μέγεθος της εντολής. Δοκιμάστε την αντοχή της υπό διαφορετικά κόστη. Αν το αποτέλεσμα εξαρτάται από την παραδοχή μηδενικού spread ή αμελητέας επίπτωσης, οι ημερήσιες μπάρες δεν δικαιολογούν αυτή τη βεβαιότητα.
Για μια limit order, το ότι η χαμηλότερη τιμή της ημέρας πέρασε το όριό σας δεν αποδεικνύει ότι έγινε εκτέλεση. Η αγορά μπορεί να διαπραγματεύτηκε σε εκείνη την τιμή πριν φτάσει η εντολή σας ή να υπήρχε μεγαλύτερη ποσότητα μπροστά σας από όση εκτελέστηκε. Οι ημερήσιες μπάρες είναι συχνά υπερβολικά αδρές για να υποστηρίξουν ένα αξιόπιστο μοντέλο ουράς. Χρησιμοποιήστε λεπτομερέστερα δεδομένα αν ο ισχυρισμός σας εξαρτάται από ενδοημερήσια εκτέλεση ή κάντε την παραδοχή εκτέλεσης σκόπιμα συντηρητική και δηλώστε το.
Ποιοι έλεγχοι χρονισμού εντοπίζουν lookahead σε ημερήσιες μπάρες;
Προτιμώ μερικούς απλούς και αυστηρούς ελέγχους, επειδή φανερώνουν γρήγορα τις παραδοχές:
- Μετακινήστε κάθε εντολή που προκύπτει από σήμα κατά μία συνεδρίαση προς τα εμπρός. Αν η απόδοση καταρρεύσει, εξετάστε αν η αρχική εκδοχή χρησιμοποιούσε ως τιμή εκτέλεσης το κλείσιμο της μπάρας του σήματος.
- Καταγράψτε ξεχωριστά τον χρόνο σήματος, τον χρόνο υποβολής εντολής και τον χρόνο εκτέλεσης. Οι χρονοσημάνσεις πρέπει να αφηγούνται μια εύλογη ακολουθία χωρίς να χρειάζονται ερμηνεία.
- Συγκρίνετε τις εκτελέσεις στο επόμενο άνοιγμα με μια μεταγενέστερη, συντηρητική τιμή εκτέλεσης. Αν μια στρατηγική λειτουργεί μόνο στο πιο ευνοϊκό σημείο της μπάρας, έχει πρόβλημα εκτέλεσης.
- Ελέγξτε πώς επηρεάζουν οι αργίες, οι μπάρες που λείπουν και οι αναστολές λειτουργίας της αγοράς το «επόμενη συνεδρίαση». Η επόμενη ημερολογιακή ημέρα μπορεί να μην είναι ημέρα διαπραγμάτευσης.
Η μετατόπιση κατά μία συνεδρίαση είναι διαγνωστικός έλεγχος, όχι καθολικό μοντέλο εκτέλεσης. Μια αργή αναπροσαρμογή χαρτοφυλακίου, μια στρατηγική δημοπρασίας κλεισίματος και ένα σύστημα κρυπτονομισμάτων που συναλλάσσεται συνεχώς χρειάζονται διαφορετικά ρολόγια. Το ζητούμενο είναι να φαίνεται καθαρά ο χρονισμός.
Κάνει τα ημερήσια δεδομένα ένα backtest λιγότερο χρήσιμο;
Όχι. Τα ημερήσια δεδομένα μπορεί να είναι απολύτως κατάλληλα για μια στρατηγική της οποίας οι αποφάσεις και οι περίοδοι διακράτησης μετρώνται σε ημέρες ή εβδομάδες. Είναι χρήσιμα για να εξετάσουμε αν αξίζει να ερευνήσουμε έναν γενικό κανόνα. Γίνονται παραπλανητικά όταν το backtest ισχυρίζεται ακρίβεια για εκτελέσεις που οι μπάρες δεν μπορούν να δείξουν.
Έχω δει περισσότερες από μία στρατηγικές να βελτιώνονται θεαματικά επειδή κάποιος άλλαξε το «σήμα στο κλείσιμο, εκτέλεση στο κλείσιμο» σε «σήμα στο κλείσιμο, εκτέλεση στο επόμενο άνοιγμα». Το αποτέλεσμα μπορεί να είναι απογοητευτικό, αλλά έχει αξία: σας δείχνει αν η ιδέα αντέχει από τη στιγμή που γίνεται εφικτή η συναλλαγή. Κρατήστε δίπλα στον κώδικα της στρατηγικής τη συμφωνία χρονισμού. Διαφορετικά, στην επόμενη βελτιστοποίηση θα επανέλθει σιωπηρά η αδύνατη εκτέλεση.
← Όλα τα άρθρα


