Mga Estratehiya
Portfolio ng Mahahalagang Metal na May Mean Reversion (disenyo nina Zhao et al. 2018 MRP): 3-Asset na GDX/GLD/SLV Spread na Binuo Gamit ang mga Weight na may Pinakamababang Predictability, May Variance Floor at Budget sa Leverage na L1, Entry/Exit Batay sa Z-Score at Hayag na Flat na Estado (USEQ DAILY, long-short)
Resulta: Inabandona
GdxGldSlvMinPredictabilityMRP
Buod ng Resulta
Sinubukan ng GdxGldSlvMinPredictabilityMRP na i-trade ang spread ng tatlong asset ng mahahalagang metal (GDX/GLD/SLV). Gumamit ito ng mga weight mula sa eigenvector na may pinakamababang predictability, muling tinantiya kada quarter, at gumamit ng mga entry batay sa z-score; ang pre-registered na tantiya ay humigit-kumulang 7-10 trade kada taon. Sa 3 iteration, hindi kailanman pumasa sa beripikasyon ang code. Patuloy na lumampas sa limitasyong 300s ang sandbox backtest ng Layer 3 sa daily window na may humigit-kumulang 20,000 bar. Itinigil ang run dahil nag-timeout ito sa sandbox habang nagbe-verify; kaya hindi umabot sa pagsusuri ng backtest, optimization, pagsusuri ng analyst o pagsusuri ng panganib, at walang sukatan ng performance.
Hypothesis
Pinananatili ng iteration 3 ang dating pumapasang lohika ng estratehiya at binabago lang ang magastos na paraan ng pag-access sa dagdag na leg. Minsan lang kini-cache ang mga presyo ng dagdag na bar sa on_extra_bar, at kinukuha ang mga ito batay sa eksaktong oras ng pagsasara sa O(1) na oras; inaalis nito ang paulit-ulit na pag-access sa naipong kasaysayan ng dagdag na bar habang tumatakbo ang 20,000-bar na sandbox.
verification_loop: sandbox_timeout: Nabigo ang beripikasyon (Layer 3 — sandbox backtest): lumampas ang smoke test sa limitasyong 300s ng oras sa humigit-kumulang 20000-bar na window (2400 araw ng GDX.USEQ-1-DAY-LAST-EXTERNAL). 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 listahan at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang kalkulahin ang mga nakaayos na timestamp array na ONCE sa __init__ at gamitin ang bisect, o mag-cache ng mga lookup na nakatukoy sa timestamp, para maging O(log n) sa halip na O(n) ang gastos kada bar.
Implementasyon
Isang daily na long-short portfolio na may mean reversion, binubuo sa GDX, GLD at SLV, na may USEQ. Pana-panahon nitong tinatantiya ang mga weight na may pinakamababang predictability mula sa lagged covariance structure, nagtatakda ng floor sa volatility ng spread, at tine-trade ang nabubuong spread batay sa z-score.
Mga Resulta ng Beripikasyon
sandbox_timeout: Nabigo ang beripikasyon (Layer 3 — sandbox backtest): lumampas ang smoke test sa limitasyong 300s ng oras sa humigit-kumulang 20000-bar na window (2400 araw ng GDX.USEQ-1-DAY-LAST-EXTERNAL). 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 listahan at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang kalkulahin ang mga nakaayos na timestamp array na ONCE sa __init__ at gamitin ang bisect, o mag-cache ng mga lookup na nakatukoy sa timestamp, para maging O(log n) sa halip na O(n) ang gastos kada bar.
Buod ng Resulta
Kailangang panatilihing mura sa calculate_signal ang bawat bar ng isang daily na multi-leg na estratehiya, ibig sabihin ay O(1) o O(log n), at huwag muling kalkulahin ang buong kasaysayan sa bawat bar. Dapat i-profile ang code batay sa budget na 20k bar ng sandbox bago ito isumite.
Itinigil ito sa yugto ng beripikasyon matapos ang 3 iteration. Nabigo ang Layer 3 (ang sandbox backtest) dahil lumampas ang smoke test sa limitasyong 300s ng oras sa humigit-kumulang 20,000-bar, 2400-araw na daily window ng GDX.USEQ; ipinahihiwatig nito na lumalaki kasabay ng haba ng kasaysayan ang trabaho kada bar.
Batay sa disenyo nina Zhao et al. (2018), bumuo ito ng mean-reverting na GDX/GLD/SLV spread sa mga daily USEQ bar. Kinuha ang mga weight mula sa eigenvector na may pinakamababang Box-Tiao predictability; muling tinatantiya ang mga ito kada 63 session gamit ang variance floor at budget sa leverage na L1. Nag-trade ito ng mga entry batay sa z-score kapag |z|>=2 at mga exit kapag |z|<=0.25, at flat ang default na estado.
Walang bilang ng performance. Hindi natapos ng estratehiya ang backtest: walang laman ang ulat ng backtest, hindi tumakbo ang optimization, at walang naitalang trade, return o Sharpe.
Pagsusuri
Pinakamainam na Disenyo ng Portfolio para sa Statistical Arbitrage sa Pananalapi
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.