Mga Estratehiya
SPY/IWM Pagbalik sa Mean ng Size-Spread sa DAILY Bars: Beta-Hedged Log-Spread Z-Score (Rolling Stats batay sa datos sa mismong panahon), Pumasok kapag |z|>=2, Lumabas kapag |z|<=0.5 o sa pagtatapos ng 10-Session Clock, Dollar-Neutral Long/Short, Flat ~80% (SPY.USEQ + IWM.USEQ 1D)
Resulta: Inabandona
SpyIwmSizeSpreadMeanReversionDaily
Buod ng Resulta
Iniangkop ng strategy ang ideya ng mean reversion sa intraday na FMZ SPY/IWM sa daily bars. Inalis nito ang look-ahead ng pinagmulan sa paggamit ng rolling beta at z-score statistics, at nilayon nitong gawing dollar-neutral ang pares upang lumampas sa gastos na USEQ ang makuhang halaga sa bawat trade. Sa 3 pag-ulit, hindi kailanman pumasa ang code sa Layer 3 verification: bawat pagkakataon, lumampas sa limitasyong 300 segundo ang sandbox backtest sa ~2400-araw na IWM.USEQ daily window. Iniwan ang strategy sa verification loop, kaya hindi naabot ang mga yugto ng backtest, optimization, analyst at risk, at walang performance metrics.
Hypothesis
Pinananatili ng pag-ulit na ito ang naunang strategy at inaalis ang loop ng spread statistics na O(z_window) sa bawat bar. Pinananatili nang incremental ang rolling level moments, kaya O(1) bawat bar ang pagkalkula ng beta at z-score habang nananatili ang statistics na mula lamang sa mga naunang session at ang eksaktong alignment ng dagdag na leg na may parehong timestamp.
verification_loop: sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300 segundong takdang oras sa ~20000-bar na window (2400 araw ng IWM.USEQ-1-DAY-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng trabahong ginagawa sa bawat bar na lumalaki kasabay ng kasaysayan — halimbawa, muling pag-scan sa buong serye ng funding/dagdag na datos, o muling pagbuo ng listahan at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang kalkulahin sa __init__ ang mga nakaayos na timestamp array ONCE at gamitin ang bisect, o mag-cache ng mga lookup batay sa timestamp, para O(log n) at hindi O(n) ang gastos sa bawat bar.
Implementasyon
Daily USEQ na pairs trading strategy na gumagamit ng point-in-time rolling beta-hedged log-spread z-score sa pagitan ng IWM at SPY. Pumapasok ito kapag sukdulan ang paglihis at lumalabas sa pagbalik, biglang paglala, o pag-abot sa sampung session na limitasyon sa oras; buong share ang sukat ng mga leg na dollar-neutral.
Mga Resulta ng Beripikasyon
sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300 segundong takdang oras sa ~20000-bar na window (2400 araw ng IWM.USEQ-1-DAY-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng trabahong ginagawa sa bawat bar na lumalaki kasabay ng kasaysayan — halimbawa, muling pag-scan sa buong serye ng funding/dagdag na datos, o muling pagbuo ng listahan at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang kalkulahin sa __init__ ang mga nakaayos na timestamp array ONCE at gamitin ang bisect, o mag-cache ng mga lookup batay sa timestamp, para O(log n) at hindi O(n) ang gastos sa bawat bar.
Buod ng Resulta
Kailangang magkasya sa limitasyon ng oras sa sandbox ang isang daily strategy na gumagamit ng maraming instrumento. Alamin kung bakit natitigil o bumabagal ang smoke test, halimbawa dahil sa pag-aayos ng bar alignment ng dagdag na leg o paghahanap ng posisyon at cache sa bawat bar, bago umulit sa lohika ng signal, kahit O(1) na ang rolling statistics.
Iniwan ito sa verification loop matapos ang 3 pag-ulit. Lumampas sa 300 segundo ang takdang oras ng Layer 3 sandbox backtest sa ~20,000-bar na window (2400 araw ng IWM.USEQ-1-DAY-LAST-EXTERNAL), kaya natapos ang run bago ang mga yugto ng backtest, analyst at risk.
Dollar-neutral at beta-hedged na SPY/IWM pares sa daily USEQ bars. Ikinakalakal nito ang z-score ng log-spread na ln(IWM) - beta*ln(SPY), gamit ang rolling beta na batay sa returns sa 60 session at point-in-time na mean at std sa 20 session. Pumapasok ito sa |z|>=2 at lumalabas sa |z|<=0.5, makalipas ang 10 session, o kapag umabot sa |z|>=4 ang blow-up stop.
Walang umiiral na performance number. Hindi kailanman nakagawa ang strategy ng ulat sa backtest o optimization, kaya wala itong bilang para sa return, Sharpe o dami ng trade.
Pagsusuri
Isang intraday na estratehiya sa trading na gumagamit ng mean reversion sa pagitan ng SPY at IWM
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.