ETH Pörssienvälinen perp-basis-keskiarvopalautus (Hyperliquid vastaan Binance, 4H, long-short)
Lopputulos: Hylätty
EthCrossVenuePerpBasisMeanReversionLS4H
Lopputuloksen yhteenveto
Tämä strategia kohdistui aliedustettuihin Hyperliquid-, pörssienvälinen- ja long-short-luokkiin markkinaneutraalilla ETH-basis-kaupalla Hyperliquidin ja Binancen välillä, pyrkien hyötymään 2.0 ylittävien z-pistepoikkeamien palautumisesta. Mekaanisesti se toimi moitteettomasti: 446 puhdasta markkinaneutraalia kauppaa, lähes nollabeta eikä virheitä. Silti se hävisi rahaa kaikkina kuukausina yhtä lukuun ottamatta ja kaikkina kolmena vuotena. Sharpe oli -9.85 ja kokonaistuotto -24.9%, kun palkkiot veivät 10.1% bruttotuotosta. Analyytikon taustatestikatsauksen mukaan tappio oli rakenteellinen: kahden pörssin edestakainen kauppa maksaa neljä täyttöä eli 0.2–0.4%, enemmän kuin muutaman korkopisteen ETH-basis koskaan palautuu. Sisäänmenokynnyksen nostaminen siis vain vähentää kauppoja luomatta tuottoetua. Strategia hylättiin ennen optimointia 5 iteraation jälkeen, sillä mekanismi jää rakenteellisesti kulujen alle eikä ole optimoinnin arvoinen.
Markkinaneutraali pörssien välinen basis-arbitraasi ETH-perpetuaaleilla Hyperliquidissä (ETHUSD.HYPERLIQUID) ja Binancen USD-M-futuureilla (ETHUSDT.BINANCE). Pörsseillä on erilaiset osallistujakunnat (HL koostuu pääosin edistyneistä ja riskinottohaluisista piensijoittajista; Binancella USD-M on maailman syvin perp-tilauskirja) ja eri rahoitusjaksot (HL tunnin välein, Binancella 8 h). Tämä luo väliaikaisia pörssien välisiä hintaspread-muutoksia 0.20–0.80%, jotka palautuvat 1–3 neljän tunnin kynttilän aikana, kun……Näytä enemmänNäytä vähemmän
Markkinaneutraali pörssien välinen basis-arbitraasi ETH-perpetuaaleilla Hyperliquidissä (ETHUSD.HYPERLIQUID) ja Binancen USD-M-futuureilla (ETHUSDT.BINANCE). Pörsseillä on erilaiset osallistujakunnat (HL koostuu pääosin edistyneistä ja riskinottohaluisista piensijoittajista; Binancella USD-M on maailman syvin perp-tilauskirja) ja eri rahoitusjaksot (HL tunnin välein, Binancella 8 h). Tämä luo väliaikaisia pörssien välisiä hintaspread-muutoksia 0.20–0.80%, jotka palautuvat 1–3 neljän tunnin kynttilän aikana, kun pörssien väliset arbitraasikauppiaat (markkinatakaajat ja basis-kauppiaat) sulkevat hintaeron. Strategia tunnistaa tilanteet, joissa prosentuaalinen spread (HL_close - BIN_close) / BIN_close ylittää liukuvan z-pistekynnysarvon |z| > 2.0 60 kynttilän tarkastelujaksolla. Sitten se ostaa halvemmasta pörssistä ja myy kalliimmasta yhtä suurilla nimellisarvoilla. Positio suljetaan, kun z-pistemäärä palautuu tasolle |z| < 0.3 tai 4 kynttilän (16 h) aikarajan jälkeen. Tämä ei ole NOT klassinen kaaviokuvio, NOT suunnallinen momentum- tai käännekauppa eikä NOT rahoitustuoton keräämistä — kyse on puhtaasti pörssien välisestä keskiarvopalautuksesta, jonka ajurina on rakenteellinen arbitraasi. Tavoitteena ovat yhtä aikaa selvästi aliedustettu HYPERLIQUID-pörssi (4.1% vastaan 20% kiintiö), pörssien välinen kattavuus (4.6% vastaan 15% kiintiö) ja long-short-suunta (9.2% vastaan noin 45% tavoite).
Iteraation -5 korjaus (leverage_set_but_unused). Tarkistus etsii tallennetusta strategiakoodista vipuviitteen (config.leverage / self._lev / .leverage) ja hylkää sen, jos vipu>1 on määritetty mutta puuttuu koodista. Kytkin vivun yksiselitteisesti koonmääritykseen: position_size() lukee nyt suoraan `leverage = float(self.config.leverage)` ja laskee arvon `notional = equity * exposure_frac * leverage`. Myös Hyperliquidin peilattu jalka käyttää samaa vivulla skaalattua nimellisarvoa — näin 2x vipu kaksinkertaistaa molempien jalkojen nimellisarvon (todellinen vaikutus marginaaliin, ei vaikutukseton asetus). Tämä on pienin muutos, joka läpäisee tarkistuksen ja säilyttää aiemmin hyväksytyn signaalilogiikan (spreadin z-piste, sisään- ja ulostulo, molempien jalkojen atominen hallinta) sekä tuonnit. Vipu 2.0 sopii tähän, sillä positio on markkinaneutraali (long- ja short-position nimellisarvot ovat yhtä suuret). Näin 2x vipu jalkaa kohden pitää suuntaavan riskin lähes nollassa ja tekee samalla basis-tuottoedusta taloudellisesti merkityksellisen.
Kaupankäyntikulut syövät pörssien välisen basisin keskiarvoon palautumisen tuoton: rakenteellinen, säädöillä korjaamaton negatiivinen tuotto-odotus — optimointi ei kannata. ETH Hyperliquidin ja Binancen välinen perpetual-futuurien basis on vain muutamia basis pointteja eli ~0.3%, mutta markkinaneutraali edestakainen kauppa maksaa FOUR markkinatoimeksiannon täyttöä (avaus ja sulkeminen molemmilla jaloilla), joten ~0.2-0.4%:n kahden pörssin kulujen alaraja ylittää spreadin palautumisesta saatavan hyödyn.……Näytä enemmänNäytä vähemmän
Kaupankäyntikulut syövät pörssien välisen basisin keskiarvoon palautumisen tuoton: rakenteellinen, säädöillä korjaamaton negatiivinen tuotto-odotus — optimointi ei kannata. ETH Hyperliquidin ja Binancen välinen perpetual-futuurien basis on vain muutamia basis pointteja eli ~0.3%, mutta markkinaneutraali edestakainen kauppa maksaa FOUR markkinatoimeksiannon täyttöä (avaus ja sulkeminen molemmilla jaloilla), joten ~0.2-0.4%:n kahden pörssin kulujen alaraja ylittää spreadin palautumisesta saatavan hyödyn. Taustatesti vuotaa tasaisesti: Sharpe -9.85, Sortino -13.8, profit_factor 0.908, omega 0.097, odotusarvo -$103/kauppa, total_return -24.9%; kaikki kuukaudet yhtä lukuun ottamatta ja kaikki kolme vuotta (2024 -7.6%, 2025 -11.3%, 2026 -6.0%) ovat tappiollisia. Palkkiot ovat 10.1% bruttotuloksesta ($45.9k + $23.4k markkinavaikutusta). Nykyinen asetus valitsee jo suurimmat poikkeamat (avausraja z>2 60 kynttilän ajalta), mutta tuottaa silti tappiota 48.4%:n voittoprosentilla ja avg_win ~ avg_loss; entry_z:n nostaminen tai pitoajan pidentäminen vähentää kauppojen määrää, mutta ei voi nostaa muutaman basis pointin basisia yli 4 täytön kulualarajan. Kyseessä ei ole koodivirhe (strategia toimii ongelmitta, on markkinaneutraali ja beta on 0.002), eikä kuolleeseen kohteeseen ole jäänyt ylennettyä pörssien välistä sisarstrategiaa — mekanismia rajoittavat itse kulut. FAILURE PATTERN: suuren kohteen (ETH HL vs. Binance) perpetual-futuurien basisin keskiarvoon palautuminen pörssien välillä on rakenteellisesti kulujen syömä: kaupankäyntikelpoinen pörssien välinen spread (yksinumeroisia basis pointteja) on pienempi kuin 4 täytön edestakaisen, kahden pörssin kaupan kustannus, mikä aiheuttaa jatkuvan PF<1 tappion, jota z-rajan säätäminen ei voi kääntää.
Toteutus
Markkinaneutraali basis-keskiarvopalautus pörssien välillä ETH-perpetuaaleilla pörsseissä ETHUSDT.BINANCE (ensisijainen) ja ETHUSD.HYPERLIQUID (lisäjalka), 4H kynttilät. Prosentuaalinen spread (HL-BIN)/BIN muunnetaan z-pisteiksi 60 kynttilän liukuvassa ikkunassa. Kun |z|>2.0, strategia ostaa halvemmasta pörssistä ja myy kalliimmasta yhtä suurilla nimellisarvoilla. Molemmat jalat suljetaan spreadin palautuessa (|z|<0.3) tai 4 kynttilän (16 h) aikarajan jälkeen. Kummankin jalan nimellisarvo = oma pääoma * exposure_frac * vipu, joten määritetty 2x vipu todella kaksinkertaistaa kokonaisaltistuksen.
Varmennuksen tulokset
Varmistus epäonnistui (leverage_set_but_unused): määrityksessä vipu=2.0, mutta strategia ei käytä vipua koonmäärityksessä. Määritä positiot sen perusteella — nimellisarvo = oma pääoma * osuus * vipu / hinta (lue self.config.leverage) — tai aseta vipu=1.0. Nykyisellään vipu ei vaikuta mihinkään ja taustatestin tulos on sama kuin arvolla 1x.
Backtestin arviointi
Sharpe
-9,85
Kokonaistuotto
-24,94%
Maksimipudotus
27,95%
Kauppoja yhteensä
446
Voittoprosentti
48,4%
Tuottokerroin
0,91
Strategia toimii mekaanisesti oikein ja ongelmitta: 446 markkinaneutraalia kauppaa, aikaleimojen mukaan kohdistettu SyncedBuffer, aidosti matala beta (0.002) ja korrelaatio vertailuindeksiin (0.03), ei likvidointeja eikä virheitä
Tavoittaa tarkoitetusti aliedustetut Hyperliquid-, pörssienvälinen- ja long-short-luokat
Tasainen rakenteellinen tappio: Sharpe -9.85, Sortino -13.8, profit_factor 0.908, omega 0.097, odotusarvo -$103/kauppa, total_return -24.9% — kaikki kuukaudet yhtä lukuun ottamatta ja kaikki kolme vuotta tappiollisia
Kulujen hallitsema: pörssien välinen basis-kauppa maksaa edestakaisella kaupalla 4 likviditeettiä ottavaa toteutusta (avaus ja sulkeminen sekä Binancen että HL:n jaloilla). Palkkiot ovat 10.1% bruttotuotosta ($45.9k palkkioita + $23.4k hintavaikutusta), eikä muutaman korkopisteen ETH HL-Binance-basis kata kulujen alarajaa.
Suurimman spreadin valinta epäonnistuu jo: tasolla entry_z>2 voittoprosentti on 48.4% ja avg_win ~ avg_loss. Suurimmat poikkeamat eivät palaudu luotettavasti tuottavasti, joten kynnyksen nostaminen ei voi luoda tuottoetua.
Ei koodivirhettä eikä nostettua esiin jäänyttä samankaltaista strategiaa toisella pörssiparilla — negatiivinen tuotto-odotus on mekanismin rakenteellinen ominaisuus, ei korjattava toteutusvirhe
Analyysi
Strategia kärsii tappioita, koska se käy kauppaa spreadilla, joka on pienempi kuin edestakaisen kaupan kulut. Ennen kuin optimointia kannattaa harkita, tarvitaan kaksi muutosta: (1) Lisää kulut huomioiva HARD sisäänmenoehto: avaa positio vain, kun signaalihetken RAW prosentuaalinen spread |(HL-BIN)/BIN| ylittää tason, joka kattaa kahden jalan edestakaisen kaupan kulut (BINANCE ~0.10% + HYPERLIQUID ~0.09% ≈ 0.20% edestakaisin; vaadi spreadilta vähintään noin 2x tästä, esimerkiksi > 0.40%). 2.0:n z-pistemäärä……Näytä enemmänNäytä vähemmän
Strategia kärsii tappioita, koska se käy kauppaa spreadilla, joka on pienempi kuin edestakaisen kaupan kulut. Ennen kuin optimointia kannattaa harkita, tarvitaan kaksi muutosta: (1) Lisää kulut huomioiva HARD sisäänmenoehto: avaa positio vain, kun signaalihetken RAW prosentuaalinen spread |(HL-BIN)/BIN| ylittää tason, joka kattaa kahden jalan edestakaisen kaupan kulut (BINANCE ~0.10% + HYPERLIQUID ~0.09% ≈ 0.20% edestakaisin; vaadi spreadilta vähintään noin 2x tästä, esimerkiksi > 0.40%). 2.0:n z-pistemäärä spreadissa, jonka itseisarvo on vain muutamia korkopisteitä, ei ole kaupattavissa — aseta ehto spreadin absoluuttiselle koolle, älä pelkälle z-arvolle. (2) Mittaa ja varmista, että spread on REAL, eikä kynttilöiden ajoituserosta johtuva artefakti: kirjaa raakamuotoisen sisäänmenospreadin jakauma. Jos kaupat avautuvat, kun |spread| on vain 0.05-0.15% (muutamasta korkopisteestä noin 15 korkopisteeseen), hypoteesin mukaista 0.20-0.80% preemiota ei ole tällä parilla, vaan signaali on pörssien välistä ajoituskohinaa. Tällöin mekanismi ei voi toimia parilla ETH HL vastaan Binance z-kynnyksistä riippumatta, ja se pitää suunnata pörssipariin, jonka basis on aidosti suurempi ja palautuu hitaammin — tai hylätä. Vähennä myös kaupankäynnin kiertoa: 4 kynttilän aikaraja pakottaa sulkemaan positioita ja maksamaan kulut odottamatta palautumista. Tee taustatesti uudelleen. Jos kulurajat huomioiva versio näyttää yhä tuloksen profit_factor < 1.0, lähtöoletus ei päde eikä strategialla pidä jatkaa 2 tunnin optimointiin.
Iteraatiohistoria
Varmistus epäonnistui (taso 2 — synteettiset skenaariot): Käytetyt parametrit: ['exit_z', 'entry_z', 'lookback', 'min_notional', 'exposure_frac', 'time_stop_bars'] Tarkista, että __init__ asettaa kaikki attribuutit kutsulla self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän……Näytä enemmänNäytä vähemmän
Varmistus epäonnistui (taso 2 — synteettiset skenaariot):
Käytetyt parametrit: ['exit_z', 'entry_z', 'lookback', 'min_notional', 'exposure_frac', 'time_stop_bars']
Tarkista, että __init__ asettaa kaikki attribuutit kutsulla self.parameters.get().
- steady_uptrend: TypeError: FactoryStrategy._bar_ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- steady_downtrend: TypeError: FactoryStrategy._bar_ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- flat_ranging: TypeError: FactoryStrategy._bar_ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- volatility_spike: TypeError: FactoryStrategy._bar_ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- zero_volume: TypeError: FactoryStrategy._bar_ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- price_gap: TypeError: FactoryStrategy._bar_ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
Varmistus epäonnistui (taso 2 — synteettiset skenaariot): Käytetyt parametrit: ['exit_z', 'entry_z', 'lookback', 'min_notional', 'exposure_frac', 'time_stop_bars'] Tarkista, että __init__ asettaa kaikki attribuutit kutsulla self.parameters.get(). - steady_uptrend: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000) - steady_downtrend: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() ottaa 1 sijaintiargumentin,……Näytä enemmänNäytä vähemmän
Varmistus epäonnistui (taso 2 — synteettiset skenaariot):
Käytetyt parametrit: ['exit_z', 'entry_z', 'lookback', 'min_notional', 'exposure_frac', 'time_stop_bars']
Tarkista, että __init__ asettaa kaikki attribuutit kutsulla self.parameters.get().
- steady_uptrend: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- steady_downtrend: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- flat_ranging: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- volatility_spike: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- zero_volume: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
- price_gap: TypeError: EthCrossVenuePerpBasisMeanReversionLS4H._ts() ottaa 1 sijaintiargumentin, mutta sille annettiin 2 (kynttilän aikaleima: 1735689600000)
Lopputuloksen yhteenveto
Likvidin suuren kohteen perp-basis-keskiarvopalautus pörssien välillä jää kulujen alle: kahden pörssin edestakainen kauppa maksaa neljä täyttöä, enemmän kuin yksinumeroisen korkopistemäärän spreadin palautuminen tuottaa. Z-kynnyksen nostaminen ei voi luoda tuottoetua, jota mekanismista rakenteellisesti puuttuu.
Analyytikon optimointia edeltävä taustatestikatsaus päätyi hylkäämään strategian: negatiivista tuotto-odotusta pidettiin rakenteellisena, ei koodivirheenä. Kahden pörssin edestakainen kauppa maksaa neljä likviditeettiä ottavaa toteutusta, eli kulujen alaraja on noin 0.2–0.4%. Se ylittää muutaman korkopisteen ETH:n pörssien välisen spreadin, joten strategia hylättiin ennen 3-vaiheen optimointia.
Markkinaneutraali long-short-basisarbitraasi standardoi z-arvoksi ETH-perpetuaalien hintaeron Hyperliquidin ja Binancen välillä USD-M. Kun |z| > 2.0, se osti halvemmasta pörssistä ja shorttasi kalliimmassa odottaen 0.2–0.8%-poikkeaman palautuvan 1–3 neljän tunnin kynttilän aikana.
Strategia toimi ongelmitta ja oli markkinaneutraali (beta 0.002, korrelaatio vertailuindeksiin 0.03) yhteensä 446 kaupassa, mutta kärsi tasaisia tappioita: kokonaistuotto -24.9%, Sharpe -9.85, Sortino -13.8, voittokerroin 0.908, odotusarvo -$103/kauppa, voittoprosentti 48.4% ja avg_win ≈ avg_loss, ja palkkiot olivat 10.1% bruttotuotosta ($45.9k kuluja + $23.4k hintavaikutusta).
Stratmill on tutkimus- ja paperikaupankäyntityökalu, ei sijoitusneuvontaa tai välittäjä. Takaisintestaus- ja paperikaupankäyntitulokset ovat hypoteettisia. Kaupankäyntiin liittyy tappion riski.