Mga Estratehiya
SOL weekend lull mean-reversion
Resulta: Inabandona
SolWeekendLullMeanReversionLS
Tapat at mahusay ang implementasyon: iskedyul ng weekend mula sa timestamp, mga indicator na ligtas sa restart, sizing batay sa kapital, sapilitang Monday flat — walang depektong kailangang ayusin
Hypothesis
Mean-reversion sa weekend ng SOL/USDT futures. Sa low-volatility na weekend window (Sabado 00:00 hanggang Linggo 23:59 UTC), mag-fade ng mga sukdulan ng intraday range: kapag lumayo ang 1H close nang takdang bilang ng standard deviation (param: entry_sigma, default na ~2.0) mula sa maikling rolling mean (param: ma_period sa 1H bar, hal. 20-EMA), pumasok sa posisyong salungat sa trend dahil inaasahang babalik ito sa mean. Long kapag mas mababa sa mean ang presyo, short kapag mas mataas. Lumabas kapag: (a) bumalik sa mean, (b) lumampas sa sukdulan ang stop (param: stop_sigma), o (c) sapilitang mag-flat sa oras na Monday 00:00 UTC. Walang posisyong itinatago sa weekday session. Itakda ang laki ayon sa equity ng account gamit ang get_account_equity() para sa weekend regime na may ~0.8% hourly volatility. Kailangang lumampas ang target na reversion sa bayarin ng round trip (>0.15% ng notional sa Binance USD-M futures). Venue: BINANCE (USD-M futures), instrumento SOLUSDT, pangunahing bar_type 1H.
Implementasyon
Long/short weekend mean-reversion sa SOLUSDT.BINANCE USD-M perpetual (1H bars). Sa bawat bar, ibinabalik nito ang -(close - EMA)/stdev(residual) sa loob ng ma_period bilang tuloy-tuloy na signal, kaya ang sign ang direksiyon ng trade. Pinapayagan lang ang entry sa window mula Sabado 00:00 hanggang Linggo 23:59 UTC (kinukuwenta mula sa bar.ts_event, kaya magkapareho ang iskedyul sa restart at replay) at kailangan ang |z| >= entry_sigma at |z| < stop_sigma para may puwang pa ang setup. Mga exit, ayon sa unang matupad: sapilitang Monday-flat sa unang bar na hindi weekend, protektibong stop na stop_sigma lampas sa mean na sinusuri sa loob ng bar, at target na reversion kapag nahawakan ng moving average sa loob ng bar. Nasa panganib ang 2% ng equity sa stop ang sizing at hiwalay itong nililimitahan sa notional na 50% ng equity. BEHAVIOURALLY UNCHANGED mula sa iteration 2 — tanging pagbabago ang naitalang block ng pagpapasinungaling sa module docstring.
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 beripikasyon. Nagmula sa pipeline, hindi sa merkado, ang naunang pag-abandona: mali ang pagkakatali ng Layer-2 harness sa mga @staticmethod helper (naayos na), naglabas ang QA ng pinal na hatol sa performance batay sa smoke test na hindi na-optimize (inalis na — correctness na lang ang hinahatulan ngayon ng QA), at sanhi ng pagkaubos ng backtest slot ang mga timeout ng sandbox (naayos na). Hindi nagbago ang hypothesis at code ng estratehiya. Suriin ang code batay sa merito nito; ang full backtest at optimizer ang magpapasya sa performance sa susunod.
Mapagpasyang negatibong edge na may sapat na sample (244 trade, PF 0.65, avg_trade_return_pct -0.10%, -17.3%); estruktural ang pagkabigo, hindi dahil sa mga parameter: walang idinadagdag na edge ang weekend regime kumpara sa pangkalahatang fade, at pinuputol ng ipinag-uutos na Monday-flat ang 12-24h na drift horizon. Tapat na ipinapatupad ng code ang hypothesis (ang geometry na target=mean/stop=beyond-extreme ay sadyang nagbubunga ng baligtad na payoff), kaya mahalagang mekanismo/premise finding ito para sa analyst. Iwanan ito sa pagsusuri ng backtest alinsunod sa paunang itinakda ng developer; huwag i-optimize; itigil ang paggawa ng mga bersiyong SOL-weekend.
Pagsusuri ng Backtest
- Sharpe
- -0.26
- Kabuuang Return
- -30.84%
- Max Drawdown
- 36.63%
- Kabuuang Trade
- 612
- Win Rate
- 60.9%
- Profit Factor
- 0.77
Tapat at mahusay ang implementasyon: iskedyul ng weekend mula sa timestamp, mga indicator na ligtas sa restart, sizing batay sa kapital, sapilitang Monday flat — walang depektong kailangang ayusin
Malaki ang sample na 612 trade sa loob ng 6 taon, kaya maaasahan sa estadistika ang negatibong hatol at hindi ito artifact na walang sapat na sukat
Nalulugi sa neto: total_return -30.8%, negatibo sa 5 sa 7 taon; profit_factor 0.77, inaasahang resulta -$49/trade
avg_trade_return_pct 0.031% — malayong mas mababa sa minimum na bayarin ng Binance USD-M na 0.15% (L22); 16.5% ang komisyon sa gross
Sharpe -0.256 (CI tumatawid sa zero), information_ratio -1.09, PSR 0.37 — walang edge na iniakma sa panganib; avg_loss 2x avg_win (L55 asymmetry ng payoff sa fade)
Estrukturang dahilan para itigil: malaking bahagi ng 48h na weekend window ang reversion horizon (12-24h, bumabaligtad pagsapit ng 48h), kaya pinuputol ng ipinag-uutos na Monday-00:00 flat ang drift na siyang nagdadala ng edge — hindi ito maaayos ng mga parameter
Walang idinadagdag ang premise ng regime: kapantay o mas malakas ang weekday fade kaysa weekend; t=1.73 ng pinakamahusay na cell < 2.82 na inaasahan mula sa ingay
Kasaysayan ng Iterasyon
Nabigo ang beripikasyon (Layer 4 — pagsusuri ng QA): - STRUCTURAL FEE-VIABILITY FAILURE (nakadokumento sa buong kasaysayan, hindi lang sa panahon ng sandbox). Sandbox avg_trade_return_pct = +0.021% neto bawat trade sa 98 trade — halos sero at malayong mas mababa sa 0.15% futures floor — na may total_return -6.2%, PF 0.80, Sharpe -0.70. Ito ay NOT isang directional miss sa maliit na sample na may malalaking galaw na nakalalagpas sa bayarin; nagbubunga ang low-vol regime tuwing weekend ng maliliit na ~1% galaw na nagiging ~sero ang neto matapos ang 0.10% round trip. Naging net-negative ang grid ng developer na OWN 6-taon at 27 cell sa EVERY cell (pinakamaliit ang lugi sa -0.091% sa mga default na inilabas), pinakamainam na kaso ~+0.12% (mas mababa sa 0.15% floor, hindi makabuluhan, t=1.74). Estruktural ang ugat ng problema: kailangan ng reversion ng ~12h pero nauuna itong tamaan ng anumang stop na naglilimita sa panganib. Tahasang hinulaan ng developer ang pagkabigo sa Layer-4 na ito.
Bumagsak sa beripikasyon (Layer 4 — pagsusuri ng QA): - Mas mababa sa minimum para maging sulit sa bayarin ang edge kada trade, at negatibo ang netong resulta ng estratehiya. Sandbox ng Layer-3 (aktuwal na bayarin sa SOL USD-M): avg_trade_return_pct = 0.109% < minimum para sa futures na 0.15%; total_return −3.91%, Sharpe −0.77, PF 0.78, negatibo ang inaasahang resulta sa 104 trade. 61.5% ang win rate pero avg_loss (~$451) ≈ 2× avg_win (~$221) — malamang ang mean-reversion sa low-vol na weekend, pero napakaliit ng galaw para lumampas sa round trip na ~0.10%. Estruktural ito at hindi naaayos ng mga parameter. - Napasinungalingan ng datos ang pangunahing edge (weekend mean-reversion) sa 81 cell / 6 taon: max |t|=1.73 kumpara sa inaasahang max-|t|≈2.82 kung purong ingay (mas mahina sa tsansa ang pinakamahusay na cell — palatandaan ng deflated Sharpe), pabagu-bago at hindi monotoniko ang tugon ng stop, humina sa mga kamakailang taon (2023 −0.090%, 2025 −0.193%). Tapat na ipinapatupad ng code ang hypothesis; wala sa datos ang edge.
Bumagsak sa beripikasyon (Layer 3 — sandbox backtest): lumampas ang smoke test sa limitasyong 300s ng oras. Halos palaging nangangahulugan ito ng gawaing 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 ayusin ang mga naka-sort na timestamp array ONCE sa __init__ at gumamit ng bisect, o mag-cache ng mga lookup ayon sa timestamp, para maging O(log n) sa halip na O(n) ang gastos kada bar.
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.