Lumaktaw papunta sa nilalaman
Lahat ng estratehiya

Mga Estratehiya

LTC Balvers-Wu/Serban Momentum + Standardized Mean-Reversion Regression: Hinuhulaan ng Point-in-Time Expanding OLS ang Susunod na 7-Day Log Return mula sa z(log price kumpara sa trailing 365-day mean) at 21-Day Log Momentum; Long/Short/Flat Deadband sa Daily Bars (LTCUSDT.BINANCE USD-M, purong OHLCV)

Resulta: Inabandona

LtcMomentumMeanReversionRegression

Buod ng Resulta

Inilipat ng hypothesis ang FX momentum at mean-reversion regression sa single-instrument, time-compressed at mahigpit na point-in-time na bersiyon sa LTC daily perp bars. Muling isinulat ng iteration 2 ang strategy para gumamit ng O(1) per-bar running sums at closed-form 3x3 OLS solve matapos ang Layer-3 sandbox timeout, pero naulit ang timeout. Natukoy ng iteration 3 na ang instrument globbing ng catalog sa backtest runner ang sanhi, at hindi binago ang logic. Inabandona ang run sa verification loop matapos ang 3 iteration nang walang nagawang backtest, kaya hindi kailanman nasubok ang edge mismo.

Hypothesis

Inangkop mula sa sulatin ng QuantConnect Strategy Library na 'Combining Mean Reversion and Momentum in Forex Market' (batay kina Serban at Balvers & Wu). Minomodelo ng pinagmulan ang log price bilang random walk kasama ang stationary part at momentum term: y_t = -(1-delta)*(x_{t-1}-mu)/sigma + rho*(x_{t-1}-x_{t-4}) + e_t. Tinatantiya nito ang delta at rho sa pamamagitan ng OLS at itinatakda ang posisyon batay sa sign at laki ng hinulaang next-period return, buwan-buwan, sa 4 FX majors. Hindi maipagpapalit ang FX……Magpakita ng higit paMagpakita ng mas kaunti

Inangkop mula sa sulatin ng QuantConnect Strategy Library na 'Combining Mean Reversion and Momentum in Forex Market' (batay kina Serban at Balvers & Wu). Minomodelo ng pinagmulan ang log price bilang random walk kasama ang stationary part at momentum term: y_t = -(1-delta)*(x_{t-1}-mu)/sigma + rho*(x_{t-1}-x_{t-4}) + e_t. Tinatantiya nito ang delta at rho sa pamamagitan ng OLS at itinatakda ang posisyon batay sa sign at laki ng hinulaang next-period return, buwan-buwan, sa 4 FX majors. Hindi maipagpapalit ang FX dito, kaya pinananatili namin ang modelo at binabago ang tatlong bagay. (1) SINGLE INSTRUMENT, TIME-SERIES FORM. Bumibili ng pares na may pinakamataas na ranggo at nagsho-short ng pares na may pinakamababang ranggo ang pinagmulan, pero kabilang ang 4-name ranking book sa multi-leg neutral family (L137) na may piniling universe (L151). Long-only ang fallback rule nito kung positibo ang lahat ng prediksiyon at short-only kung negatibo ang lahat; isa na itong per-instrument sign trade, kaya iisang instrumento ang ipinagpapalit namin batay sa sign ng sarili nitong prediksiyon. (2) TIME COMPRESSION. Tumatakbo nang humigit-kumulang 4x na mas mabilis ang mga crypto cycle kaysa sa FX, at mga ~70 desisyon lang ang maidudulot ng buwanang rebalancing sa loob ng ~6 taon; laging inaalis ng deflation ang mga ito. Nagiging 21 araw ang 3-month momentum lag, 7 araw ang forecast horizon, at kinukuha ang long-run mean mu at sigma mula sa trailing 365-day window ng daily log closes sa halip na constant mula sa buong sample (may look-ahead ang full-sample mean ng pinagmulan). Isang beses ginagawa ang desisyon sa bawat daily bar. (3) STRICTLY POINT-IN-TIME FIT. Isang beses nag-fit ang pinagmulan gamit ang buong kasaysayan bago ang backtest. Dito, muling tinatantiya araw-araw ang mga coefficient na OLS (intercept, b_rev, b_mom) gamit ang EXPANDING window ng mga nakaraang pares na (feature, realized 7-day forward return). Mga pares lang na ganap nang na-realize ang forward return bago ang kasalukuyang bar ang ginagamit, na may 180-sample burn-in. Gaya ng pinagmulan, inaalis sa fit ang mga sample na may alinmang |feature z| > 3. Pagpili ng instrumento, ayon sa L122: pinili ang LTCUSDT.BINANCE dahil kailangan ng modelo ng mahaba, tuloy-tuloy at likidong linear-perp history. Mayroon itong multi-year daily data sa Binance USD-M, samantalang ilang araw lang ng LTC/XRP bars ang nasa catalog ng OKX sa kasalukuyan; walang bentahe ang Bybit at COIN-M para sa price-only signal (kasalukuyang naka-flag para sa engine review ang COIN-M inverse valuation). Hindi ito kabilang sa BTC/ETH/SOL, na nangingibabaw sa corpus, at walang supplementary feed na ginamit (L160). Hindi muna kami sumubok ng ibang symbol, at LTC lang ang paunang itinakda namin. Flat state (L150): flat ang strategy tuwing mas mababa sa deadband ang |hinulaang 7-day return|, at inaasahan naming flat ito sa humigit-kumulang 40-55% ng mga araw.

Hindi nagbago ang model at signal logic mula sa iteration 2, na O(1) na sa bawat bar (running sums at closed-form 3x3 solve). Lokal kong naulit ang Layer-3 timeout, at infrastructure ang sanhi, hindi ang strategy. Lumampas din sa wall-clock limit ang isang payak na no-op strategy sa parehong 2400-day LTC 1-DAY window. Ipinapakita ng py-spy na naipit ang backtest child sa ParquetDataCatalog.instruments() sa src/backtesting/runner.py:531. Doon, nag-glob at naglalakad ang fsspec sa catalog na may humigit-kumulang 126k bar directory bago pa ma-replay ang anumang bar. Walang pagbabagong magagawa sa strategy ang makaaayos nito. Mga komento lang ang idinagdag ng resubmission na ito, kaya naiiba ang code hash at muling tatakbo ang smoke test kapag naayos na ang catalog I/O. Kailangan ng engine-side na pag-aayos ang instrument lookup sa runner.py, halimbawa direktang path lookup gaya ng ginagamit ng InstrumentResolver.

verification_loop: sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas sa 300s na wall-clock limit ang smoke test sa ~20000-bar window (2400 araw ng LTCUSDT.BINANCE-1-DAY-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng per-bar na gawaing lumalaki kasabay ng history — halimbawa, muling pag-scan sa buong funding/supplementary series, o muling pagbuo ng list at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Ihanda nang maaga ang mga nakaayos na timestamp array ONCE sa __init__ at gumamit ng bisect, o i-cache ang mga lookup ayon sa timestamp, para O(log n) sa halip na O(n) ang per-bar cost.

Implementasyon

Ipinagpapalit ang LTCUSDT.BINANCE perpetual sa daily bars. Dalawang feature: ang z-score ng log close kumpara sa trailing 365-day mean at std (mean reversion), at ang 21-day log momentum na isina-scale ng 365-day daily-return volatility. Hinuhulaan ng expanding OLS ang susunod na 7-day log return mula sa mga feature na ito. Mahigpit na point-in-time ang fit: gumagamit ito ng running normal-equation sums, idinadagdag lang ang mga 7-day forward return na ganap nang na-realize, inaalis ang mga sample na may |z| > 3, at naghihintay ng 180 sample bago manghula. Nagiging long ang strategy kapag lampas sa +deadband ang prediksiyon, short kapag mas mababa ito sa -deadband, at nananatiling flat kung hindi. Lumalabas ito kapag bumalik ang prediksiyon patawid sa exit band.

Mga Resulta ng Beripikasyon

sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas sa 300s na wall-clock limit ang smoke test sa ~20000-bar window (2400 araw ng LTCUSDT.BINANCE-1-DAY-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng per-bar na gawaing lumalaki kasabay ng history — halimbawa, muling pag-scan sa buong funding/supplementary series, o muling pagbuo ng list at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Ihanda nang maaga ang mga nakaayos na timestamp array ONCE sa __init__ at gumamit ng bisect, o i-cache ang mga lookup ayon sa timestamp, para O(log n) sa halip na O(n) ang per-bar cost.

Buod ng Resulta

Kapag nagpapatuloy ang sandbox timeout matapos gawing O(1) ang per-bar logic, at nagti-timeout din ang no-op strategy sa parehong window, ipadala ito para sa infrastructure investigation sa halip na mag-ubos pa ng coding iteration sa strategy.

Matapos ang 3 iteration, inabandona ito ng verification loop sa Layer 3 (sandbox backtest), dahil lumampas sa 300s na wall-clock limit ang smoke test sa ~2400-day LTCUSDT.BINANCE 1-DAY window. Ayon sa mga tala ng code ng iteration-3, infrastructure ang sanhi nito, hindi ang strategy: nag-timeout din ang isang payak na no-op strategy sa parehong window, at ipinakita ng py-spy na naipit ang run sa catalog globbing ng ParquetDataCatalog.instruments() bago pa ma-replay ang anumang bar.

Iangkop ang Balvers-Wu/Serban momentum plus mean-reversion model sa LTCUSDT.BINANCE daily bars: bawat araw, hinuhulaan ng point-in-time expanding OLS fit ang log return sa susunod na 7 araw mula sa z(log price kumpara sa trailing 365-day mean) at 21-day log momentum, at nagiging long, short o flat ang strategy depende sa posisyon ng prediksiyong iyon kaugnay ng deadband.

Walang datos ng performance. Hindi nakumpleto ng strategy ang sandbox backtest, kaya walang datos ng return, Sharpe o bilang ng trade. Hindi rin ito umabot sa mga yugto ng backtest, optimization at analyst.

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.