Mga Estratehiya
SOL Perp Cross-Venue Basis Mean Reversion: Hyperliquid vs Binance USD-M (5-Minutong Market-Neutral na Spread Trade)
Resulta: Inabandona
SolCrossVenueBasisMeanReversionHlBinanceNeutral5M
Neutral sa delta, walang liquidation, napakaliit na drawdown (1.85%); nakagawa ng masusukat na sample ang pag-aayos sa iteration-5 (50 trade) sa halip na loop na walang trade
Hypothesis
Implementasyon
Market-neutral na mean-reversion trade sa SOL perp basis sa pagitan ng Hyperliquid (SOLUSD.HYPERLIQUID) at Binance USD-M (SOLUSDT.BINANCE), gamit ang mga pagsasara kada 15 minuto na nakaayon sa timestamp. Bawat nakaayon na bar, kinukuwenta nito ang basis_bps = (hl_close - bn_close) / bn_close * 10,000 at ibinabalik ito bilang tuloy-tuloy na signal. Kapag |basis| >= entry_bps, sini-short nito ang mas mahal na venue at sini-long ang mas mura sa halagang notional na EQUAL USD (neutral sa dolyar at delta ayon sa disenyo: N = equity * per_leg_pct * leverage sa bawat leg, qty = N/price kada venue). Isinasara nito ang dalawang leg kapag lumiit ang basis sa <= exit_bps, o kapag naabot ang max_hold na time stop, na may minimum na tagal ng hawak at cooldown bago muling pumasok upang limitahan ang palit nang palit. O(1) ang trabaho sa bawat bar (timestamp-keyed na dict lookup, eviction ayon sa insertion order, walang scan o sort), at tinitiyak ng cross-leg alignment barrier ng base class na magkasabay ang mga presyo ng dalawang leg bago kalkulahin ang signal.
Mga Resulta ng Beripikasyon
CLEAN RESTART 2026-09-04 — inalis ang kasaysayan ng hatol at mga tala ng pagkatuto sa run na ito, at sinimulan itong muli mula sa verification. Pipeline ang sanhi ng dating pag-abandona, hindi ang market: mali ang pagkakatali ng Layer-2 harness sa mga @staticmethod helper (naayos), naglabas ang QA ng mga pinal na hatol sa performance mula sa hindi pa na-optimize na smoke test (inalis — correctness lang ang hinahatulan ngayon ng QA), at sanhi ng kakulangan ng backtest slot ang mga timeout sa sandbox (naayos). Hindi nagbago ang hypothesis at strategy code. Suriin ang code batay sa merito nito; ang full backtest at optimizer ang magpapasya sa performance kalaunan.
Pagsusuri ng Backtest
- Sharpe
- -0.96
- Kabuuang Return
- -1.85%
- Max Drawdown
- 1.85%
- Kabuuang Trade
- 50
- Win Rate
- 56.0%
- Profit Factor
- 0.72
Neutral sa delta, walang liquidation, napakaliit na drawdown (1.85%); nakagawa ng masusukat na sample ang pag-aayos sa iteration-5 (50 trade) sa halip na loop na walang trade
Tunay na basis ng iisang asset (mas maayos sa mekanismo kaysa sa ratio na ETH/BTC), OHLCV lang
Negatibo ang expectancy: profit_factor 0.72, Sharpe -0.96 (CI [-1.38,-0.75] lubos na mas mababa sa zero), expectancy -$72.91/trade, avg_loss ~2x avg_win
avg_trade_return_pct 0.146% mas mababa sa fee floor; sinukat ng developer ang net edge na ~7 bps kumpara sa ~19 bps para sa round trip na may 4 fill; 25.6% ng gross ang komisyon
Patay ang kapasidad: impact_cost_pct 365% (impact >3x gross), capacity_usd $7,496 — hindi maipag-trade sa makabuluhang laki
HL SOL 15m datos lamang mula sa 2026-03-16 (~5.5 buwan, iisang regime); annual_returns {2026: -1.82}, 50 trades — hindi masusukat sa iba't ibang regime
Paunang minarkahan ng developer na “malamang hindi kikita matapos ang mga fee sa pares na ito”; kabilang sa pamilya ng cross-venue basis
Kasaysayan ng Iterasyon
Bigo ang verification (Layer 3 — sandbox backtest): Walang nagawang trade Ginamit na uri ng bar: SOLUSDT.BINANCE-5-MINUTE-LAST-EXTERNAL, Naprosesong bar: 101952 Diagnostics: nagbalik ng side ang should_enter() nang 0 beses sa 8033 nasuring bar -> hindi na-trigger ang iyong ENTRY CONDITION. Luwagan ang lohika ng pagpasok / mga threshold. Tiyaking nakakagawa ng trade ang iyong strategy gamit ang ibinigay na data at mga parameter.
Bigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na limitasyon ng wall-clock. Halos palaging nangangahulugan ito ng trabahong kada bar na lumalaki kasabay ng kasaysayan — halimbawa, muling pag-scan sa buong serye ng funding/supplementary, o muling pagbuo ng list at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Ihanda nang maaga ang mga naka-sort na timestamp array na ONCE sa __init__ at gumamit ng bisect, o mag-cache ng mga lookup na naka-key sa timestamp, para O(log n) ang gastos kada bar, hindi O(n).
Bigo ang verification (Layer 3 — sandbox backtest): Walang nagawang trade Ginamit na uri ng bar: SOLUSDT.BINANCE-5-MINUTE-LAST-EXTERNAL, Naprosesong bar: 607884 Diagnostics: nagbalik ng side ang should_enter() nang 0 beses sa 9214 nasuring bar -> hindi na-trigger ang iyong ENTRY CONDITION. Luwagan ang lohika ng pagpasok / mga threshold. Tiyaking nakakagawa ng trade ang iyong strategy gamit ang ibinigay na data at mga parameter.
Dahilan ng Pag-abandona
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.