27 Ogos 2026 · kejuruteraan data

Alam semesta simbol anda ialah mesin masa: bias kelangsungan dalam ujian semula perp kripto

Alam semesta simbol anda ialah mesin masa: bias kelangsungan dalam ujian semula perp kripto

Anda menghantar buku nota itu kepada saya pada malam Ahad, dan sejak itu saya membukanya pada monitor kedua. Momentum keratan rentas, 150 perp Binance USDⓈ-M teratas mengikut volum dolar 30 hari, imbangan semula mingguan, beli desil teratas dan jual desil terbawah, dari 2021-01 hingga 2026-06. Sharpe 2.31, pengeluaran maksimum 14.2%, dan model kos yang nampak munasabah pada saya: masuk sebagai taker, keluar sebagai taker, pembiayaan dikumpulkan bagi setiap sela, istilah gelinciran yang meningkat mengikut saiz posisi anda berbanding buku pesanan. Anda buat bahagian yang sukar dengan betul. Kemudian anda bertanya mengapa dagangan kertas selama enam minggu mendatar, dan sama ada kelebihan itu sudah merosot.

Ia tidak merosot. Ia memang tiada dalam ujian semula itu. Lihat sel 4:

info = requests.get(BASE + "/fapi/v1/exchangeInfo").json()
symbols = [s["symbol"] for s in info["symbols"]
           if s["status"] == "TRADING" and s["quoteAsset"] == "USDT"]

Anda memanggil titik akhir itu pada Jun 2026 dan menggunakan jawapannya untuk menentukan apa yang boleh didagangkan pada Mac 2021. Setiap simbol dalam senarai itu masih wujud pada Jun 2026, memang begitu rekaannya. Itulah keseluruhan pepijatnya, dan kesannya lebih besar daripada keseluruhan model kos anda yang lain.

2.31 → 0.74Sharpe, senarai yang masih wujud berbanding titik masa
~1 dalam 5daripada alam semesta 2021 anda sudah tidak wujud
380 KBsyot kilat exchangeInfo harian, dimampatkan dengan gzip

Perkara yang tidak akan diberitahu oleh titik akhir itu

Tiada sejarah dalam exchangeInfo. Tiada parameter asOf, tiada arkib, tiada log perubahan. Ia cuma gambaran keadaan sekarang, dan Binance tidak pernah menjanjikan apa-apa yang lain. Apabila kontrak dinyahsenarai, entrinya dipadam daripada respons dan ticker itu tidak lagi wujud bagi API. Binance telah menyenaraikan lebih 600 kontrak perpetual USDⓈ-M sejak 2019 dan menamatkan lebih daripada seratus daripadanya. BTS, COCOS, TOMO, RAY, FTT, SC, dan sederetan panjang kontrak musim alt 2021 yang bersinar untuk satu suku tahun sebelum aktiviti susut sehingga platform menggugurkannya.

Fikirkan nama mana yang disukai saringan momentum 30 hari. Bukan BTC. Ia suka aset yang baru sahaja naik tiga kali ganda kerana lonjakan penyenaraian dan kitaran Twitter. Kedua-dua kumpulan itu, iaitu aset yang disukai saringan dan aset yang akhirnya dinyahsenarai, banyak bertindih, dan penapis alam semesta anda membuang semua yang bertindih itu.

Saya jalankan semula strategi anda menggunakan arkib syot kilat kami, alam semesta pada titik masa, isyarat yang sama, kos yang sama, dan Sharpe yang terhasil ialah 0.74 dengan pengeluaran 31%. Kira-kira dua perlima daripada jurang itu datang daripada aset yang dinyahsenarai dan anda tidak sepatutnya boleh memegangnya. Satu perempat lagi berpunca daripada masalah yang bertentangan, lebih terselindung, dan saya rasa anda kurang senang mendengarnya.

Hujung satu lagi mesin masa: simbol yang belum wujud ketika itu

Ciri anda ialah pulangan 90 hari. Tetingkap gelongsor anda menggunakan min_periods=20, kerana anda menetapkannya sekali supaya pemanasan tidak menghapuskan suku pertama sampel, kemudian tidak menyemaknya semula. Jadi kontrak yang mula disenaraikan 21 hari lalu mendapat skor momentum berdasarkan tiga minggu pergerakan harga selepas penyenaraian, menduduki desil teratas hampir setiap kali penyenaraiannya berjalan lancar, lalu masuk ke dalam portfolio anda.

Bahagian itu boleh dikatakan sah. Inilah yang tidak sah: penyedia data anda mengisi sejarah bagi sesetengah simbol dengan data spot atau indeks dari sebelum perp itu wujud, jadi segelintir kontrak mempunyai sejarah kline yang mendahului onboardDate mereka sendiri. Anda boleh menyemaknya dalam kira-kira seminit. Cantumkan jadual harga dengan tarikh mula penyenaraian dan kira baris sebelum tarikh itu. Dalam data anda terdapat 41 simbol dengan bar sebelum penyenaraian, dan salah satu daripadanya, pada musim panas 2023, menyumbang kenaikan 6% dalam satu minggu kepada lengkung ekuiti melalui posisi dalam kontrak yang hanya akan wujud sembilan hari kemudian.

Rentetan ticker bukan pengecam. Ia label yang disewakan oleh bursa, kadangkala dua kali.

Ini membawa kita kepada penukaran nama. MATICUSDT menjadi POLUSDT. FTMUSDT menjadi SUSDT melalui penukaran 1:1. Insiden LUNA pada Mei 2022 meninggalkan LUNCUSDT dan kemudian LUNAUSDT baharu yang berkongsi akar ticker dengan aset yang kehilangan hampir segala-galanya. Jika pemuat data anda menggunakan rentetan simbol sebagai kunci lalu mencantumkan apa sahaja fail yang ditemuinya, sekurang-kurangnya satu siri di dalamnya mempunyai ketakselanjaran yang bukan pergerakan harga, dan ciri momentum anda akan membaca ketakselanjaran itu sebagai isyarat terkuat dalam keratan rentas.

Semua perkara lain yang berubah tanpa anda sedari

Sebaik sahaja anda menerima bahawa senarai simbol berubah mengikut masa, hujah yang sama terpakai pada setiap medan lain dalam respons itu. Anda menggunakan nilai hari ini untuk semua medan tersebut.

MedanCara ia berubahKesan buruk
statusTRADING → SETTLING → tiadaBias kelangsungan; keluar secara khayalan pada harga penutupan yang tidak pernah didagangkan
onboardDatePenyenaraian baharu setiap minggu; tiada bagi simbol yang sudah matiMendagangkan kontrak sebelum ia wujud
tickSize / stepSizeDilaraskan apabila aras harga berubahPembundaran pesanan dan harga had yang sepatutnya ditolak
minNotionalDinaikkan dari semasa ke semasa untuk buku pesanan yang nipisPosisi kecil yang akan ditolak oleh penghala dagangan sebenar anda
fundingIntervalHours8h selama bertahun-tahun, kemudian 4h atau 1h bagi banyak simbolKos pegangan tersasar 2–3× tepat pada alt yang dipegang oleh saringan anda
leverage bracketsTahap dan margin penyelenggaraan disemak semulaPermodelan pembubaran dan kapasiti margin

Pembiayaan paling memudaratkan dalam kes anda. Gelung pengumpulan anda mengandaikan tiga bayaran sehari sepanjang sejarah. Sebahagian besar portfolio alt beralih kepada pembiayaan setiap 4 jam, dan posisi jual dalam aset dengan kadar pembiayaan tinggi menyumbang sebahagian besar PnL simulasi anda. Ini bukan tersasar sedikit kerana pembundaran. Ini tersasar berganda-ganda.

Penyahsenaraian itu sendiri ialah satu peristiwa, tetapi anda tidak memodelkannya

Dalam ujian semula pada titik masa, saya beri strategi itu jalan keluar yang agak menguntungkan. Penyahsenaraian sebenar mengikut jadual: pengumuman, biasanya 7 hingga 14 hari lebih awal, kemudian tempoh pengurangan posisi sahaja, lalu penyelesaian paksa pada harga tanda aras. Pengumuman itu maklumat awam dan anda boleh bertindak, jadi simulasi yang wajar ialah keluar pada harga penutupan hari pengumuman. Namun, bagi penyahsenaraian alt yang biasa, harga penutupan itu sudah 10-20% di bawah paras minggu sebelumnya, buku pesanan nipis, dan istilah gelinciran anda perlu mengambil kira bahawa ia sedang beroperasi dalam keadaan pasaran yang berbeza. Jika enjin pelaksanaan anda memberikan harga penyelesaian tanpa sebarang kesan pasaran, secara senyap anda telah menjadikan aset yang sedang mati boleh didagangkan pada nilai saksama.

Jika anda tidak pernah mengarkibkan exchangeInfo, keadaan belum terlambat. Himpunan data awam di data.binance.vision/data/futures/um/monthly/klines/ masih menyimpan direktori untuk simbol yang dinyahsenarai lama selepas API melupakannya. Senaraikan direktori itu, kemudian fail bulanan pertama dan terakhir bagi setiap simbol akan memberikan anggaran tempoh penyenaraian dan penyahsenaraian yang boleh digunakan tanpa penyedia data. Ini ialah pembinaan semula, bukan rekod, dan ia tidak dapat mendapatkan semula saiz tick atau sela pembiayaan. Tetapi ia akan memberitahu anda simbol mana yang wujud pada masa tertentu, iaitu 80% daripada perkara yang anda perlukan menjelang Isnin.

Perkara yang saya mahu anda bina sebelum menyentuh isyarat itu lagi

  1. Skrip cron yang mengambil exchangeInfo daripada setiap platform yang anda kaji setiap hari, kemudian menyimpannya dalam storan objek dengan tarikh sebagai kunci. Selepas dimampatkan dengan gzip, saiznya kurang daripada setengah megabait. Kos sepuluh tahun cuma ralat pembundaran dalam S3, tetapi memberi anda keupayaan penyelidikan yang tidak boleh dibeli kemudian.
  2. Master aset yang diterbitkan daripada syot kilat itu: satu baris bagi setiap (platform, simbol, valid_from, valid_to) dengan set medan penuh. Bandingkan syot kilat berturutan untuk menjana data ini, dan anggap setiap perubahan medan sebagai baris baharu.
  3. Fungsi alam semesta yang mewajibkan argumen cap masa. universe(ts), jangan sekali-kali universe(). Tetapkan nilai lalai supaya mustahil sesiapa pun, termasuk anda sendiri pada pukul 1 pagi, memilih senarai yang masih wujud secara tidak sengaja.
  4. Semakan sebelum penyenaraian dalam pemuat data: tiada bar boleh wujud sebelum onboard_ts tolak satu hari. Hentikan larian, jangan sekadar beri amaran.
  5. ID instrumen dalaman yang stabil dan kekal merentas penukaran nama, dengan ticker dijadikan atribut sahaja. Petakan POL dan MATIC kepada satu ID, dan tandakan penamaan semula supaya logik kesinambungan boleh menolak pencantuman merentasinya.

Buat semua itu dan jalankan semula. Saya rasa hasilnya akan hampir kepada 0.74 yang saya peroleh, dan soalan yang menarik nanti ialah sama ada 0.74 yang merangkumi aset mati itu mengandungi sesuatu yang berbaloi untuk didagangkan secara kertas. Mungkin ada. Momentum keratan rentas dalam perp ada potensinya, dan sebahagian daripada baki selepas anda membetulkan alam semesta itu ialah pulangan pegangan sebenar daripada posisi jual. Anda juga akan dapati hasil dagangan kertas dan ujian semula mula sepadan, kerana dagangan kertas memang sentiasa menggunakan alam semesta pada titik masa. Ia tidak pernah ada pilihan lain.

P.S. Ini bukan keanehan kripto, cuma lebih ketara di sini. Penyelidik ekuiti sudah lama bergelut dengan pulangan penyahsenaraian dan ticker yang digunakan semula sejak CRSP mula mengedarkannya, manakala pasaran ramalan membawa perkara ini ke tahap maksimum: setiap kontrak tamat tempoh secara reka bentuk, jadi alam semestanya cuma terdiri daripada penyenaraian dan penamatan. Jika anda memindahkan saringan ini ke Kalshi, bina master aset dahulu. Tiada jenis sejarah lain di sana.

bias kelangsungandata pada titik masaniaga hadapan kriptoujian semulakejuruteraan data
← Semua catatan