Lumaktaw papunta sa nilalaman
Lahat ng estratehiya

Mga Estratehiya

US Equity Beta-Regime Sector Rotation — Algo trading: laging may long/short na posisyon sa pagitan ng OFFENSIVE at DEFENSIVE Sector ETF, binabaligtad ayon sa malawakang trend regime ng merkado: hawakan ang high-beta Tech (XLK) laban sa low-beta Utilities (XLU) kapag risk-ON, at lumipat sa defensive kapag risk-OFF; SPY-Trend na may hysteresis (XLK/XLU/SPY.USEQ, daily bars, 3-parameter)

Resulta: Inabandona

SectorBetaRegimeRotationXlkXluLS

Buod ng Resulta

Nagpanukala ang SectorBetaRegimeRotationXlkXluLS ng palaging may posisyong dollar-neutral na rotation, na hawak ang high-beta XLK laban sa low-beta XLU at binabaligtad ang direksiyon ng pares ayon sa SPY trend regime upang makuha ang premium ng defensive rotation sa loob ng mga dekada ng kasaysayan ng sector-ETF. Ambisyoso ang disenyo — tatlong instrumento sa iisang session calendar, rolling na OLS hedge ratio, sunod-sunod na pagsumite ng leg at paglilinis sa naulilang hedge — pero hindi ito nakalagpas sa yugto ng pag-code. Pagkaraan ng 3 ulit, tatlong beses nag-timeout ang developer agent ('coding_stuck_3_timeouts') at iniwan ang run bago ma-verify o ma-backtest ang anumang code. Walang naganap na backtest, optimization o pagsusuri ng analyst, kaya hindi nasubok sa data ang tesis ng strategy.

Hypothesis

Pag-ikot ng ALWAYS-ENGAGED, DOLLAR-NEUTRAL LONG-SHORT sa dalawang pangunahing SPDR sector ETF — Technology na high-beta (XLK.USEQ) at Utilities na low-beta (XLU.USEQ) — na itinatakda ng malawakang trend regime ng merkado (SPY.USEQ kumpara sa sarili nitong SMA, signal lang) ang SIGN. Naiiba itong pamilya sa tatlong equity strategy na nasa pipeline na (mean reversion ng single-name z-score, cointegration reversion ng KO/PEP, seasonality sa pagsisimula ng buwan): ang edge ay ang epekto ng TIME-VARYING BETA PREMIUM /……Magpakita ng higit paMagpakita ng mas kaunti

Pag-ikot ng ALWAYS-ENGAGED, DOLLAR-NEUTRAL LONG-SHORT sa dalawang pangunahing SPDR sector ETF — Technology na high-beta (XLK.USEQ) at Utilities na low-beta (XLU.USEQ) — na itinatakda ng malawakang trend regime ng merkado (SPY.USEQ kumpara sa sarili nitong SMA, signal lang) ang SIGN. Naiiba itong pamilya sa tatlong equity strategy na nasa pipeline na (mean reversion ng single-name z-score, cointegration reversion ng KO/PEP, seasonality sa pagsisimula ng buwan): ang edge ay ang epekto ng TIME-VARYING BETA PREMIUM / defensive rotation — nangunguna ang mga cyclical na high-beta sa uptrend ng merkado at pinakamalakas bumabagsak sa downturn, habang mas mahusay ang performance ng mga defensive na low-beta (utilities) kapag may stress. Sa halip na salungatin ang nakapirming spread (KO/PEP) o mag-rank ng basket batay sa relatibong momentum (ang bigong klase ng L68 rotation), hawak nito ang FIXED pares ng offensive at defensive na DIRECTIONALLY na nakaayon sa signal ng market regime na EXTERNAL: risk-ON → long XLK / short XLU (samantalahin ang mas mahusay na performance ng cyclical); risk-OFF → long XLU / short XLK (samantalahin ang mas mahusay na performance ng defensive at ang sobrang drawdown ng high-beta). Dahil laging hawak nito ang isang panig ng pares, hindi ito magkakaroon ng walang lamang walk-forward OOS window o holdout (ang pagkabigong sumira sa basket na may malalim na drawdown) — laging may posisyon, at lumilikha ng sapat na sample ng trade ang mga pagbaligtad ng regime (SPY na tumatawid sa sarili nitong SMA) (~8-15 pagbaligtad/taon × 25+ taon). Parehong tine-trade ang XLK at XLU simula 1998, na nagbibigay ng dekada ng pang-araw-araw na kasaysayan sa iba't ibang bull/bear regime (2000, 2008, 2018, 2020, 2022) para sa tunay na matatag na walk-forward at holdout. Mahalaga ang walang-komisyong execution ng USEQ (~0.02-0.05% RT bawat leg): pinipigil ng hysteresis band sa paligid ng SMA ang pabago-bagong pag-trade, kaya ilang beses lang umiikot ang strategy bawat taon, at karaniwang nakukuha ng bawat nakaayon na holding ang ilang porsiyento ng spread ng offensive at defensive — malayong lampas sa ~0.16% na gastos ng two-leg round trip. FEE ARITHMETIC: sa karaniwang risk-on leg na tumatagal nang ilang buwan, mas mahusay ng ~5-15% annualized ang performance ng XLK kaysa XLU; sa risk-off leg, mas mahusay ng ~5-20% ang performance ng XLU kaysa XLK sa panahon ng drawdown; nakukuha ng isang nakaayon na holding ang ~2-6% na dollar-neutral spread kumpara sa gastos na ~0.16% sa round-trip rotation = 12-40x ng cost floor, na malayong lampas sa 0.15% viability bar. 3 lang ang malalayang parameter (haba ng regime na SMA, lapad ng hysteresis band, beta-hedge lookback) para maiwasan ang overfitting, at itinakda nang maaga batay sa ekonomiya ang mekanismo (defensive rotation), hindi hinango mula sa data.

Profile ng crisis-alpha na may likas na mababang Sharpe at walang makatotohanang daan para maabot ang promotion Sharpe floor. Sa kabila ng tunay na edge bawat trade (avg_trade_return_pct 3.66%, PF 2.04, hindi nalilimitahan ng bayarin) at mekanismong market-neutral na gumagana nang tama, Sharpe 0.381 ang naitala ng strategy, na may 95% CI lower bound na 0.0036 sa buong 27-taong in-sample — walang estadistikong matatag na risk-adjusted edge bago pa man ang bias sa pagpili ng optimization — at negatibo ang……Magpakita ng higit paMagpakita ng mas kaunti

Profile ng crisis-alpha na may likas na mababang Sharpe at walang makatotohanang daan para maabot ang promotion Sharpe floor. Sa kabila ng tunay na edge bawat trade (avg_trade_return_pct 3.66%, PF 2.04, hindi nalilimitahan ng bayarin) at mekanismong market-neutral na gumagana nang tama, Sharpe 0.381 ang naitala ng strategy, na may 95% CI lower bound na 0.0036 sa buong 27-taong in-sample — walang estadistikong matatag na risk-adjusted edge bago pa man ang bias sa pagpili ng optimization — at negatibo ang information ratio (-0.21) at ~3.5%/taon lang kumpara sa 19.4% max DD. Nakasentro ang mga return sa iilang pangyayari ng krisis (win_rate 30%, short_win_rate 10.8%, avg_win $13.5k kumpara sa avg_loss $2.9k), na pain para sa overfitting: maaaring i-curve-fit ng optimizer na may 3 parameter ang mga partikular na makasaysayang crash at bumagsak sa deflated-Sharpe/OOS. Hindi kayang itaas ng pag-aayos ang Sharpe na 0.38 sa matatag at karapat-dapat na antas; hindi sulit ang 2 oras ng optimization. Padron ng pagkabigo: may edge bawat trade pero likas na mababa at nakasentro sa iilang pangyayari ang risk-adjusted return, na mas mababa sa promotion Sharpe floor.

Implementasyon

Laging may puwesto sa dollar-neutral long/short rotation sa high-beta na Technology (XLK.USEQ, pangunahing leg) at low-beta na Utilities (XLU.USEQ, hedge leg), kung saan itinatakda ang SIGN ng panlabas na signal ng malawakang market regime: SPY.USEQ kumpara sa sarili nitong 200-session SMA (SPY ay para lang sa signal, hindi kailanman tine-trade). Ibinabalik ng calculate_signal ang tuloy-tuloy na SPY paglihis ng trend rel = (SPY - SMA)/SMA sa bawat bar. Ang rel > +1% ay risk-ON (long XLK / short XLU); ang rel <……Magpakita ng higit paMagpakita ng mas kaunti

Laging may puwesto sa dollar-neutral long/short rotation sa high-beta na Technology (XLK.USEQ, pangunahing leg) at low-beta na Utilities (XLU.USEQ, hedge leg), kung saan itinatakda ang SIGN ng panlabas na signal ng malawakang market regime: SPY.USEQ kumpara sa sarili nitong 200-session SMA (SPY ay para lang sa signal, hindi kailanman tine-trade). Ibinabalik ng calculate_signal ang tuloy-tuloy na SPY paglihis ng trend rel = (SPY - SMA)/SMA sa bawat bar. Ang rel > +1% ay risk-ON (long XLK / short XLU); ang rel < -1% ay risk-OFF (short XLK / long XLU). Hysteresis din ang band: isinasara lang ang posisyong nakahanay kapag lumampas ang rel sa OPPOSITE band, kaya hindi nagdudulot ng paulit-ulit na trade ang pag-oscillate sa loob nito at ilang beses lang kada taon ang rotation. Itinatakda ang laki ng dalawang leg sa magkapantay na dollar notional (40% ng equity bawat isa), gamit ang rolling 60-session OLS hedge ratio ng mga return sa XLK kumpara sa mga return sa XLU, na nililimitahan sa [0.6, 1.6], sa buong shares at leverage na 1.0. Walang price stop: ang mismong pagbaligtad ng regime ang kundisyon sa paglabas.

Ipinatutupad ang hypothesis ayon sa itinakda: nakapirming pares ng offensive at defensive na ETF na hawak nang DIRECTIONALLY ayon sa external na trend regime ng merkado, hindi pagbaligtad sa spread at hindi pag-ikot ng naka-rank na basket. Eksaktong 3 malalayang parameter (regime_sma_len, hysteresis_band, hedge_lookback); nililimitahan silang lahat sa code at idinedeklara sa _param_bounds para hindi masubukan ng optimizer ang mga halagang binabago ng code. Istruktural ang implementasyon ng hysteresis sa halip na……Magpakita ng higit paMagpakita ng mas kaunti

Ipinatutupad ang hypothesis ayon sa itinakda: nakapirming pares ng offensive at defensive na ETF na hawak nang DIRECTIONALLY ayon sa external na trend regime ng merkado, hindi pagbaligtad sa spread at hindi pag-ikot ng naka-rank na basket. Eksaktong 3 malalayang parameter (regime_sma_len, hysteresis_band, hedge_lookback); nililimitahan silang lahat sa code at idinedeklara sa _param_bounds para hindi masubukan ng optimizer ang mga halagang binabago ng code. Istruktural ang implementasyon ng hysteresis sa halip na nakatagong state: hinihingi ng should_enter na |rel| > band habang flat at ng should_exit na matawid ang OPPOSITE band; ito mismo ang simetrikong hysteresis loop at purong function ng kasalukuyang signal, kaya pareho ito sa bawat restart at replay. Tapat na paglihis sa palaging may posisyon: lumalabas at pumapasok ang base template sa magkahiwalay na bar, kaya kapag nagbago ang regime, isang session na walang posisyon ang libro sa pagitan ng pag-unwind at pagpasok muli sa baligtad na direksiyon. Para sa neutrality at kontrol ng drawdown matapos ang mga dating pagkabigo ng two-leg: magkapantay ang dollar notional ng dalawang leg at sinusukat ayon sa hedge ratio na nililimitahan malapit sa 1, nililimitahan ang gross exposure malapit sa 70% ng equity sa leverage na 1.0, isinusumite lang ang leg na XLU matapos makumpirmang live ang leg na XLK, at agad isinasara ang anumang naulilang hedge leg kapag flat ang pangunahing posisyon para hindi kailanman magdala ng hubad na directional leg ang libro. Pagkakatugma ng data: mga pang-araw-araw na bar ang lahat ng tatlong ETF na USEQ sa iisang session calendar, kaya ipinagpapaliban ng alignment barrier ng base class ang signal hanggang dumating ang magkasabay na bar ng XLU at SPY, at gumagamit ang pares na XLK/XLU ng SyncedBuffer para timestamp-matched na sample lang ang makita ng hedge regression. 30 bar ang warmup; kinakalkula ang SPY SMA gamit ang lahat ng close hanggang 200 (default sa 1.0 ang hedge ratio, ibig sabihin ay mahigpit na dollar-neutral, hanggang magkaroon ng 60 magkatugmang return sample), kaya maagang nagkakaroon ng posisyon ang strategy sa ~250-session na Layer-3 sandbox window sa halip na maghintay matapos ang 200-bar warmup. USEQ ang venue para sa dalawang tine-trade na leg: dahil walang komisyon ang execution (~0.02-0.05% bawat leg sa round trip), nananatili ang nakuhang multi-percent na spread sa nakaayon na holding. ITERATION 2 FIX (Layer 2, TypeError): tinawag ng dalawang timestamp lookup ang static helper ng base class sa pamamagitan ng instance (self._bar_ts(bar)); ibinibigkis muli ng Layer-2 proxy ang minanang staticmethod bilang bound method, kaya naipasa ang self bilang dagdag na positional argument at nagkaroon ng TypeError sa bawat synthetic scenario. Pinalitan ito ng kaparehong module-level na helper na _bar_timestamp(bar) (ts_event na may fallback sa ts_init, kapareho ang semantika ng base). Walang ibang binago — hindi ginalaw ang imports, signal logic, sizing, paghawak sa hedge leg at config.

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. Nagmula sa pipeline, hindi sa merkado, ang naunang pag-abandona: mali ang pagkakabind ng Layer-2 harness sa mga @staticmethod helper (naayos), naglabas ang QA ng pinal na hatol sa performance batay sa hindi na-optimize na smoke test (inalis — QA correctness na lang ang hinuhusgahan ngayon), at dulot ng kakulangan sa backtest slot ang mga sandbox timeout (naayos). Hindi nagbago ang hypothesis at strategy code. Suriin ang code batay sa kalidad nito; pagpapasyahan ang performance kalaunan ng buong backtest at optimizer.

Opsyonal na ipagpaliban ang paglabas ng signal hanggang len(spy_closes)==regime_sma_len para gumamit ng SMA na may buong haba ang bawat sinusuring bar.

Tumatakbo ang regime SMA bilang mean ng hanggang regime_sma_len close (spy_sum/len), kaya bago makaipon ng 200 SPY bar, mas maikli at maingay ang '200-day SMA' na average at mas madaling magpalit-palit ang maagang regime signal. Pagkakaiba ito sa nakasaad na 200-day filter, hindi pagkakamali sa correctness; unti-unting napupuno ang lalim habang nadaragdagan ang kasaysayan.

Idokumento ang tunay na pinakamasamang gross (~104%) o i-normalize ang mga leg sa tahasang gross cap.

Maaaring lumampas sa 100% ng equity ang gross exposure: XLK 40% + XLU 40%×hedge(≤1.6)=~64% → ~104% gross, samantalang '~70%' ang sinasabi ng katwiran. Pasok ito sa USEQ 2x Reg-T margin at hindi ito daan tungo sa pagkalugi ng lahat (leverage 1.0, beta-neutral), pero mali ang nakasaad na limitasyon.

Pagsusuri ng Backtest

Sharpe
0.38
Kabuuang Return
158.62%
Max Drawdown
19.39%
Kabuuang Trade
75
Win Rate
30.7%
Profit Factor
2.04

Tunay na edge bawat trade, hindi nalilimitahan ng bayarin: ang avg_trade_return_pct 3.66% ay ~70x ng USEQ 0.05% floor; PF 2.04.

Malinis at paunang itinakda batay sa ekonomiya ang mekanismong market-neutral (offensive/defensive rotation), na may 3 lang na malalayang parameter; tama ang pasya ng benchmark_meaningful=false na ibatay ito sa mga absolute metric.

Gumagana ayon sa layunin ang mekanismo — nagsisiksikan ang malalaking kita sa mga krisis na risk-off (2002, 2018, 2020, 2022) sa pamamagitan ng short-XLK/long-XLU, tugma sa tesis ng defensive rotation.

27 taon ng pang-araw-araw na data sa maraming regime; sapat ang istruktura at tama ang dollar-neutral hedging.

Sharpe na 0.381 at sharpe_ci_low 0.0036 — hindi mapag-iba sa estadistika sa sero ang risk-adjusted edge sa FULL in-sample, bago pa man ang bias mula sa pagpili ng optimization.

information_ratio -0.21; ~3.5%/taon ang return kumpara sa 19.4% max drawdown sa 40% karaniwang exposure — mababa ang ganap na gantimpala.

Nasa ilang pangyayari ng krisis ang karamihan ng mga return (win_rate 30%, short_win_rate 10.8%, avg_win $13.5k kumpara sa avg_loss $2.9k) — parang panalong lottery na nagtutulak sa optimizer na i-curve-fit ang mga partikular na makasaysayang crash at bumagsak sa OOS/deflated-Sharpe.

Profile ng crisis-alpha na likas na mababa ang Sharpe: hindi makatotohanang maitataas ng pag-aayos ng parameter ang Sharpe na 0.38 (CI floor ~0) para maabot ang promotion Sharpe floor.

Kasaysayan ng Iterasyon

Nabigo ang beripikasyon (Layer 2 — mga sintetikong sitwasyon): Mga ginamit na parameter: ['hedge_max', 'hedge_min', 'per_leg_pct', 'warmup_bars', 'min_notional', '_param_bounds', 'hedge_lookback', 'regime_sma_len', 'hysteresis_band'] Tiyaking itinatakda ng __init__ ang lahat ng attribute mula sa self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() ay tumatanggap ng 1 positional argument pero 2 ang ibinigay (timestamp ng bar: 1735689600000) - steady_downtrend: TypeError:……Magpakita ng higit paMagpakita ng mas kaunti

Nabigo ang beripikasyon (Layer 2 — mga sintetikong sitwasyon): Mga ginamit na parameter: ['hedge_max', 'hedge_min', 'per_leg_pct', 'warmup_bars', 'min_notional', '_param_bounds', 'hedge_lookback', 'regime_sma_len', 'hysteresis_band'] Tiyaking itinatakda ng __init__ ang lahat ng attribute mula sa self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() ay tumatanggap ng 1 positional argument pero 2 ang ibinigay (timestamp ng bar: 1735689600000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() ay tumatanggap ng 1 positional argument pero 2 ang ibinigay (timestamp ng bar: 1735689600000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() ay tumatanggap ng 1 positional argument pero 2 ang ibinigay (timestamp ng bar: 1735689600000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() ay tumatanggap ng 1 positional argument pero 2 ang ibinigay (timestamp ng bar: 1735689600000) - zero_volume: TypeError: FactoryStrategy._bar_ts() ay tumatanggap ng 1 positional argument pero 2 ang ibinigay (timestamp ng bar: 1735689600000) - price_gap: TypeError: FactoryStrategy._bar_ts() ay tumatanggap ng 1 positional argument pero 2 ang ibinigay (timestamp ng bar: 1735689600000)

Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na takdang oras. Halos palaging nangangahulugan ito ng gawaing bawat bar na lumalaki kasabay ng kasaysayan — halimbawa, muling pag-scan sa buong funding/supplementary series, 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 i-cache ang mga lookup ayon sa timestamp, para O(log n) sa halip na O(n) ang gastos bawat bar.

Buod ng Resulta

Matrabahong i-code ang pair na dollar-neutral at may maraming instrumento, external regime gating at rolling hedge-ratio logic, kaya maaaring maantala ang developer agent; makaiiwas sa paulit-ulit na coding timeout kung pasisimplehin ang implementasyon o lilimitahan ang multi-leg mechanics.

Iniwan ito habang nagko-code dahil sa dahilang 'coding_stuck_3_timeouts' pagkaraan ng 3 ulit; hindi nakagawa ng gumaganang strategy ang developer agent sa loob ng timeout limit, kaya hindi ito umabot sa verification, backtesting at mga sumunod na yugto.

Palaging may posisyon ang dollar-neutral na long/short rotation sa pagitan ng Technology na high-beta (XLK) at Utilities na low-beta (XLU); itinatakda ang direksiyon nito ng SPY malawakang trend regime ng merkado (SPY kumpara sa sarili nitong SMA, na may hysteresis band), upang makuha ang premium ng defensive rotation / beta na nagbabago sa paglipas ng panahon gamit ang tatlong malalayang parameter (haba ng regime na SMA, lapad ng hysteresis band, hedge lookback).

Walang datos ng performance — hindi nakagawa ng ulat ng backtest ang strategy, kaya walang return, Sharpe o sukatan ng trade na mababanggit.

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.