Στρατηγικές
ETH Deribit Εβδομαδιαίο Put-Credit-Spread — Συγκομιδή Πριμ Κινδύνου Μεταβλητότητας + Καθοδικής Ασυμμετρίας (Δικαιώματα Προαίρεσης Καθορισμένου Κινδύνου, Με Φίλτρο Ασυμμετρίας, 3 παραμέτρων)
Έκβαση: Εγκαταλείφθηκε
EthDeribitWeeklyPutCreditSpreadSkewVrp
ETH Deribit Εβδομαδιαίο Put-Credit-Spread — Συγκομιδή Πριμ Κινδύνου Μεταβλητότητας + Καθοδικής Ασυμμετρίας (Δικαιώματα Προαίρεσης Καθορισμένου Κινδύνου, Με Φίλτρο Ασυμμετρίας, 3 παραμέτρων)
Υπόθεση
Μια DEFINED-RISK, στρατηγική options μονού χώρου διεξαγωγής σε DERIBIT ETH εβδομαδιαίες λήξεις, η οποία πουλά την επίμονα υπερτιμημένη καθοδική πλευρά της επιφάνειας μεταβλητότητας των crypto. Μία φορά ανά εβδομαδιαίο κύκλο (πλησιέστερη λήξη ~5-7 DTE), και ONLY όταν η καθοδική ασφάλιση είναι αποδεδειγμένα ακριβή (put 25-delta IV πλουσιότερο από ATM IV κατά περιθώριο skew AND ATM IV πάνω από το υστερούμενο realized vol), ανοίγει ένα PUT CREDIT SPREAD: SELL ένα put ~25-delta και BUY ένα put ~10-delta της ίδιας……Εμφάνιση περισσότερωνΕμφάνιση λιγότερων
Μια DEFINED-RISK, στρατηγική options μονού χώρου διεξαγωγής σε DERIBIT ETH εβδομαδιαίες λήξεις, η οποία πουλά την επίμονα υπερτιμημένη καθοδική πλευρά της επιφάνειας μεταβλητότητας των crypto. Μία φορά ανά εβδομαδιαίο κύκλο (πλησιέστερη λήξη ~5-7 DTE), και ONLY όταν η καθοδική ασφάλιση είναι αποδεδειγμένα ακριβή (put 25-delta IV πλουσιότερο από ATM IV κατά περιθώριο skew AND ATM IV πάνω από το υστερούμενο realized vol), ανοίγει ένα PUT CREDIT SPREAD: SELL ένα put ~25-delta και BUY ένα put ~10-delta της ίδιας λήξης. Η μέγιστη ζημία περιορίζεται στο (εύρος strike − καθαρό credit), ώστε ο λογαριασμός να μην μπορεί να ρευστοποιηθεί από ακραία κίνηση ουράς — αντιμετωπίζοντας άμεσα τη μεγαλύτερη ανησυχία του ελέγχου κινδύνου για τις στρατηγικές short-vol. Αυτό καλύπτει σκόπιμα το μοναδικό μεγαλύτερο κενό χαρτοφυλακίου του factory: τα options αποτελούν 4.7% του βιβλίου έναντι ποσόστωσης ≥15%, με ουσιαστικά μηδενική προηγούμενη κάλυψη. Διαφέρει σκόπιμα από ένα απλό short strangle — διαφορετικό υποκείμενο (ETH), διαφορετική δομή (vertical καθορισμένου κινδύνου, όχι ακάλυπτη αμφοτερόπλευρη), και διαφορετικό σήμα (πλούτος put-SKEW + VRP, όχι ακατέργαστο IV/RV). Μόνο 3 ρυθμιζόμενες παράμετροι για να αντισταθεί στην υπερπροσαρμογή που εξουδετέρωσε 259 προηγούμενες υποθέσεις. NOT funding-carry (L33), NOT port σύμπτωσης momentum/τάσης (εξαντλημένο), NOT αντιστροφή/ξεθώριασμα τιμής — η πηγή του P&L είναι δομικό ασφάλιστρο συν το ασφάλιστρο put-skew των crypto, όχι κατευθυντική πρόβλεψη τιμής.
Το Layer-3 «Δεν παρήχθησαν συναλλαγές / 0 μπάρες αξιολογήθηκαν» είχε δύο συγκεκριμένες αιτίες, και καμία τους δεν ήταν το όριο εισόδου (η ανατροφοδότηση σωστά λέει να μην χαλαρώσουν τα όρια). Πρώτον, η γραμμή «0 μπάρες αξιολογήθηκαν» είναι παραπλανητική για αυτή την οικογένεια: το RollingOptionsStrategy.on_bar παρακάμπτει πλήρως το FactoryStrategy.on_bar και δεν φτάνει ποτέ στο _process_primary, επομένως το bars_seen είναι 0 για κάθε στρατηγική rolling options, ακόμη και για όσες συναλλάσσονται κανονικά — το……Εμφάνιση περισσότερωνΕμφάνιση λιγότερων
Το Layer-3 «Δεν παρήχθησαν συναλλαγές / 0 μπάρες αξιολογήθηκαν» είχε δύο συγκεκριμένες αιτίες, και καμία τους δεν ήταν το όριο εισόδου (η ανατροφοδότηση σωστά λέει να μην χαλαρώσουν τα όρια). Πρώτον, η γραμμή «0 μπάρες αξιολογήθηκαν» είναι παραπλανητική για αυτή την οικογένεια: το RollingOptionsStrategy.on_bar παρακάμπτει πλήρως το FactoryStrategy.on_bar και δεν φτάνει ποτέ στο _process_primary, επομένως το bars_seen είναι 0 για κάθε στρατηγική rolling options, ακόμη και για όσες συναλλάσσονται κανονικά — το επιβεβαίωσα διαβάζοντας τα rolling_options_template.py και base_template.py αντί να προσθέσω κλήση super().on_bar(), η οποία θα κατηύθυνε τις κύριες μπάρες στο εμπόδιο ευθυγράμμισης διασκελών της βασικής κλάσης, όπου τα διαλείποντα σκέλη δικαιωμάτων προαίρεσης (ίδιο χρονικό πλαίσιο 1-DAY με το κύριο) θα εμπόδιζαν την επεξεργασία επ' αόριστον. Δεύτερον, τα πραγματικά εμπόδια: (a) ANNUALIZATION MISMATCH — οι κληρονομημένες ρυθμίσεις πραγματοποιημένης μεταβλητότητας ήταν ωριαίες (rv_window=168, bars_per_year=8760), ενώ η εκτέλεση γίνεται σε μπάρες 1-DAY, άρα οι ημερήσιες λογαριθμικές αποδόσεις ετησιοποιούνταν με sqrt(8760) αντί για sqrt(365), διογκώνοντας το RV κατά 4.90x (μια κανονική χρονοσειρά 3%/ημέρα ETH εμφανίζεται ως 281% αντί για 57%)· στη συνέχεια, η συνθήκη VRP iv >= rv*(1+margin) συνέκρινε ~60% IV με ~281% RV και ήταν False σε κάθε κύκλο. Διορθώθηκε με υπολογισμό του bars_per_year από τον διαμορφωμένο τύπο μπάρας και έκφραση του παραθύρου RV σε ημερολογιακές ημέρες, ώστε να μην επαναληφθεί αυτή η απόκλιση σε κανένα διάστημα (επαληθεύτηκε: 1-DAY -> 365, 1-HOUR -> 8760, 4-HOUR -> 2190, και τώρα η συνθήκη περνά σε κανονική χρονοσειρά). (b) ROLE MAPPING — ο κληρονομημένος σκελετός αντιστοίχιζε τα σκέλη βάσει είδους δικαιώματος προαίρεσης και απαιτούσε ένα call και ένα put (strangle), οπότε τα δύο σκέλη P ενός put spread συγκρούονταν στο ίδιο κλειδί, το δεύτερο απορριπτόταν ως διπλότυπο, ο έλεγχος ετοιμότητας απαιτούσε ένα ανύπαρκτο σκέλος call και κάθε σκέλος υποβαλλόταν ως SELL (δύο ακάλυπτα short puts, όχι κάθετο spread με καθορισμένο κίνδυνο). Τώρα τα σκέλη αντιστοιχίζονται βάσει τιμής άσκησης σε short/long, το short πωλείται και το long αγοράζεται με τον ίδιο αποθηκευμένο αριθμό συμβολαίων, ατομικά. Αφαίρεσα επίσης το κληρονομημένο stop πολλαπλασίου πριμ: το long wing ήδη περιορίζει τη ζημία, επομένως ένα stop σε δομή με ανώτατο όριο ζημίας απλώς πραγματοποιεί νωρίτερα μια περιορισμένη ζημία και προσθέτει προμήθειες. Η αριθμητική της διαστασιολόγησης επαληθεύτηκε από άκρη σε άκρη (spread πλάτους 150, πίστωση $22, μέγιστη ζημία $128 -> 15 συμβόλαια = 1.9% του μετοχικού κεφαλαίου σε κίνδυνο). Διατήρησα όλα όσα πέρασαν τα Layers 1-2: καθαρές εισαγωγές, τη συνάρτηση ελεύθερου επιπέδου _bar_ts που διορθώνει το σφάλμα TypeError από επαναδέσμευση staticmethod του Layer-2, τον αναλυτή DVOL, την αντιστροφή Black-Scholes IV και το συνεχές calculate_signal. Το lookback_days είναι 49 (7 κύκλοι, 14 σκέλη δικαιωμάτων προαίρεσης), επειδή ο φορτωτής καταλόγου ανά τύπο μπάρας κοστίζει ~10s ανά σκέλος και μια μεγαλύτερη αλυσίδα κινδυνεύει να υπερβεί τον χρόνο εκτέλεσης του Layer-3· αυτό περιορίζει το αρχικό δείγμα και είναι ιδιότητα του φορτωτή, όχι της υπόθεσης.
verification_loop: Η επαλήθευση απέτυχε (Layer 4 — ανασκόπηση QA) [class=code_defect]: - [edge_concern] Το sandbox avg_trade_return_pct είναι -45.45% σε 2 συναλλαγές με metrics_reliable=false και data_days=1 — αυτό δεν αποτελεί ετυμηγορία απόδοσης (η απόδοση ανά ονομαστική αξία δεν έχει νόημα για σκέλη δικαιωμάτων προαίρεσης, όπου η ονομαστική αξία του πριμ << την ονομαστική αξία του wing, και το sandbox είναι δοκιμή καπνού 1 ημερών). Διατηρείται μόνο ως πλαίσιο: αν επιλυθεί το παρακάτω ζήτημα του……Εμφάνιση περισσότερωνΕμφάνιση λιγότερων
verification_loop: Η επαλήθευση απέτυχε (Layer 4 — ανασκόπηση QA) [class=code_defect]: - [edge_concern] Το sandbox avg_trade_return_pct είναι -45.45% σε 2 συναλλαγές με metrics_reliable=false και data_days=1 — αυτό δεν αποτελεί ετυμηγορία απόδοσης (η απόδοση ανά ονομαστική αξία δεν έχει νόημα για σκέλη δικαιωμάτων προαίρεσης, όπου η ονομαστική αξία του πριμ << την ονομαστική αξία του wing, και το sandbox είναι δοκιμή καπνού 1 ημερών). Διατηρείται μόνο ως πλαίσιο: αν επιλυθεί το παρακάτω ζήτημα του φορτωτή/ορίζοντα αναδρομής και συγκεντρωθεί πραγματικό δείγμα εβδομαδιαίων δικαιωμάτων προαίρεσης, ο αναλυτής θα πρέπει να επανεξετάσει αν η καθαρή πίστωση που εισπράχθηκε καλύπτει τη χρέωση 0.03%/πλευράς της Deribit για συναλλαγή μετ' επιστροφής σε 4 σκέλη (άνοιγμα+κλείσιμο x short+long), συν τυχόν ολίσθηση λόγω εκχώρησης, καθώς το πλεονέκτημα ανά ονομαστική αξία ενός put-credit-spread είναι δομικά μικρό. - [critical] rolling_options.lookback_days=49 περιορίζει την ENTIRE ανακτήσιμη αλυσίδα δικαιωμάτων προαίρεσης του backtest ANY στις ~49 ημέρες έως το «τώρα» = ~7 εβδομαδιαίους κύκλους / ~14 σκέλη δικαιωμάτων προαίρεσης, ανεξάρτητα από το 6.5-ετές ιστορικό δικαιωμάτων προαίρεσης ETH της Deribit. Η στρατηγική παραμένει εκτός θέσης για το υπόλοιπο χρονικό παράθυρο και συναλλάσσεται μόνο στο τέλος του. Το sandbox το επιβεβαιώνει εμπειρικά: bars_processed=2400 (~6.5 έτη), αλλά data_days=1 και total_trades=2 (trades_count=4). Δεν είναι δυνατό να διακριθεί ένα πλεονέκτημα πριμ κινδύνου διακύμανσης + ασυμμετρίας από τον θόρυβο σε ~7 κύκλους / ~14 σκέλη — πολύ λιγότερα από τις ~30-100 συναλλαγές που απαιτούνται για μετρήσιμο δείγμα δικαιωμάτων προαίρεσης. Αυτή είναι ακριβώς η παγίδα κόστους φορτωτή έναντι μεγέθους δείγματος-22 που οδήγησε στην εγκατάλειψη, πριν από 4 ημέρες στο Layer, της σχεδόν πανομοιότυπης BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (ίδιο venue, ίδιο lookback_days=49). Η αιτιολόγηση του ίδιου του προγραμματιστή αναγνωρίζει το όριο («Το lookback_days είναι 49 (7 κύκλοι, 14 σκέλη δικαιωμάτων προαίρεσης), επειδή ο φορτωτής καταλόγου ανά τύπο μπάρας κοστίζει ~10s ανά σκέλος και μια μεγαλύτερη αλυσίδα κινδυνεύει να υπερβεί τον χρόνο εκτέλεσης του Layer-3»). Με την τρέχουσα διαμόρφωση, η στρατηγική δεν μπορεί ποτέ να παράγει μετρήσιμο πλήρες backtest. — διόρθωση: Μην υποβάλετε με ~7 κύκλους. Επιλύστε την παγίδα κόστους φορτωτή έναντι μεγέθους δείγματος-22 πριν από την επανυποβολή: ομαδοποιήστε/παραλληλίστε ή αποθηκεύστε στην κρυφή μνήμη τις φορτώσεις catalog.bars() ανά σκέλος μεταξύ των μπαρών, ώστε το lookback_days να καλύπτει πολλά έτη εβδομαδιαίων κύκλων (~200-300 κύκλοι) χωρίς να υπερβαίνει τον χρόνο εκτέλεσης του sandbox, και έπειτα ορίστε το lookback_days ώστε να καλύπτει ολόκληρο το παράθυρο δοκιμής. Αν ο φορτωτής πράγματι δεν μπορεί να ανακτήσει μετρήσιμο ιστορικό εβδομαδιαίων δικαιωμάτων προαίρεσης εντός του χρονικού προϋπολογισμού, αυτή η οικογένεια δεν μπορεί να δοκιμαστεί στο τρέχον harness σε εβδομαδιαία συχνότητα και θα πρέπει να επανασχεδιαστεί (π.χ. λιγότεροι, μεγαλύτερης διάρκειας μηνιαίοι κύκλοι σε όλο το χρονικό εύρος) αντί
Υλοποίηση
Κάθετο put credit spread εβδομαδιαίας λήξης με καθορισμένο κίνδυνο στη Deribit ETH. Σε κάθε εβδομαδιαίο κύκλο λήξης (~7 DTE), το πλαίσιο rolling options επιλύει δύο put σκέλη (~5% και ~10% OTM)· η στρατηγική τα αντιστοιχίζει βάσει τιμής άσκησης σε short (υψηλότερη τιμή άσκησης, δέλτα ~25) και long (χαμηλότερη τιμή άσκησης, δέλτα ~10), SELLS το short και BUYS το long στον ίδιο 1:1 αριθμό συμβολαίων, και διακρατεί τη θέση μέχρι το περιθώριο ανακύλισης πριν από τον ευρωπαϊκό χρηματικό διακανονισμό. Η είσοδος……Εμφάνιση περισσότερωνΕμφάνιση λιγότερων
Κάθετο put credit spread εβδομαδιαίας λήξης με καθορισμένο κίνδυνο στη Deribit ETH. Σε κάθε εβδομαδιαίο κύκλο λήξης (~7 DTE), το πλαίσιο rolling options επιλύει δύο put σκέλη (~5% και ~10% OTM)· η στρατηγική τα αντιστοιχίζει βάσει τιμής άσκησης σε short (υψηλότερη τιμή άσκησης, δέλτα ~25) και long (χαμηλότερη τιμή άσκησης, δέλτα ~10), SELLS το short και BUYS το long στον ίδιο 1:1 αριθμό συμβολαίων, και διακρατεί τη θέση μέχρι το περιθώριο ανακύλισης πριν από τον ευρωπαϊκό χρηματικό διακανονισμό. Η είσοδος επιτρέπεται μόνο όταν πληρούνται δύο έλεγχοι πλουσιότητας, μετρημένοι στο παράθυρο εισόδου του κύκλου: downside skew (short-put IV >= Deribit DVOL ATM IV x (1 + skew_margin)) και πριμ κινδύνου διακύμανσης (ATM IV >= πραγματοποιημένη μεταβλητότητα προηγούμενων 14 ημερών x (1 + vrp_margin)). Οι IV των σκελών υπολογίζονται αντίστροφα από την μπάρα πριμ USD κάθε σκέλους με Black-Scholes. Η μέγιστη ζημία ανά spread είναι (πλάτος τιμών άσκησης - καθαρή πίστωση), καθορίζεται κατά την είσοδο και ακριβώς αυτό λαμβάνεται υπόψη στη διαστασιολόγηση: συμβόλαια = floor(μετοχικό κεφάλαιο x risk_frac / max_loss), με ανώτατο όριο ώστε το συνολικό πλάτος spread να παραμένει εντός του 50% του μετοχικού κεφαλαίου και κατώτατο όριο το ελάχιστο των 1 συμβολαίων ETH της Deribit. 3 ρυθμιζόμενες παράμετροι (skew_margin, vrp_margin, risk_frac)· μόχλευση 1.0· χωρίς διαδρομή συναλλαγών perp/υποκείμενου.
Αποτελέσματα Επαλήθευσης
Η επαλήθευση απέτυχε (Επίπεδο 4 — αξιολόγηση QA) [class=code_defect]: - [edge_concern] Το Sandbox avg_trade_return_pct είναι -45.45% σε 2 συναλλαγές με metrics_reliable=false και data_days=1 — αυτό δεν αποτελεί ετυμηγορία απόδοσης (η per-notional απόδοση δεν είναι ουσιαστική για σκέλη δικαιωμάτων προαίρεσης, όπου το premium notional << το wing notional, και το sandbox είναι ένα 1-ήμερο smoke test). Μεταφέρεται μόνο ως πλαίσιο: εάν επιλυθεί το ζήτημα loader/lookback παρακάτω και συγκεντρωθεί πραγματικό δείγμα……Εμφάνιση περισσότερωνΕμφάνιση λιγότερων
Η επαλήθευση απέτυχε (Επίπεδο 4 — αξιολόγηση QA) [class=code_defect]: - [edge_concern] Το Sandbox avg_trade_return_pct είναι -45.45% σε 2 συναλλαγές με metrics_reliable=false και data_days=1 — αυτό δεν αποτελεί ετυμηγορία απόδοσης (η per-notional απόδοση δεν είναι ουσιαστική για σκέλη δικαιωμάτων προαίρεσης, όπου το premium notional << το wing notional, και το sandbox είναι ένα 1-ήμερο smoke test). Μεταφέρεται μόνο ως πλαίσιο: εάν επιλυθεί το ζήτημα loader/lookback παρακάτω και συγκεντρωθεί πραγματικό δείγμα weekly-options, ο αναλυτής θα πρέπει να επανελέγξει εάν η καθαρή πίστωση που εισπράχθηκε καλύπτει το round-trip 0.03%/side της Deribit σε 4 σκέλη (open+close x short+long) συν οποιαδήποτε ολίσθηση ανάθεσης, καθώς το per-notional πλεονέκτημα put-credit-spread είναι δομικά ισχνό. - [critical] Το rolling_options.lookback_days=49 περιορίζει την ENTIRE επιλύσιμη αλυσίδα δικαιωμάτων προαίρεσης του backtest ANY στις ~49 ημέρες που λήγουν στο 'now' = ~7 εβδομαδιαίοι κύκλοι / ~14 σκέλη δικαιωμάτων προαίρεσης, ανεξάρτητα από το 6.5-ετές ιστορικό δικαιωμάτων προαίρεσης ETH της Deribit. Η στρατηγική παραμένει επίπεδη για το υπόλοιπο παράθυρο και συναλλάσσεται μόνο στην ουρά. Το sandbox το επιβεβαιώνει εμπειρικά: bars_processed=2400 (~6.5 έτη) ωστόσο data_days=1 και total_trades=2 (trades_count=4). Ένα πλεονέκτημα variance-risk-premium + skew δεν μπορεί να διακριθεί από τον θόρυβο σε ~7 κύκλους / ~14 σκέλη — πολύ κάτω από τις ~30-100 συναλλαγές που απαιτούνται για μετρήσιμο δείγμα δικαιωμάτων προαίρεσης. Αυτή είναι ακριβώς η παγίδα loader-cost-vs-sample-size-22 που προκάλεσε την εγκατάλειψη του σχεδόν πανομοιότυπου BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (ίδιος χώρος, ίδιο lookback_days=49) στο Επίπεδο 4 πριν από ημέρες. Η ίδια η αιτιολόγηση του προγραμματιστή αναγνωρίζει το όριο ('lookback_days είναι 49 (7 κύκλοι, 14 σκέλη δικαιωμάτων προαίρεσης) επειδή ο loader καταλόγου per-bar-type κοστίζει ~10s ανά σκέλος και μια μεγαλύτερη αλυσίδα θέτει σε κίνδυνο το wall clock του Επιπέδου-3'). Όπως έχει διαμορφωθεί, η στρατηγική δεν μπορεί ποτέ να παράγει μετρήσιμο πλήρες backtest. — διόρθωση: Να μην προχωρήσετε με ~7 κύκλους. Επιλύστε την παγίδα loader-cost vs sample-size-22 πριν από την επανυποβολή: ομαδοποιήστε/παραλληλοποιήστε ή αποθηκεύστε προσωρινά τα φορτία catalog.bars() ανά σκέλος σε όλες τις γραμμές, ώστε το lookback_days να μπορεί να φτάσει πολλά έτη εβδομαδιαίων κύκλων (~200-300 κύκλοι) χωρίς να παραβιάσει το wall-clock του sandbox, και στη συνέχεια ορίστε το lookback_days ώστε να καλύπτει το πλήρες παράθυρο δοκιμής. Εάν ο loader πραγματικά δεν μπορεί να επιλύσει μετρήσιμο ιστορικό weekly-options εντός του χρονικού προϋπολογισμού, αυτή η οικογένεια δεν είναι δοκιμάσιμη στο τρέχον πλαίσιο σε εβδομαδιαίο ρυθμό και θα πρέπει να ανασχεδιαστεί (π.χ. λιγότεροι, πιο μακροπρόθεσμοι μηνιαίοι κύκλοι σε όλο το εύρος) αντί
Ιστορικό Επαναλήψεων
Η επαλήθευση απέτυχε (Επίπεδο 2 — συνθετικά σενάρια): Παράμετροι που χρησιμοποιήθηκαν: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'atm_offset', 'skew_margin', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'long_put_offset', 'rolling_options', 'short_put_offset', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Ελέγξτε ότι το __init__ ορίζει όλα τα χαρακτηριστικά από το self.parameters.get(). - steady_uptrend: TypeError: Το……Εμφάνιση περισσότερωνΕμφάνιση λιγότερων
Η επαλήθευση απέτυχε (Επίπεδο 2 — συνθετικά σενάρια): Παράμετροι που χρησιμοποιήθηκαν: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'atm_offset', 'skew_margin', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'long_put_offset', 'rolling_options', 'short_put_offset', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Ελέγξτε ότι το __init__ ορίζει όλα τα χαρακτηριστικά από το self.parameters.get(). - steady_uptrend: TypeError: Το FactoryStrategy._bar_ts() δέχεται 1 positional όρισμα αλλά δόθηκαν 2 (χρονική σήμανση γραμμής: 1735691040000) - steady_downtrend: TypeError: Το FactoryStrategy._bar_ts() δέχεται 1 positional όρισμα αλλά δόθηκαν 2 (χρονική σήμανση γραμμής: 1735691040000) - flat_ranging: TypeError: Το FactoryStrategy._bar_ts() δέχεται 1 positional όρισμα αλλά δόθηκαν 2 (χρονική σήμανση γραμμής: 1735691040000) - volatility_spike: TypeError: Το FactoryStrategy._bar_ts() δέχεται 1 positional όρισμα αλλά δόθηκαν 2 (χρονική σήμανση γραμμής: 1735691040000) - zero_volume: TypeError: Το FactoryStrategy._bar_ts() δέχεται 1 positional όρισμα αλλά δόθηκαν 2 (χρονική σήμανση γραμμής: 1735691040000) - price_gap: TypeError: Το FactoryStrategy._bar_ts() δέχεται 1 positional όρισμα αλλά δόθηκαν 2 (χρονική σήμανση γραμμής: 1735691040000)
Η επαλήθευση απέτυχε (Επίπεδο 2 — συνθετικά σενάρια): Παράμετροι που χρησιμοποιήθηκαν: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'stop_mult', 'put_offset', 'call_offset', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'max_delta_ratio', 'rolling_options', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Ελέγξτε ότι η __init__ ορίζει όλα τα γνωρίσματα από το self.parameters.get(). - steady_uptrend: TypeError: Η……Εμφάνιση περισσότερωνΕμφάνιση λιγότερων
Η επαλήθευση απέτυχε (Επίπεδο 2 — συνθετικά σενάρια): Παράμετροι που χρησιμοποιήθηκαν: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'stop_mult', 'put_offset', 'call_offset', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'max_delta_ratio', 'rolling_options', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Ελέγξτε ότι η __init__ ορίζει όλα τα γνωρίσματα από το self.parameters.get(). - steady_uptrend: TypeError: Η FactoryStrategy._bar_ts() δέχεται 1 positional ορίσματα, αλλά δόθηκαν 2 (χρονική σήμανση μπάρας: 1735691040000) - steady_downtrend: TypeError: Η FactoryStrategy._bar_ts() δέχεται 1 positional ορίσματα, αλλά δόθηκαν 2 (χρονική σήμανση μπάρας: 1735691040000) - flat_ranging: TypeError: Η FactoryStrategy._bar_ts() δέχεται 1 positional ορίσματα, αλλά δόθηκαν 2 (χρονική σήμανση μπάρας: 1735691040000) - volatility_spike: TypeError: Η FactoryStrategy._bar_ts() δέχεται 1 positional ορίσματα, αλλά δόθηκαν 2 (χρονική σήμανση μπάρας: 1735691040000) - zero_volume: TypeError: Η FactoryStrategy._bar_ts() δέχεται 1 positional ορίσματα, αλλά δόθηκαν 2 (χρονική σήμανση μπάρας: 1735691040000) - price_gap: TypeError: Η FactoryStrategy._bar_ts() δέχεται 1 positional ορίσματα, αλλά δόθηκαν 2 (χρονική σήμανση μπάρας: 1735691040000)
Η επαλήθευση απέτυχε (Επίπεδο 3 — δοκιμή sandbox): Δεν παρήχθησαν συναλλαγές Τύπος γραμμής που χρησιμοποιήθηκε: ETH-PERPETUAL.DERIBIT-1-DAY-LAST-EXTERNAL, Γραμμές που επεξεργάστηκαν: 2400 Διαγνωστικά: Το calculate_signal() δεν αξιολογήθηκε ποτέ (0 αξιολογημένες γραμμές) -> καμία κύρια γραμμή δεν έφτασε στη διαδρομή σήματος του βασικού προτύπου -> εάν παρακάμπτετε το on_bar(), καλέστε το super().on_bar(bar); ελέγξτε ότι το bar_type αντιστοιχεί στα δεδομένα του μέσου. Να NOT χαλαρώσετε τα όρια εισόδου — η λογική εισόδου δεν εκτελέστηκε ποτέ. Βεβαιωθείτε ότι η στρατηγική σας παράγει συναλλαγές με τα δεδομένα και τις παραμέτρους που δόθηκαν.
Αποτυχία επαλήθευσης (4 — ανασκόπηση QA) [class=hypothesis_mismatch]: - [edge_concern] Δεν αποτελεί τη βάση της ετυμηγορίας — το ζήτημα είναι η πιστότητα, όχι η απόδοση. (Για την ιστορία, το sandbox είναι επίσης αρνητικό: -2.9%, PF 0.13, win 0.125, ουρά -$2,149 σε ένα υποτίθεται σταματημένο βιβλίο — αλλά αυτό είναι το αποτέλεσμα λανθασμένης στρατηγικής.) - WHOLE-STRATEGY SWAP / MISLINK. Η υπόθεση είναι ένα ETH εβδομαδιαίο PUT CREDIT SPREAD στο Deribit (πώληση put ~25d, BUY put ~10d — κάθετο spread με καθορισμένο……Εμφάνιση περισσότερωνΕμφάνιση λιγότερων
Αποτυχία επαλήθευσης (4 — ανασκόπηση QA) [class=hypothesis_mismatch]: - [edge_concern] Δεν αποτελεί τη βάση της ετυμηγορίας — το ζήτημα είναι η πιστότητα, όχι η απόδοση. (Για την ιστορία, το sandbox είναι επίσης αρνητικό: -2.9%, PF 0.13, win 0.125, ουρά -$2,149 σε ένα υποτίθεται σταματημένο βιβλίο — αλλά αυτό είναι το αποτέλεσμα λανθασμένης στρατηγικής.) - WHOLE-STRATEGY SWAP / MISLINK. Η υπόθεση είναι ένα ETH εβδομαδιαίο PUT CREDIT SPREAD στο Deribit (πώληση put ~25d, BUY put ~10d — κάθετο spread με καθορισμένο κίνδυνο). Ο κώδικας είναι το BTC εβδομαδιαίο δέλτα-ουδέτερο SHORT STRANGLE στο Deribit (το όνομα της κλάσης, το docstring, η αιτιολόγηση iter-3 και κάθε μηχανισμός αφορούν strangle). Διαφέρουν τόσο το μέσο AND όσο και ο μηχανισμός → εσφαλμένα δημιουργημένο/συνδεδεμένο τεχνούργημα, όχι αυτή η υπόθεση. Δημιουργήστε/συνδέστε ξανά το σωστό put-credit-spread ETH. - Λανθασμένο μέσο: η υπόθεση αφορά ETH, αλλά τα instrument_id και bar_type είναι BTC-PERPETUAL.DERIBIT και το underlying του rolling_options είναι 'BTC'. Δεν υπάρχει πουθενά ETH. - Λανθασμένη δομή / δεν έχει καθορισμένο κίνδυνο: η υπόθεση περιορίζει τη μέγιστη ζημία με ένα put wing ~10d PURCHASED. Ο κώδικας υποβάλλει TWO σκέλη SELL, χωρίς αγορασμένο wing NO· η ουρά περιορίζεται μόνο από ένα ήπιο stop ασφαλίστρου στην επόμενη μπάρα (sandbox largest_loss -$2,149 έναντι avg_win ~$214 δείχνει ότι δεν περιορίζει την ουρά) — ακριβώς το ακάλυπτο προφίλ που αποφεύγει η υπόθεση. - Απουσιάζει το βασικό edge: το σήμα της υπόθεσης είναι η ακριβότητα της καθοδικής SKEW (IV του put 25d έναντι ATM IV) μαζί με IV>RV. Ο κώδικας δεν υπολογίζει skew — μόνο IV/RV μέσου strangle VRP. Η εκμετάλλευση του skew των put που διακρίνει αυτή την υπόθεση δεν έχει υλοποιηθεί.
Λόγος Εγκατάλειψης
verification_loop: Η επαλήθευση απέτυχε (Layer 4 — ανασκόπηση QA) [class=code_defect]: - [edge_concern] Το sandbox avg_trade_return_pct είναι -45.45% σε 2 συναλλαγές με metrics_reliable=false και data_days=1 — αυτό δεν αποτελεί ετυμηγορία απόδοσης (η απόδοση ανά ονομαστική αξία δεν έχει νόημα για σκέλη δικαιωμάτων προαίρεσης, όπου η ονομαστική αξία του πριμ << την ονομαστική αξία του wing, και το sandbox είναι δοκιμή καπνού 1 ημερών). Διατηρείται μόνο ως πλαίσιο: αν επιλυθεί το παρακάτω ζήτημα του……Εμφάνιση περισσότερωνΕμφάνιση λιγότερων
verification_loop: Η επαλήθευση απέτυχε (Layer 4 — ανασκόπηση QA) [class=code_defect]: - [edge_concern] Το sandbox avg_trade_return_pct είναι -45.45% σε 2 συναλλαγές με metrics_reliable=false και data_days=1 — αυτό δεν αποτελεί ετυμηγορία απόδοσης (η απόδοση ανά ονομαστική αξία δεν έχει νόημα για σκέλη δικαιωμάτων προαίρεσης, όπου η ονομαστική αξία του πριμ << την ονομαστική αξία του wing, και το sandbox είναι δοκιμή καπνού 1 ημερών). Διατηρείται μόνο ως πλαίσιο: αν επιλυθεί το παρακάτω ζήτημα του φορτωτή/ορίζοντα αναδρομής και συγκεντρωθεί πραγματικό δείγμα εβδομαδιαίων δικαιωμάτων προαίρεσης, ο αναλυτής θα πρέπει να επανεξετάσει αν η καθαρή πίστωση που εισπράχθηκε καλύπτει τη χρέωση 0.03%/πλευράς της Deribit για συναλλαγή μετ' επιστροφής σε 4 σκέλη (άνοιγμα+κλείσιμο x short+long), συν τυχόν ολίσθηση λόγω εκχώρησης, καθώς το πλεονέκτημα ανά ονομαστική αξία ενός put-credit-spread είναι δομικά μικρό. - [critical] rolling_options.lookback_days=49 περιορίζει την ENTIRE ανακτήσιμη αλυσίδα δικαιωμάτων προαίρεσης του backtest ANY στις ~49 ημέρες έως το «τώρα» = ~7 εβδομαδιαίους κύκλους / ~14 σκέλη δικαιωμάτων προαίρεσης, ανεξάρτητα από το 6.5-ετές ιστορικό δικαιωμάτων προαίρεσης ETH της Deribit. Η στρατηγική παραμένει εκτός θέσης για το υπόλοιπο χρονικό παράθυρο και συναλλάσσεται μόνο στο τέλος του. Το sandbox το επιβεβαιώνει εμπειρικά: bars_processed=2400 (~6.5 έτη), αλλά data_days=1 και total_trades=2 (trades_count=4). Δεν είναι δυνατό να διακριθεί ένα πλεονέκτημα πριμ κινδύνου διακύμανσης + ασυμμετρίας από τον θόρυβο σε ~7 κύκλους / ~14 σκέλη — πολύ λιγότερα από τις ~30-100 συναλλαγές που απαιτούνται για μετρήσιμο δείγμα δικαιωμάτων προαίρεσης. Αυτή είναι ακριβώς η παγίδα κόστους φορτωτή έναντι μεγέθους δείγματος-22 που οδήγησε στην εγκατάλειψη, πριν από 4 ημέρες στο Layer, της σχεδόν πανομοιότυπης BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (ίδιο venue, ίδιο lookback_days=49). Η αιτιολόγηση του ίδιου του προγραμματιστή αναγνωρίζει το όριο («Το lookback_days είναι 49 (7 κύκλοι, 14 σκέλη δικαιωμάτων προαίρεσης), επειδή ο φορτωτής καταλόγου ανά τύπο μπάρας κοστίζει ~10s ανά σκέλος και μια μεγαλύτερη αλυσίδα κινδυνεύει να υπερβεί τον χρόνο εκτέλεσης του Layer-3»). Με την τρέχουσα διαμόρφωση, η στρατηγική δεν μπορεί ποτέ να παράγει μετρήσιμο πλήρες backtest. — διόρθωση: Μην υποβάλετε με ~7 κύκλους. Επιλύστε την παγίδα κόστους φορτωτή έναντι μεγέθους δείγματος-22 πριν από την επανυποβολή: ομαδοποιήστε/παραλληλίστε ή αποθηκεύστε στην κρυφή μνήμη τις φορτώσεις catalog.bars() ανά σκέλος μεταξύ των μπαρών, ώστε το lookback_days να καλύπτει πολλά έτη εβδομαδιαίων κύκλων (~200-300 κύκλοι) χωρίς να υπερβαίνει τον χρόνο εκτέλεσης του sandbox, και έπειτα ορίστε το lookback_days ώστε να καλύπτει ολόκληρο το παράθυρο δοκιμής. Αν ο φορτωτής πράγματι δεν μπορεί να ανακτήσει μετρήσιμο ιστορικό εβδομαδιαίων δικαιωμάτων προαίρεσης εντός του χρονικού προϋπολογισμού, αυτή η οικογένεια δεν μπορεί να δοκιμαστεί στο τρέχον harness σε εβδομαδιαία συχνότητα και θα πρέπει να επανασχεδιαστεί (π.χ. λιγότεροι, μεγαλύτερης διάρκειας μηνιαίοι κύκλοι σε όλο το χρονικό εύρος) αντί
Το Stratmill είναι εργαλείο έρευνας και εικονικών συναλλαγών (paper trading), όχι επενδυτική συμβουλή ή χρηματιστηριακός μεσίτης. Τα αποτελέσματα backtest και paper trading είναι υποθετικά. Οι συναλλαγές ενέχουν κίνδυνο απώλειας.