Mga Estratehiya
Basket ng Long-Horizon Trend-Following sa Majors (~200-Araw na Absolute Trend, Long-Short, Binance USD-M Futures, Purong OHLCV, Lingguhang Rebalance)
Resulta: Inabandona
LongHorizonTrendFollowingMajorsBasketLS
Backtest gate: - hindi maaasahan ang metrics: kulang ang ebidensiya sa 261 trade / 2437 araw ng datos (kailangan ng >=5 trade sa loob ng >=10 araw) — dagdagan ang dalas ng signal o palawakin ang window
Hypothesis
Implementasyon
Mga Resulta ng Beripikasyon
sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na limitasyon ng wall-clock sa ~20000-bar na window (2400 araw ng BTCUSDT.BINANCE-1-DAY-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng per-bar na trabahong lumalaki kasabay ng history — 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 gumamit ng bisect, o i-cache ang mga lookup batay sa timestamp, upang maging O(log n) sa halip na O(n) ang gastos sa bawat bar.
Opsyonal na baguhin ang teksto ng hypothesis para sabihing '200-araw na trend lookback, lingguhang rebalance, sa daily bars' upang hindi ito muling mamarkahan ng heuristic. Walang kailangang baguhin sa code.
Inihambing ng consistency check ng Layer 1.5 ang pamagat ng hypothesis ('~200-Araw / 40-linggo / Lingguhang Rebalance') sa config.bar_type=1-DAY at minarkahan ito bilang posibleng salungatan sa timeframe. Sa pagsusuri, isa itong FALSE POSITIVE: tumutukoy ang hypothesis sa ~200-DAY na trend LOOKBACK at sa WEEKLY na ritmo ng REBALANCE, hindi sa lingguhang bars. Tama ang paggamit ng code sa 1-DAY bars, kung saan trend_lookback=200 (araw) at rebalance_days=7 (lingguhang grid). Kung lingguhang bar ang implementasyon, aabot sa 200 linggo ang 200 lookback at iyon ang tunay na hindi pagtutugma. Walang kailangang baguhin; itinatala ito upang hindi muling itaas ang babala bilang hadlang.
Walang kailangang aksyon; sinadya ang override at iginagalang ito ng base.
Ino-override ng min_bars_required(self) ang isang base framework method (babala ng static analyzer na base_shadow). Na-verify sa base_template.py line 412: tinatawag ng base na DOES ang self.min_bars_required() para salain ang pangunahing pagproseso, kaya wastong sinusunod ang override (ibinabalik ang max(trend_lookback,vol_lookback)+2 = 202) at kapaki-pakinabang talaga ito (tinitiyak ang 200-araw na warmup). Malayang nagsasagawa rin ng pananggalang ang calculate_signal sa pamamagitan ng internal length check, kaya hindi magdudulot ng look-ahead kahit mali ang pagkakakabit ng warmup. Hindi nakapipinsala.
Positibo at magkakaugnay ang resulta sa sandbox (total_return +58.8%, PF 1.21, avg_trade_return_pct +4.06% sa 266 trade, avg hold na 74d), pero katamtaman at nakadepende sa regime ang edge na inayos ayon sa risk: Sharpe 0.43 na sumasaklaw sa zero ang CI [-0.34, 1.18], at ipinakikita ng regime_performance na halos sa 'normal' vol tercile lang umiiral ang edge (+82.2%, Sharpe 1.43), samantalang negatibo ang parehong 'kalma' (-8.3%) at 'stressed' (-5.5%) tercile. 39% ang max drawdown (CI hanggang 65%) at may 699-araw na panahong underwater. Iisang hindi na-optimize na draw ito sa pinaikling window, kaya hindi ito humahadlang — pero dapat kumpirmahin ng analyst na nananatili ang long-horizon trend factor sa labas ng normal-vol regime at nahihigitan ang mga medium-horizon momentum basket na sinasabi nitong naiiba rito bago maglaan ng oras sa optimization.
Pagsusuri ng Backtest
- Sharpe
- 0.35
- Kabuuang Return
- 48.20%
- Max Drawdown
- 44.24%
- Kabuuang Trade
- 273
- Win Rate
- 41.8%
- Profit Factor
- 0.96
Maayos na diversified basket sa majors na may buong history; sapat ang sample na 273 trade / 6.7 taon (metrics_reliable=true)
Ipinatutupad ng mga trade ang hypothesis (139 long / 134 short na net-directional leg, ~72d na hawak — tapat ang pagkakakodigo sa disenyong mababa ang turnover at nagpapadaloy sa trend)
Nalalampasan ng avg_trade_return_pct 3.03% ang antas ng bayarin na kailangan upang hindi kainin ng komisyon ang kita sa pantay na pagtimbang; 1.18% lang ng gross ang komisyon, kaya hindi ito NOT na nalulugi dahil sa bayarin.
Negatibo ang gross edge: profit_factor 0.962 (<1), avg_trade_pnl_usd -39.30, expectancy -$39.30/trade — negatibo ang size-weighted USD expectancy dahil mas malaki ang notional ng mga talo kaysa sa ipinahihiwatig ng positibong equal-weighted avg_trade_return_pct
Ilusyon sa mark-to-market ang headline na +48.2%: ibig sabihin ng end_unrealized_pct 58.9, ang buong headline ay mga bukas na posisyong hindi na-exit sa dulo ng backtest; negatibo ang realized track record at ang CAGR ay -2.19%
Sharpe 0.35 na may CI [-0.43, 1.08] ay sumasaklaw sa zero; nalulugi sa karamihan ng mga taon sa kalendaryo (2021 -26.7%, 2024 -3.6%, 2025 -38.3%) at sa normal-vol tercile lang umiiral ang edge (kalma -14.5%, stressed +9.8% pero normal +56.8%) — napatunayan ang alalahanin ni QA tungkol sa regime
Hindi naipakita na hiwalay na factor ang long-horizon trend: benchmark_meaningful=false, at hindi nahihigitan ng strategy ang simpleng paghawak sa basket batay sa realized na resulta
Pagsusuri
Backtest gate: - hindi maaasahan ang metrics: kulang ang ebidensiya sa 261 trade / 2437 araw ng datos (kailangan ng >=5 trade sa loob ng >=10 araw) — dagdagan ang dalas ng signal o palawakin ang window
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.