Mga Estratehiya
Bybit PCA-Residual (Avellaneda-Lee s-score) Reversion: Point-in-Time Top-20 Bybit USDT Perps, 3-Factor PCA sa 60-Day Daily Returns, Long z<-1.5 / Short z>+1.5 bilang Standalone na Taya sa Iisang Pangalan, Exit sa |z|<0.5 o 10-Day na Orasan (1-DAY bar, walang posisyon kapag walang pangalang lubhang lumihis)
Resulta: Inabandona
BybitPcaResidualSScoreReversionDaily
Buod ng Resulta
Inilipat ng hypothesis ang ideya ng Avellaneda-Lee PCA s-score reversion mula sa US stock tungo sa point-in-time top-N universe ng Bybit USDT perp sa daily bars, at ipinang-trade ang magkabilang dulo bilang mga standalone na taya sa iisang pangalan na walang hedge. Sa loob ng 3 iteration, paulit-ulit na bumagsak ang strategy sa Layer 3 sandbox verification dahil lumampas ito sa 300s na wall-clock limit. Binago lang ng huling rebisyon ang performance: ibinaba nito ang pool sa 8 malalalim na perp (BTC, ETH, SOL, XRP, DOGE, ADA, LINK, LTC) at hindi ginalaw ang signal, pero hindi pa rin ito pumasa. Iniwan ang run bago makagawa ng anumang sukatan ng backtest.
Hypothesis
Pag-aayos ng performance lamang ang iteration 3. Nagmumula ang timeout sa per-instrument glob ng puno ng catalog ng ParquetDataCatalog, isang nakapirming gastos sa bawat leg anuman ang haba ng window (na-profile sa mga kapatid na multi-leg strategy sa humigit-kumulang 10 s+ bawat leg habang nasa ~40 ang host load). Maliit ang gawain ng strategy kada bar at hindi lumalaki kasabay ng saklaw. Binawasan ang bilang ng leg mula 13 tungo sa 8, ang pinakamalalalim na Bybit USDT perp na may datos bago ang 2022. Hindi binago ang signal, mga exit at laki ng posisyon. Paglihis: humihingi ang hypothesis ng top-20 point-in-time universe mula sa pool na 78 kontrata, na hindi kasya sa 300 s na sandbox cap sa harness na ito. Mas maliit na cross-section ang 8 pangalan na may 3 factor, at higit na sasandal ang residual sa BTC/ETH market factor. Kung kailangan ng analyst ang buong cross-section na 20 pangalan, budget ng sandbox, hindi ang code, ang limitasyon. Mula 6 tungo sa 4 ang max_positions para manatiling mas mababa sa universe na 8 pangalan ang mga slot (gross ay <= 1x equity pa rin).
verification_loop: sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na wall-clock limit sa ~20000-bar na window (2400 araw ng BTCUSDT.BYBIT-1-DAY-LAST-EXTERNAL). Karaniwan itong nangangahulugan ng gawaing kada bar na lumalaki kasabay ng kasaysayan — halimbawa, muling pag-scan sa buong funding/supplementary series, o muling pagbuo ng listahan at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang kalkulahin ang mga nakaayos na timestamp array ONCE sa __init__ at gamitin ang bisect, o i-cache ang lookup ayon sa timestamp, para O(log n) sa halip na O(n) ang gastos kada bar.
Implementasyon
Avellaneda-Lee PCA-residual s-score reversion sa daily point-in-time top-N (ayon sa trailing 30-day dollar volume) ng 8 likidong Bybit USDT perp. Isinasagawa ang PCA(3) sa correlation matrix ng 60-day na daily log returns; nire-regress ang bawat pangalan sa mga eigenportfolio factor return gamit ang OLS, at pinagsasama-sama ang residual bilang 60-day z-score. Mag-long kapag z<=-1.5, mag-short kapag z>=+1.5, bilang standalone na taya sa iisang pangalan (hanggang 4 sabay-sabay, tig-1/4 ng equity, gross <= 1x). Lumabas kapag |z|<0.5 o pagkalipas ng 10-day na takdang oras. Walang posisyon kapag walang pangalang lubhang lumihis.
Mga Resulta ng Beripikasyon
sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na wall-clock limit sa ~20000-bar na window (2400 araw ng BTCUSDT.BYBIT-1-DAY-LAST-EXTERNAL). Karaniwan itong nangangahulugan ng gawaing kada bar na lumalaki kasabay ng kasaysayan — halimbawa, muling pag-scan sa buong funding/supplementary series, o muling pagbuo ng listahan at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang kalkulahin ang mga nakaayos na timestamp array ONCE sa __init__ at gamitin ang bisect, o i-cache ang lookup ayon sa timestamp, para O(log n) sa halip na O(n) ang gastos kada bar.
Buod ng Resulta
Maaaring lumampas sa limitasyon ng 300s sandbox ang mga cross-sectional strategy na maraming leg dahil sa pag-load ng catalog kada leg, hindi sa pag-compute kada bar. Panatilihing kaunti ang mga leg mula sa unang draft o tiyaking pasok ang disenyo sa takdang oras ng sandbox.
Iniwan ang strategy sa verification loop. Nag-timeout ang Layer 3 sandbox backtest, na lumampas sa limitasyong 300s sa ~20000-bar na window (2400 araw na may BTCUSDT.BYBIT 1-DAY bar). Nag-timeout pa rin ito matapos bawasan ng iteration 3 ang universe mula 13 leg tungo sa 8 para lumiit ang catalog load.
Avellaneda-Lee PCA-residual reversion sa Bybit USDT perp: iangkop ang 3-factor PCA sa 60-day daily return, gawing z-score ang pinagsama-samang residual ng bawat pangalan, at mag-trade ng standalone na long sa iisang pangalan kapag z<-1.5 at short kapag z>+1.5; lumabas sa |z|<0.5 o pagkalipas ng 10 araw.
Walang datos ng performance. Walang laman ang ulat ng backtest, at hindi umabot ang strategy sa optimization, pagsusuri ng backtest, pagsusuri ng analyst o pagsusuri ng risk.
Ang Stratmill ay isang tool para sa pananaliksik at paper trading, hindi payo sa pananalapi o isang broker. Ang mga resulta ng backtest at paper trading ay hypothetical. May panganib ng pagkalugi ang pangangalakal.