Mga Estratehiya
BTC Pang-araw-araw na Volatility-Targeted na long-only na may kill switch para sa crash regime sa BTCUSDT.BINANCE
Resulta: Inabandona
BtcDailyVolatilityTargetedLongCrashKillSwitch
Sa OHLCV lamang, iisang instrumento at mekanikal na malinis na pipeline ng pagpasok (48 pagpasok, walang ibinagsak dahil sa minimum na notional/cash)
Hypothesis
Implementasyon
Long-only na risk overlay na nagta-target ng volatility, sa iisang instrumento at pang-araw-araw na perp bar ng BTCUSDT.BINANCE USD-M. Kabaligtaran ng realized volatility ang sizing (target_vol_annual / realized_vol_annual, nililimitahan ng leverage), kaya binabawasan ang exposure kapag mataas ang volatility at tuluyang isinasara ang posisyon gamit ang kill switch sa pagguho ng merkado kapag lumampas ang kasalukuyang realized volatility sa kill_mult x ng sarili nitong rolling median sa loob ng 6 buwan. Puro OHLCV, walang karagdagang data.
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. Ang nauna nitong pag-abandona ay nagmula sa pipeline, hindi sa merkado: mali ang pagkakatali ng Layer-2 harness sa mga helper na @staticmethod (naayos na); naglabas ang QA ng mga pinal na hatol sa performance mula sa smoke test na hindi na-optimize (inalis na — QA ay kawastuhan lamang ang hinahatulan ngayon), at nagmula ang mga timeout sa sandbox sa kakulangan ng backtest slot (naayos na). Hindi nagbago ang hypothesis at ang code ng strategy. Suriin ang code batay sa merito nito; ang performance ay pagpapasyahan sa bandang huli ng buong backtest at ng optimizer.
Dapat ituring ng optimizer ang kill_mult, target_vol_annual at leverage bilang mga panukat para makontrol ang drawdown.
Inihahambing ng kill switch ang realized volatility sa 30d sa 2.5× ng median sa loob ng 180d ng pinakinis na seryeng iyon — halos hindi ito nalalampasan ng isang bar, kaya halos walang bisa ang bahagi ng proteksiyon sa drawdown habang pinalalaki ng leverage na 2.0 ang DD (86.6% sa sandbox). Tugma ito sa nakasaad na threshold ng hypothesis, pero ipinapaliwanag kung bakit hindi natutupad ang ipinangakong proteksiyon.
Baguhin ang laki ng posisyon nang direkta (ipasa ang delta) para mabawasan ang turnover.
Ang rebalancing ay buong pagsasara at muling pagpasok sa susunod na bar (walang posisyon sa loob ng isang bar, dagdag na round-trip sa bawat pagkakataon; turnover na 59.3). Tama ang paggana nito, pero hindi episyente sa bayarin.
Pagsusuri ng Backtest
- Sharpe
- 0.41
- Kabuuang Return
- 261.32%
- Max Drawdown
- 87.11%
- Kabuuang Trade
- 48
- Win Rate
- 47.9%
- Profit Factor
- 0.91
Sa OHLCV lamang, iisang instrumento at mekanikal na malinis na pipeline ng pagpasok (48 pagpasok, walang ibinagsak dahil sa minimum na notional/cash)
Sirang pagkukuwenta ng equity: imposibleng mangyari sa long-only na may leverage-2.0 ang mga pang-araw-araw na return na -6834.6%, -333.4%, -116.5%, +487.9% — pumalpak ang equity curve
avg_position_pct 1186% sa kabila ng limitasyon sa leverage na 2.0 — mas mataas nang malaki sa nilalayong exposure ang sizing
max_drawdown 87.1% (CI hanggang 98.9%) — lampas na sa 50% na hangganan para sa sapilitang pag-abandona (L19); nakamit ng overlay na nagta-target ng volatility ang OPPOSITE ng palagay nitong makababawas ito ng drawdown
profit_factor 0.91, expectancy na -$3,475/trade, negatibong alpha na -0.071, beta na 1.07, benchmark_correlation 0.86 — beta ng BTC na may leverage at negatibong edge matapos iakma sa panganib (L49)
Ilusyon ang headline na +261%: ang end_unrealized_pct 428% ay nangangahulugang malalim na negatibo ang aktuwal na return (~-167%); nasa posisyong hindi isinara ang lahat ng pakinabang sa papel
Pabago-bago ang taunang return: +3267% / -130% / -108% — pinatutunayan ng taunang return na mas mababa sa zero na sira ang accounting, return_kurtosis 113, skew na 5.4
Kasaysayan ng Iterasyon
Bumagsak ang beripikasyon (Layer 3 — backtest sa sandbox): lumampas ang smoke test sa limitasyong 300s sa wall-clock. Halos palaging nangangahulugan ito na may gawaing kada bar na lumalaki batay sa haba ng kasaysayan — halimbawa, muling sinusuri ang buong serye ng funding/karagdagang data, o muling bumubuo ng listahan at tumatawag ng min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang kalkulahin ang mga nakaayos na array ng timestamp na ONCE sa __init__ at gamitin ang bisect, o i-cache ang mga lookup batay 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.