Ugrás a tartalomra

Eredeti megtekintése

CryptoLowVolAnomalySpotBasketLongOnly

Hipotézisek

Kriptó alacsony volatilitású anomália, csak-long kiválasztás (short láb nélkül): Tartsd a fix 25-coinos likvid spot univerzum 5 LOWEST-realizált-volatilitású nevét, egyenlő súlyozással, 10-napos rebalance-szal DAILY bar-okon, a könyv egy 15% ex-ante volatilitás célra van skálázva — tiszta OHLCV, kapu nélkül, kiegészítő feed nélkül

Hipotézisek

Egy LONG-ONLY, SELECTION-BASED (explicit módon NOT dollár-neutrális, NOT béta-fedezett, NO short lábbal rendelkező) keresztmetszeti stratégia BINANCE_SPOT-en, egy FIXED 25-eszközös likvid univerzumon keresztül. Minden 10. napi baren rangsorolja az egyes érméket a saját gördülő 20-napos realizált volatilitásuk alapján, és tartsa a 5 LOWEST-t egyenlő súllyal; a teljes könyv ezután egyetlen faktorral, min(1.0, 0.15 / mean_RV_of_the_5) skálázódik, így a portfólió célja ~15% éves szintű volatilitás, és soha nem haladja meg a 1.0x névértéket (nincs tőkeáttétel, készpénzszámla). Nincs momentum-tag, nincs trendszűrő, nincs rezsimkapu, nincs kiegészítő adatforrás, és nincs küszöbparaméter — a realizált volatilitás a ENTIRE jelzés, és RANK-ként használatos, nem be/ki kapuként. Ezt a catalogon mértem meg, mielőtt javasoltam volna, nem pedig állítottam. A Nautilus fixpontos barok közvetlen dekódolásával (BINANCE_SPOT napi, 25/25 jelenlévő eszköz, 2017-10-27 -> 2026-09-19, ~9 év), a fenti konfiguráció +0.74 Sharpe-mutatót ad NET-nél, a teljes 0.20% spot oda-vissza költséggel, 13.4% éves szinten 18.1% volatilitás mellett, -33.6% maximális visszaeséssel, 430 belépéssel, és 1.37% átlagos kereskedésenkénti hozammal a pozíció névértékéhez viszonyítva. Naptári évenként: 2018 -19%, 2019 +17%, 2020 +49%, 2021 +40%, 2022 -26%, 2023 +40%, 2024 +41%, 2025 +6%, 2026 -5% — 6/9 év pozitív, és BOTH teljes medvepiacot is túlél. CRITICAL ROBUSTNESS EVIDENCE (ez egy replikációs ellenőrzés, NOT egy proxy láb — a stratégia csak BINANCE_SPOT-t kereskedi): az azonos rangsorolási szabályt egymástól függetlenül futtatták le BYBIT lineáris perpeken és BINANCE USD-M perpeken. Egy dátum-illesztett 2022-2026 ablakban a két platform a tizedesjegyig megegyezik — legalacsonyabb-vol Sharpe +0.58 (Bybit) vs +0.57 (Binance), legmagasabb-vol +0.11 vs +0.11, éves hozam 31.0% vs 30.4% — egy +0.25/+0.21 egyenlő súlyú benchmarkkal szemben. Ugyanez a hatás három független platform-adatpipeline-on keresztül is reprodukálódik. Egy nem illesztett ablakban a platformok látszólag eltértek (0.38 vs 1.01); ez pusztán egy előzmény-kezdet artifact volt (a Bybit univerzuma hiányos 2022 előtt), amit izoláltam, nem pedig eredményként jelentettem. Gazdasági ok és WHO PAYS: ez az alacsony-volatilitás / lottó-preferencia anomália (Bali-Cakici-Whitelaw; Frazzini-Pedersen), és a kripto ennek legtisztább élőhelye. A magas realizált volatilitású érmék azok, ahol a tőkeáttételt kereső és lottót kereső lakossági forgalom koncentrálódik — felverik az árukat, mert a vevők a nagy kifizetés CHANCE-ért fizetnek, nem a várható hozamért. Ezek a vevők az ellenfél: rendszeresen túlfizetnek a volatilitásért, és gyenge kockázattal korrigált hozamokat fogadnak el. A mérés éles, és ez a fő falszifikálható állítás — 2022-2026 időszak alatt a 5 HIGHEST-volatilitású eszközök ~9% éves hozamot értek el, míg a 5 LOWEST ~31%-t hozott, a magas-vol kosár pedig nagyjából kétszer akkora volatilitást hordozott. A prémium nem árfolyam-trend hatás: ellenőriztem, hogy a gördülő-momentum rangsorolás más és gyengébb profilt hoz becsületes, nem-átfedő ablakokon (t=+1.25) mint a volatilitás-rangsorolás (t=+3.30 nyers, +2.53 dátum-klaszterezett).

Hipotézisek

Visszaállítja a hipotézis 25-eszközös univerzumát és 1.0 maximális bruttó kitettségét, miközben megőrzi a tiszta OHLCV alacsony-volatilitású rangsorolási mechanizmust.

Hipotézisek

verification_loop: A validáció sikertelen (2. réteg — szintetikus forgatókönyvek): Használt paraméterek: ['n_hold', 'cash_buffer', 'min_notional', '_param_bounds', 'rebalance_days', 'rv_lookback_days', 'target_annual_vol', 'max_gross_exposure', 'rebalance_tolerance'] Ellenőrizze, hogy a __init__ minden attribútumot beállít-e a self.parameters.get() alapján. - steady_uptrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - steady_downtrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - flat_ranging: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - volatility_spike: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - zero_volume: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - price_gap: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000)

Megvalósítás

Csak long Binance Spot kosár, amely az öt legalacsonyabb realizált volatilitású eszközt tartja egy fix 25-érmés univerzumból, minden tíz napi bar után újrasúlyozva, 15% éves szintű volatilitásra skálázva, 1.0x bruttó kitettségi korláttal.

Ellenőrzési eredmények

A validáció sikertelen (2. réteg — szintetikus forgatókönyvek): Használt paraméterek: ['n_hold', 'cash_buffer', 'min_notional', '_param_bounds', 'rebalance_days', 'rv_lookback_days', 'target_annual_vol', 'max_gross_exposure', 'rebalance_tolerance'] Ellenőrizze, hogy a __init__ minden attribútumot beállít-e a self.parameters.get() alapján. - steady_uptrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - steady_downtrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - flat_ranging: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - volatility_spike: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - zero_volume: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000) - price_gap: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar időbélyeg: 1735692060000)

Eredmény összegzése

CryptoLowVolAnomalySpotBasketLongOnl-7a915cf1a2

Eredmény összegzése

A stratégia egy csak long Binance Spot kosarat tesztelt, amely az öt legalacsonyabb volatilitású érmét tartotta egy 25-érmés univerzumból. Bár a hipotézis pozitív történelmi eredményeket jelentett, a validáció minden szintetikus forgatókönyvben elbukott egy Decimal/float TypeError miatt, így a stratégiát elvetették a backtesztelés vagy optimalizálás előtt.

Eredmény összegzése

Biztosítsa, hogy a Decimal és float aritmetika következetesen legyen kezelve a szintetikus validáció előtt.

Eredmény összegzése

Három iteráció után elvetették, mert a 2. réteg validációja sikertelen volt: mind a hat szintetikus forgatókönyv Decimal/float TypeError-t dobott. A későbbi szakaszokat nem érték el.

Eredmény összegzése

Egy kriptovaluta alacsony-volatilitású anomáliát próbált kihasználni azáltal, hogy az öt legalacsonyabb realizált volatilitású eszközt tartotta egy fix 25-érmés Binance Spot univerzumból.

Eredmény összegzése

A hipotézis 0.74 nettó Sharpe-mutatót, 13.4% éves hozamot, -33.6% maximális visszaesést (drawdown), 430 belépést és 1.37% átlagos kereskedésenkénti hozamot jelentett. Nem készült pipeline backtest vagy optimalizálási jelentés.

Iteration History

Ellenőrzés sikertelen (Layer 4 — QA felülvizsgálat) [osztály=code_defect]: - [edge_concern] A sandbox gazdaságossága egészséges és belsőleg konzisztens, így a profitabilitás NOT ennek a hibának az oka. avg_trade_return_pct 3.73% x avg_position_pct 8.25% x 95 kötés = a tőke ~29%-a a total_return 32.07% értékkel szemben — a könyvelés összhangban van a tőkegörbével (nincs elszámolási hiba), és a 3.73%/kötés ~18x-kal fedezi a 0.20% BINANCE_SPOT oda-vissza útját, miközben a jutalékok a bruttó összegnek csak 2.64%-át teszik ki. Két dolgot érdemes az elemzőnek továbbvinnie: (1) a jelentett Sharpe 0.547 belsőleg nem konzisztens a annualized_volatility 8.12%-n mért CAGR 19.26% értékkel — a napi MTM sorozat a 2401 napból csak 580 napon mozdult el, miközben a könyv folyamatosan tartja a 5 spot lábakat kb. -2022 novembere óta, így a kockázattal korrigált számok (Sharpe, Sortino, volatilitás, VaR, Calmar) hígítottak/ritkák a realizált könyveléshez képest. Csak a tünetet állapítja meg, okot nem. (2) a rezsimenkénti attribúció már most azt mutatja, hogy nyugodt +42.6% (Sharpe 1.40) a normál -4.1% és a stresszes -3.7% rezsimekkel szemben, azaz az alacsony volatilitású prémium itt egy nyugodt rezsimhez kötődő jelenség ebben a mintában — de ezeket a tercileket egy olyan ablakon számították, amely többségében lapos (lásd a kritikus problémát), ezért az ablak javítása után olvasd újra őket, ahelyett hogy most cselekednél alapján. - [kritikus] UNIVERSE MAKES 58% OF THE BACKTEST WINDOW STRUCTURALLY UNTRADEABLE, CORRUPTING EVERY RISK METRIC. Az alaptemplát lábak közötti igazítási korlátja (base_template.py _maybe_process_primary + _sync_extra_iids) elhalasztja a fő (primary) bart addig, amíg EVERY azonos időkeretű extra láb rendelkezik bar-ral pontosan azon az időbélyegen, és ez a stratégia emellett teljes sort is megkövetel a _row_for()-ban. Ellenőriztem az első bar dátumokat a data/catalog-ban mind a 25 láb esetében: a kötő nevek APTUSDT.BINANCE_SPOT (első 1-DAY bar 2022-10-20) és ICPUSDT.BINANCE_SPOT (2021-05-12). A fő BTCUSDT.BINANCE_SPOT 2017-08-18-n kezdődik, és a teljes backtest nem ad meg kezdő dátumot (backtest_agent._run_backtest csak `end`-t küld), így a motor 2017-08 -> 2026-09 (~9.1 év) között fut, miközben a könyv csak ~2022-11-10-tól tudja leadni az első megbízását (APT listázás + 21 igazított sornyi bemelegítés). A 9.1 évből kb. 5.25 (58%) lapos 0.00% napként jelenik meg a napi rácson. A sandbox pontosan ezt mutatja be: a covid_crash_2020, china_ban_2021, luna_collapse_2022 és rate_shock_2022 (jan-okt) stresszablakok mind pontosan 0.0000% értéket adnak vissza, míg a ftx_collapse_2022 (2022-11-06-tól kezdve) az első nem nulla, -8.20% értékkel. Következmények, amelyeket sem az optimalizáló, sem az elemző nem tud visszafordítani: (a) a -2. fázis célfüggvénye egy olyan sorozaton számított Sharpe, amely többségében nullákból áll — a sandbox 0.547-t jelent, miközben ugyanennek a könyvnek a CAGR értéke a ACTIVE időszakán 19.26%; (b) körülbelül öt naptári év pontosan 0.00% értéket fog jelenteni, és nem-pozitívként számít majd a pozitív évek arányára vonatkozó érvényességi küszöbhöz képest; (c) a hipotézis saját, előre regisztrált állításai — Sharpe +0.74 a 2017-2026 időszakon, a 9 évből 6 pozitív, 'túléli BOTH teljes medvepiacot' (2018 -19%, 2022 -26%) — egyáltalán nem produkálhatók, mert 2018 és 2022 első tíz hónapja a holt ablakon belül van; (d) a realizált volatilitás rezsim tercilisei egy olyan sorozaton számítottak, amelynek többsége holt nap. Ez egy méretezési/konfigurációs hiba nyilvánvaló javítással, nem az edge-ről szóló állítás: maga a kereskedési logika helyes (lásd a megjegyzéseket). (sor: 49) — javítás: Válassz olyan univerzumot, amelynek minden tagja létezik a mérni kívánt ablakban, és a konfiguráció indoklásában mondd meg, melyik ablakról van szó. Ellenőrzött catalog első-bar dátumok a jelenlegi 25 esetében: APT 2022-10-20, ICP 2021-05-12, majd FIL 2020-10-16 / AAVE 2020-10-16 / NEAR 2020-10-15 / AVAX 2020-09-23 / UNI 2020-09-18 / DOT 2020-08-19 / SOL 2020-08-12, majd BCH 2019-11-29 / HBAR 2019-09-30 / DOGE 2019-07-06 / ALGO 2019-06-23 / ATOM 2019-04-30 / LINK 2019-01-17, majd VET 2018-07-26 / ETC 2018-06-13 / TRX 2018-06-12 / XLM 2018-06-01 / XRP 2018-05-05 / ADA 2018-04-18, és BTC/ETH 2017-08-18, BNB 2017-11-07, - [figyelmeztetés] A rotáció során a vételi méretezést `available = get_account_equity() * cash_buffer` korlátozza, amelyet AFTER-kor olvas be, miközben a kilépő és trim SELL megbízások a 279-298 sorokban kerülnek beadásra. A backtestben ez helyes, mert a NT SimulatedExchange-e ugyanabban a motor-iterációban teljesíti a piaci megbízásokat, így a USDT egyenleg már tükrözi az eladásokat. Paper/live esetben ez nem így van: a piaci megbízások a következő tickig várakoznak, így egy olyan rotációnál, amely 2-3 nevet ad el, hogy 2-3 új nevet finanszírozzon, a stratégia az eladás előtti készpénzt fogja látni, minden hiányt `ratio < 1`-vel skáláz, és alultelepít. Mivel a tartott nevek csak akkor kerülnek átméretezésre, amikor kicsúsznak a +/-25% tolerancia sávból, a hiány egy későbbi rotációig fennmaradhat. Backtest/paper eltérés, nem backtest-helyesség hiba. (sor: 309) — javítás: Vagy úgy számold ki `available`-t, hogy (készpénz + az éppen beadott kilépő/trim megbízások névértéke), vagy halaszd el a rotáció vételi lábát a következő barra, miután az eladások elszámolódtak (egy barral késleltetett vételi sor, a rebalance periódushoz kötve). Ha ezt így hagyod, mondd ki explicit módon az indoklásban, hogy a paper-parity ellenőrzés ne hibaként olvassa az eltérést. - [figyelmeztetés] Az egylábas adatkiesések leállítják az egész könyvet. `_row_for()` None-t ad vissza, hacsak nem EVERY a 25 láb közül legalább az egyiknek van bar-ja, amely pontosan a fő bar időbélyegét viseli, és az alaptemplát korlátja is önállóan blokkolja a fő bart ugyanebben a helyzetben. Egyetlen hiányzó napi bar bármelyik névnél (gyűjtési hézag, tőzsdei felfüggesztés) csendben kihagyja az adott nap sorát, lyukat hagyva a realizált volatilitáshoz használt log-hozam ablakban; egy olyan név, amely teljesen leáll a publikálással (delisting), örökre befagyasztja a stratégiát nyitott pozíciókkal. A viselkedés inkább konzervatív, mint hibás, de láthatatlan — semmi nem naplózza vagy számolja a kihagyott napokat. (sor: 88) — javítás: Számold a kihagyott sorokat (egy `self._skipped_rows` int-et az alaptemplát automatikusan perzisztál), és naplózz figyelmeztetést, ha egy láb több mint kb. 2 egymást követő fő baron át hiányzik, hogy egy delisting diagnosztikaként jelenjen meg, ne csendes lapos könyvként.

Iteration History

A validáció sikertelen (4. réteg — QA felülvizsgálat) [osztály=hypothesis_mismatch]: - [edge_concern] A smoke backtest nyereséges, de a teljesítmény nem használható helyességi ítéletként. - [kritikus] A hipotézis egy fix 25-érmés Binance Spot univerzumot igényel, de az implementáció csak 14 instrumentumot konfigurál. A 5 eszköz tartása így 5/14-t választ ki 5/25 helyett, ami lényegesen megváltoztatja a keresztmetszeti stratégiát. (45. sor) — javítás: Állítsa vissza a pontos 25-eszközös univerzumot itt: extra_instruments és extra_bar_types, majd futtassa újra a validációt és a backtesztelést. Alternatívaként formálisan módosítsa a hipotézist a 14-eszközös változatra. - [kritikus] A hipotézis 1.0x maximális bruttó kitettséget engedélyez, de az implementáció a max_gross_exposure értékét 0.95-ra állítja, és 0.95-nál rögzíti. (29. sor) — javítás: Használjon 1.0 maximumot, vagy módosítsa kifejezetten a hipotézist a 0.95 korlát előzetes rögzítésére.

Elvetés oka

verification_loop: Ellenőrzés sikertelen (Layer 2 — szintetikus forgatókönyvek): Használt paraméterek: ['n_hold', 'cash_buffer', 'min_notional', '_param_bounds', 'rebalance_days', 'rv_lookback_days', 'target_annual_vol', 'max_gross_exposure', 'rebalance_tolerance'] Ellenőrizd, hogy az __init__ minden attribútumot beállít-e a self.parameters.get() alapján. - steady_uptrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - steady_downtrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - flat_ranging: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - volatility_spike: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - zero_volume: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - price_gap: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000)
Stratégiajelentés

A Stratmill egy kutatási és papíralapú kereskedési eszköz, nem befektetési tanácsadás vagy bróker. A backteszt- és papírkereskedési eredmények hipotetikusak. A kereskedés veszteség kockázatával jár.