Mga Estratehiya
Turn-of-the-Month Seasonal Long Overlay sa SPY + QQQ (USEQ, Daily Bars, Long Lang sa Bawat ETF sa [-1,+3] Month-End Window Lamang Kapag Lampas sa 200-Day Trend, Kung Hindi ay T-Bill, Walang Komisyon, 3-Parameter)
Resulta: Inabandona
TurnOfMonthSeasonalOverlaySpyQqqUseq
Buod ng Resulta
Tapat na ipinatupad ng strategy na ito ang isang mahusay na dokumentadong anomalya sa kalendaryo — pagmamay-ari ng SPY at QQQ sa paligid lamang ng hangganan ng buwan at kapag lampas sa sarili nilang pangmatagalang trend — at sapat na maayos ang itsura ng backtest nito sa 33 taon ng datos (PF 1.43, 60% win rate, edge kada trade na lampas sa USEQ fee floor) kaya inaprubahan ito ng analyst para sa optimization. Doon ito bumagsak: mula 0.87, bumagsak sa 0.019 ang in-sample Sharpe sa out-of-sample, umabot sa 0.77 ang PBO, at ipinakita ng deflated Sharpe na 0.020 na hindi maihihiwalay sa ingay ang resulta sa 225 trial. Sabay-sabay na bumagsak ang tatlong mahihigpit na gate na hindi maaaring isantabi kaya iniwan ito ng analyst matapos ang iisang iteration. Kabilang ito sa tuloy-tuloy na pamilya ng mga iniwang turn-of-month variant, na nagpapatunay na masyadong mahina ang epekto para maging pangkalahatang magagamit na live overlay.
Hypothesis
Overfit at walang edge sa out-of-sample: walk-forward OOS Sharpe 0.019 (< 0.5 validity floor) kumpara sa IS 0.87, per-window OOS 0.235/-0.017/-0.162, PBO 0.77 (> 0.5), at bumagsak sa deflated Sharpe: DSR=0.020, expected-max=0.47 sa 225 trial (43 effective) — hindi maihihiwalay ang napiling Sharpe sa ingay ng best-of-N, hindi ito pumapasa sa programme FDR (4 sa 272), is_significant=false. Bumagsak ang tatlong HARD gate (OOS<0.5, is_overfitted, PBO>0.5) kaya imposibleng i-promote. Lampas sa USEQ fee floor ang edge sa bawat trade at nominal na positibo ang holdout Sharpe (0.36), pero masyadong manipis ang turn-of-month effect para maging pangkalahatang magagamit na tradeable overlay — inangkop ng strategy ang ingay sa in-sample. Kaayon ito ng tuloy-tuloy na pagkabigo ng pamilya (iniwan ang turn-of-month seasonality sa QQQ, BTC, BNB at mga kalapit na USEQ trend variant); paulit-ulit na nag-o-overfit ang paglalapat muli ng parehong mekanismo sa panibagong target, kaya walang maisasalbang ibang anyo.
Implementasyon
Mga Resulta ng Beripikasyon
Opsyonal na kunin ang anchor ng huling weekday mula sa naobserbahang session bars (gaya ng ginagawa na ng _session_index) sa halip na simpleng bilang ng weekday, para isaalang-alang ng timing ng entry ang mga holiday gaya ng exit. Hindi ito kailangan.
Nakaangkla ang timing ng entry sa pagkukuwenta ng weekday sa kalendaryo (_weekdays_left) na NOT nagsasaalang-alang sa mga holiday sa merkado ng US, samantalang nakaangkla ang exit sa aktuwal na bilang ng session-bar (_session_index) kaya matatag ito kahit may holiday. Maililipat nang isang session ang iisang entry kapag tumapat ang holiday sa month-end sa isa sa huling dalawang weekday (hal., Memorial Day). Tahasang idinodokumento ito ng developer at hindi nito kailanman binabago ang direksiyon ng trade; umiiral ang src/data/market_calendar.py (XNYS) at makapagpapahusay ito sa entry, pero katanggap-tanggap ang kasalukuyang pagtatantiya at hindi nito naaapektuhan ang nasusukat.
Walang kailangang baguhin kung tinatawag ng base template ang subclass override para sa warm-up gating (ginagawa nito). Iniwan bilang impormasyon.
Ino-override ng min_bars_required(self) ang isang framework method (babala sa static-analysis na base_shadow). Sadyang ganito rito — ibinabalik nito ang trend_sma_days + 2 para kontrolin ang warm-up — at tama ang asal nito, pero tiyaking iginagalang ng base ang override sa halip na gamitin ang sarili nitong implementasyon.
Borderline ang resulta ng sandbox smoke test: Sharpe 0.107 (CI [-0.68, 0.94] ay sumasaklaw sa zero), avg_trade_return_pct 0.1535% (bahagyang lampas sa ~0.02-0.05% USEQ spread/impact floor), PF 1.15, win_rate 0.60. Hindi maganda ang paghahati ayon sa regime — nakapokus ang kita sa 'normal' na vol tercile (+10.44%) samantalang parehong lugi ang 'calm' (-0.57%) at 'stressed' (-4.35%), at impact_cost_pct ang 16.4% ng gross na may katamtamang kapasidad na $3.7M. Totoo at mahusay na dokumentado ang anomalya sa kalendaryo at tapat ang implementasyon kaya nararapat itong dumaan sa buong backtest — pero dapat tiyakin muna ng analyst na nananatili ang edge kada window matapos isama ang spread+impact sa buong kasaysayan at hindi lang ito umiiral sa iisang vol regime bago mag-optimize.
Pagsusuri ng Backtest
- Sharpe
- 0.19
- Kabuuang Return
- 104.42%
- Max Drawdown
- 12.25%
- Kabuuang Trade
- 500
- Win Rate
- 60.2%
- Profit Factor
- 1.43
Tapat na implementasyon ng isang mahusay na dokumentadong anomalya sa kalendaryo (turn-of-month) sa buong kasaysayang sample na 33 taon (1993-2026), 500 long trade / 0 short / ~28.5% exposure — eksaktong tugma ang mga trade sa hypothesis (long-only na seasonal overlay, cash ang hawak sa ibang panahon).
Komportableng nalalampasan ng edge ang mga gastos na USEQ: avg_trade_return_pct 0.338% (>> 0.05% abandon floor at >0.10% preference; pumapasa sa L75), profit_factor 1.43, win_rate 0.60, 7.9% lamang ng gross ang impact, kapasidad na ~$15.9M.
Napatunayan sa buong kasaysayan ang pangunahing ikinababahala ng QA, ang NOT: positibo ang regime_performance sa ALL sa tatlong vol tercile (kalmado +5.1%, normal +37.3%, matindi +35.4%, only_one_regime=false) — bunga ng pinutol na sandbox ang mga lugi sa kalmado/matinding kondisyon.
Mababa ang max_drawdown 12.2%, sapat ang bilang ng trade para sa pag-fit ng parameter.
Mababa ang headline Sharpe (0.194, sumasaklaw sa zero ang CI [-0.12, 0.53]) — pero overlay ito na halos cash lang (28% ang panahong nasa merkado) at sinukat sa buong mtm equity curve kaya pinahihina ito ng walang galaw na cash; sa yugto ng promotion, ihambing ang risk-adjusted na kalidad sa exposure, hindi rito.
CAGR lamang 2.64% — overlay ito ayon sa disenyo; walang gamit ang kapital nang ~72% ng panahon, kaya may puwang para ipagsama o palakihin ito, hindi ito depekto.
May ilang luging taon (2008 -6.7%, 2022 -8.3%, 2016 -4.1%) pero positibo ang anomaly sa nakararaming taon sa kalendaryo.
Pagsusuri
Tapat at mababa ang turnover na implementasyon ng isang mahusay na dokumentadong anomalya sa kalendaryo (turn-of-month) sa buong kasaysayang sample na 33 taon; tugma ang mga trade sa hypothesis (500 long / 0 short, ~28% exposure, mga entry sa seasonal window na lampas sa sariling 200d trend).
Lampas sa USEQ fee floor ang edge sa bawat trade (avg_trade_return_pct 0.21% na na-optimize, floor 0.05%); walang sensitivity cliff; mababa ang drawdown (6.1%); positibo sa teknikal na aspeto ang holdout Sharpe (0.36).
Patag at makinis ang sensitivity surface sa trend_sma_days at exit_trading_day — walang marupok na parameter.
Tiyak na overfit ang walk-forward: IS Sharpe 0.87 kumpara sa OOS 0.019, at OOS sa bawat window ay 0.235 / -0.017 / -0.162 — hindi nananatili ang edge sa out-of-sample.
PBO 0.77 (> 0.5) — mas malamang na overfit ang pagpili ng parameter.
Bumagsak ang Deflated Sharpe 0.020 at PSR/is_significant=false; hindi pumasa sa programme-level FDR (nananatili ang 4 sa 272; candidate p=0.98). Hindi maihihiwalay ang na-optimize na Sharpe sa ingay ng best-of-N sa 225 trial (43 effective).
OOS Sharpe 0.019 << 0.5 validity floor — tatlong HARD, mga kabiguang hindi maaaring isantabi.
Hindi natupad ang mga paunang itinakdang prediksyon sa mahahalagang sukatan: OOS Sharpe 0.019 kumpara sa ipinahayag na 0.9, PF 1.39 kumpara sa 1.5, avg_trade_return 0.21% kumpara sa 0.30%.
Matindi ang negatibo ng dating resulta ng pamilya: paulit-ulit nang iniwan ang turn-of-month seasonality sa mga kalapit na target (QQQ TOM fee_edge, BTC TOM fee_edge, BNB TOM iba pa, nag-overfit ang QQQ vol-managed trend). Totoo ang anomaly sa kasaysayan pero masyadong manipis para malampasan ang mga gastos/deflation sa isang tradeable overlay.
Pinananatili ng Benjamini-Hochberg sa q=0.10 sa 272 programme candidate ang 4. Hindi maihihiwalay sa sariling ingay ng programme ang candidate na hindi pumasa rito, gaano man kaganda ang mga indibidwal nitong estadistika.
Buod ng Resulta
Totoo sa kasaysayan ang turn-of-month anomaly pero masyadong manipis para malampasan ang mga gastos at deflation dahil sa multiple-testing bilang tradeable overlay; ang muling paglalapat ng parehong seasonality sa panibagong target (matapos ang mga kabiguan sa QQQ, BTC, BNB) ay nauuwi pa rin sa overfit sa halip na makabuo ng pangkalahatang magagamit na edge.
Iniwan ito ng analyst matapos ang optimization: bumagsak ang tatlong HARD validity gate (OOS Sharpe 0.019 < 0.5 floor, is_overfitted true, PBO 0.77 > 0.5); hindi maihiwalay ang deflated Sharpe sa ingay ng best-of-N sa 225 trial, at hindi ito pumasa sa programme-level FDR, kaya imposibleng i-promote.
Long-only na turn-of-month seasonal overlay na nagmamay-ari ng SPY at QQQ (USEQ, daily bars) sa [-1,+3] month-end window lamang at kapag lampas sa sariling ~200-day trend ang bawat ETF; cash ang hawak sa ibang panahon.
Sa buong 1993-2026 sample, gumawa ito ng 500 long trade na may 0.60 win rate, profit factor na 1.43, average na kita kada trade na 0.34% (0.21% na na-optimize), CAGR 2.64% at maximum na drawdown na 12.2%, pero 0.194 lamang ang headline Sharpe (CI na sumasaklaw sa zero). Ibinunyag ng optimization ang tiyak na overfit: walk-forward IS Sharpe 0.87 kumpara sa OOS 0.019 (per-window 0.235/-0.017/-0.162), PBO 0.77, at deflated Sharpe na 0.020.
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.