Lumaktaw papunta sa nilalaman
Lahat ng estratehiya

Mga Estratehiya

QuantRocket GDX–GLD araw-araw na Johansen/Bollinger pairs strategy: tapat na salin ng USEQ

Resulta: Inabandona

GdxGldJohansenBollingerPairs

Buod ng Resulta

Layunin ng GdxGldJohansenBollingerPairs na ilipat nang tapat hangga't maaari sa venue na USEQ ang pares na estratehiya ng QuantRocket na Johansen/Bollinger na GDX/GLD, at muling ipatupad sa numpy ang coint_johansen ng statsmodels dahil hindi ito available sa sandbox. Sa loob ng 3 iteration, paulit-ulit na lumampas sa limitasyong 300 segundo ang sandbox smoke test ng Layer 3 sa humigit-kumulang 20,000-bar na daily window ng GDX. Iniwan ang run sa paulit-ulit na beripikasyong iyon. Walang nagawang backtest, optimization o hatol ng analyst, kaya hindi pa alam kung may edge ang estratehiya.

Hypothesis

Isalin ang executable na subclass na GDX_GLD_Pair ng QuantRocket habang pinananatili ang araw-araw nitong rolling Johansen weights, mga band na isang standard deviation, magkakahiwalay at nagpapatuloy na long/short signal state, araw-araw na muling pagkalkula ng target weight at pagpapatupad sa pagbubukas ng susunod na session. Gamitin ang GDX.USEQ bilang pangunahin at ang GLD.USEQ bilang pangalawang trading leg; parehong may 1-DAY-LAST-EXTERNAL bar. Ang orihinal na default ay LOOKBACK_WINDOW=20, BBAND_STD=1, DB_FIELDS=['Close','Open']; pinipili ng subclass ang GDX at GLD mula sa usstock-1d. Naniningil ang orihinal na USStockCommission ng $0.005/share; palitan ang komisyong iyon ng zero commission ng platform na USEQ at minodelong spread/impact, at tahasang iulat ang pagkakaiba. Huwag mag-angkin ng kakayahang kumita ng pinagmulan o magdagdag ng mga filter, stop-loss, cointegration significance test o parameter optimization.

Ang tahasang kahilingan para sa tapat na salin ang nagtatakda sa mga instrumento at mekanismo. Dinadagdagan ng pares na ito ang corpus na pinangingibabawan ng mga long-only na estratehiya sa Binance ng exposure sa equity sa dalawang instrumento, na may long at short na posisyon. Hindi nito pinupunan ang mga quota para sa Hyperliquid o cross-venue. Walang datos tungkol sa konsentrasyon ng corpus, kaya hindi mataya ang bahagi ng pananaliksik para sa bawat instrumento. Di-gaya ng naunang panukala tungkol sa dual-class share, ipinagpapalit ng estratehiyang ito ang mga minero laban sa bullion at kinakalkula muli araw-araw ang mga weight ng Johansen; gayunman, hindi pa beripikado ang ekonomiks nito.

verification_loop: sandbox_timeout: Nabigo ang beripikasyon (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na limitasyon sa oras sa humigit-kumulang 20000 bar na saklaw (2400 araw ng GDX.USEQ-1-DAY-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng gawaing bawat bar na lumalaki kasabay ng haba ng nakaraang datos — halimbawa, muling pag-scan sa buong serye ng funding/supplementary, 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 hanay ng timestamp na ONCE sa __init__ at gamitin ang bisect, o i-cache ang mga lookup ayon sa timestamp, para maging O(log n) ang gastos bawat bar sa halip na O(n).

Implementasyon

Tapat na salin ng Stratmill sa GDX_GLD_Pair ng QuantRocket (PairsStrategy, Apache-2.0). Bawat session, inaangkop nito ang Johansen hedge vector (det_order=0, k_ar_diff=1) gamit ang mga closing price sa nakaraang 20 session para sa [GLD, GDX]. Kinukuwenta ang mga Bollinger band para sa spread ngayong araw gamit ang 20 session at 1-sigma (ddof=1). Magkahiwalay at nagpapatuloy ang mga long at short na estado ng spread signal: pumapasok lampas sa isang band at lumalabas sa mean. Ang target weights ay signal x hedge x close, na ini-normalize sa 1x gross. Nire-rebalance ang dalawang leg sa target gamit ang buong share makalipas ang isang session.

Itinatama ng Iteration 3 ang pagkabigo sa Layer-1.5: 'optimization_plan fixes leverage at 1.0'. Inalis ng config ng Iteration 2 ang `leverage` mula sa `parameters`, at hinihingi ng plan validator na naroon ang bawat nakapirming key sa parehong uri. Ibinalik ang `parameters.leverage = 1.0` (float) at pumapasa ang validate_plan nang lokal ayon sa research plan. Binabasa na ito ng code bilang dokumentadong salamin ng config.leverage, na ginagamit sa pagtukoy ng laki. Pinanatili ang paglilinis ng code sa Iteration -2……Magpakita ng higit paMagpakita ng mas kaunti

Itinatama ng Iteration 3 ang pagkabigo sa Layer-1.5: 'optimization_plan fixes leverage at 1.0'. Inalis ng config ng Iteration 2 ang `leverage` mula sa `parameters`, at hinihingi ng plan validator na naroon ang bawat nakapirming key sa parehong uri. Ibinalik ang `parameters.leverage = 1.0` (float) at pumapasa ang validate_plan nang lokal ayon sa research plan. Binabasa na ito ng code bilang dokumentadong salamin ng config.leverage, na ginagamit sa pagtukoy ng laki. Pinanatili ang paglilinis ng code sa Iteration -2 na hindi nagbabago ng asal: may maxlen=lookback ang closes deque at direktang ipinapasa sa Johansen fit. Hindi nagbago ang signal, state machine, mga weight at pagpapatupad. Hindi rin nagbago ang mga pag-aangkop sa platform: pagpapatupad sa pagsasara ng susunod na session sa halip na pagbubukas nito (walang fill sa open auction sa mga daily bar), at USEQ zero na komisyon kasama ang minodelong spread/impact sa halip na $0.005/share ng USStockCommission. Pinatakbo nang lokal ang Iteration 1 at wala itong ipinakitang edge: Sharpe -0.03, PF 0.95, avg trade -0.009%, max DD 29%. Alinsunod ito sa pahayag ng hypothesis na 'huwag mag-angkin ng kakayahang kumita ng pinagmulan'. Natukoy na ang naunang timeout sa Layer-3 ay dahil sa gastos sa pag-scan ng catalog at pagkarga ng host, hindi sa gawain ng estratehiya bawat bar.

Mga Resulta ng Beripikasyon

sandbox_timeout: Nabigo ang beripikasyon (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na limitasyon sa oras sa humigit-kumulang 20000 bar na saklaw (2400 araw ng GDX.USEQ-1-DAY-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng gawaing bawat bar na lumalaki kasabay ng haba ng nakaraang datos — halimbawa, muling pag-scan sa buong serye ng funding/supplementary, 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 hanay ng timestamp na ONCE sa __init__ at gamitin ang bisect, o i-cache ang mga lookup ayon sa timestamp, para maging O(log n) ang gastos bawat bar sa halip na O(n).

Kasaysayan ng Iterasyon

Nabigo ang beripikasyon (Layer 1.5 — pagkakatugma ng hypothesis/config) [class=hypothesis_mismatch]: - Itinatakda ng optimization_plan ang leverage sa 1.0

Buod ng Resulta

Kailangang panatilihing mababa ang gastos bawat bar ng rolling Johansen calculation na muling bumubuo ng mga matrix at nag-i-invert o nagde-decompose ng mga ito sa bawat bar gamit ang purong numpy (halimbawa, sa pag-cache ayon sa timestamp at pag-iwas sa paulit-ulit na pag-scan ng buffer), kung hindi ay hindi ito kakasya sa limitasyon ng oras ng sandbox.

Iniwan ang run sa paulit-ulit na beripikasyon matapos ang 3 iteration. Lumampas sa limitasyong 300s ang sandbox backtest ng Layer 3 sa window na humigit-kumulang 20,000 bar (2400 araw ng GDX.USEQ daily bar), kaya hindi naisagawa ang pagsusuri sa backtest, optimization, pagsusuri ng analyst at pagsusuri ng panganib.

Direktang pag-angkop ito ng pares na estratehiya ng QuantRocket na GDX/GLD sa mga bar na USEQ sa araw-araw. Bawat araw, kinukuwenta nito ang hedge ratio mula sa Johansen test gamit ang huling 20 closing price, ipinagpapalit ang spread sa pagitan ng mga Bollinger band na isang standard deviation ang layo, at inaayos muli ang target weights makalipas ang isang session. Zero ang komisyon at minomodelo ang spread at impact.

Walang mga numero ng performance: walang nalikhang ulat ng backtest, ulat ng optimization o bilang ng trade dahil hindi nakalampas sa beripikasyon ang estratehiya.

Pagsusuri

PairsStrategy

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.