Lumaktaw papunta sa nilalaman
Lahat ng estratehiya

Mga Estratehiya

ETH Volatility-Squeeze Breakout Momentum — Long-Short, Iisang Pangalan: Bilhin ang Volatility sa Pinakamura Nito sa Pagpasok sa Directional Break Out ng Bollinger-Width SQUEEZE (Bottom-Percentile Consolidation), Sumabay sa Paglawak Gamit ang ATR Trailing Stop, Isara Kapag Muling Sumisikip ang Volatility (ETHUSDT.BINANCE USD-M, 4H, 3-Parameter)

Resulta: Inabandona

EthVolatilitySqueezeBreakoutLS

Naiibang pagkakabuo (trigger ng volatility-regime, hindi momentum crossover); malinis na incremental implementation; kontrolado ang drawdown (15.8%)

Hypothesis

Isang estratehiyang LONG-SHORT na gumagamit lamang ng iisang instrumento at purong OHLCV na TREND-CAPTURE. Ang TRIGGER nito ay paglipat ng volatility na REGIME, hindi momentum crossover — sadyang kabilang sa pamilya ng mga estratehiyang napatunayang matagumpay ng factory na ONE (direksiyonal na trend, ayon sa nanalong dual-timeframe na BTC), ngunit magkaiba ang pagkakabuo nito at iniiwasan nito ang hindi na gumaganang momentum-confluence template (L62) pati ang bawat pamilya ng reversal/carry/positioning na……Magpakita ng higit paMagpakita ng mas kaunti

Isang estratehiyang LONG-SHORT na gumagamit lamang ng iisang instrumento at purong OHLCV na TREND-CAPTURE. Ang TRIGGER nito ay paglipat ng volatility na REGIME, hindi momentum crossover — sadyang kabilang sa pamilya ng mga estratehiyang napatunayang matagumpay ng factory na ONE (direksiyonal na trend, ayon sa nanalong dual-timeframe na BTC), ngunit magkaiba ang pagkakabuo nito at iniiwasan nito ang hindi na gumaganang momentum-confluence template (L62) pati ang bawat pamilya ng reversal/carry/positioning na paulit-ulit na nabibigo. Mekanismo: nagkukumpol-kumpol ang volatility sa crypto, at mapagkakatiwalaang PRECEDES ng malaking direksiyonal na paglawak ang matinding pagliit nito (lapad ng Bollinger band na nasa pinakamababang percentile = isang 'squeeze'). Wala tayong ginagawa habang may squeeze; saka tayo pumapasok sa direksiyon ng pagbasag sa saklaw kapag muling lumuwag ang volatility, at sinasakyan ang paglawak gamit ang ATR na sumusunod na stop. Tinutarget nito sa mismong estruktura ang pumatay na #1 (fee_edge): umaabot sa ilang porsiyento ang mga galaw na squeeze-release sa ETH, kaya ang nakukuhang galaw sa bawat trade ay mas mataas nang isang order of magnitude kaysa sa ~0.10% na gastos sa pag-ikot ng trade; paminsan-minsan lamang ang mga squeeze kaya nananatiling mababa ang turnover at ang epekto ng bayarin. NOT ito sa cross-sectional reversal na katatapos lamang mabigo (kabaligtarang direksiyon, iisang pangalan, trend sa halip na pagbaligtad), NOT ito kopya ng dual-timeframe confluence (iisang timeframe, volatility ang trigger), hindi ito pinapatakbo ng NOT OI/funding/positioning, at hindi nangangailangan ng karagdagang feed (purong OHLCV, kumpletong kasaysayan ng ETH, angkop sa ligtas na paggamit ng datos).

Tinutugunan ng Iteration 3 ang umiiral na ONE exit path. Binasa ko ang base template: tinatawag ng `_process_primary` ang `should_exit` at, kapag True, ginagawa ang `_submit_exit` -> `close_position`; wala nang ibang bahagi ng framework na nagsasara ng posisyon, at walang bracket na ikinakabit ang `_submit_entry`. Kaya ang average na hold na ~1.25 bars ay maaari lamang magmula sa (a) pagtakbo ng exit branch kaagad pagkaraan ng entry, o (b) exit na sinusundan ng agarang re-entry sa susunod na bar, na nagdurugtong……Magpakita ng higit paMagpakita ng mas kaunti

Tinutugunan ng Iteration 3 ang umiiral na ONE exit path. Binasa ko ang base template: tinatawag ng `_process_primary` ang `should_exit` at, kapag True, ginagawa ang `_submit_exit` -> `close_position`; wala nang ibang bahagi ng framework na nagsasara ng posisyon, at walang bracket na ikinakabit ang `_submit_entry`. Kaya ang average na hold na ~1.25 bars ay maaari lamang magmula sa (a) pagtakbo ng exit branch kaagad pagkaraan ng entry, o (b) exit na sinusundan ng agarang re-entry sa susunod na bar, na nagdurugtong ng maraming round trip na tig-iisang bar mula sa isang breakout. Hinigpitan ng Iteration 2 ang bawat sangay ng (a), pero hindi nagbago ang holding time, kaya itinuturo nito ang (b) — muling tumatakbo ang aking should_enter sa bawat bar na lampas lang sa threshold ang score na REMAINED, kaya agad sinusundan ng bagong posisyon sa parehong squeeze ang bawat exit. Isinasara ng iteration na ito ang (b) gamit ang dalawang magkahiwalay na preno: kailangan na ngayong CROSS ng score ang threshold (dapat mas mababa rito ang self._prev_score, na itinatala sa simula ng calculate_signal) para makapasok, at may reentry_cooldown_bars=6 na palugit pagkatapos ng bawat exit. Ginagawa rin nitong imposible sa halip na malabo ang (a): ang min_hold_bars na ngayon ang FIRST test sa should_exit at agad nitong nilalaktawan ang trail, re-contraction exit at time stop — iisang guard sa halip na tatlong magkakahiwalay na branch grace window na kailangang bawat isa ay tama — at hard_stop_pct=6% catastrophic stop lang ang pinapayagang lumampas dito para mapanatili ang takdang panganib bawat trade sa mas mahabang hold. Binabawasan din ng dalawang pagbabago ang turnover (dapat bumaba ang bilang na 158-trade dahil sa crossing rule at cooldown), kaya direktang tinutugunan nito ang kabiguang maging sulit ang fees: mas kaunting trade, bawat isa ay hinahawakan nang >= 24h sa paglawak ng squeeze, ang tanging ayos kung saan nahihigitan ng nasasalo bawat trade ang ~0.10% na round trip. Hindi ginalaw ang pagkalkula ng signal, imports at class structure na pumasa sa Layers 1-3; sa should_enter, should_exit at batayan ng sizing stop lang ginawa ang mga pagbabago. Isang tapat na paalala: kung mag-ulat muli ang susunod na sandbox ng ~1-bar na hold, hindi tugma ang resultang iyon sa code na ito — matematikal na ipinagbabawal ng min_hold_bars ang anumang exit bago ang 6 bars maliban kung gumalaw ang presyo nang 6% laban sa entry — at dapat siyasatin kung luma o naka-cache ang strategy build bago sisihin ang strategy mismo.

Breakout ng iisang pangalan na patag ang resulta; hindi umubra ang fix ng iteration-3 at wala itong kapasidad — hindi sulit ang 2 oras na optimization. Sa 463 trades: Sharpe 0.012 na may bootstrap CI [-0.72, 0.71] na sumasaklaw sa zero, profit_factor 1.019, PSR 0.507, total_return +2.36% sa loob ng 6.7 taon (CAGR 0.26%), expectancy +$3.77/trade — walang nasusukat na edge. Layunin ng mga pagbabago sa minimum-hold/crossing/cooldown ng iteration-3 na wakasan ang ~1.25-bar na scalp hold, pero ~4h26m pa rin ang……Magpakita ng higit paMagpakita ng mas kaunti

Breakout ng iisang pangalan na patag ang resulta; hindi umubra ang fix ng iteration-3 at wala itong kapasidad — hindi sulit ang 2 oras na optimization. Sa 463 trades: Sharpe 0.012 na may bootstrap CI [-0.72, 0.71] na sumasaklaw sa zero, profit_factor 1.019, PSR 0.507, total_return +2.36% sa loob ng 6.7 taon (CAGR 0.26%), expectancy +$3.77/trade — walang nasusukat na edge. Layunin ng mga pagbabago sa minimum-hold/crossing/cooldown ng iteration-3 na wakasan ang ~1.25-bar na scalp hold, pero ~4h26m pa rin ang avg_holding_period (mga isang 4H bar), kaya scalping pa rin ang mekanismo, hindi pagsalo ng trend. Marupok ito sa fees (0.154% avg_trade_return_pct ay eksaktong nasa 0.15% USD-M floor habang 17.9% ng gross ang commission) at wala itong kapasidad (impact_cost_pct 74.6%, capacity_usd ay ~$180k lang). Ito ang libingan ng mga breakout ng channel/squeeze sa iisang pangalan na L30/L63, at negatibo ang kamakailang regime (2026 -2.5%, malalim na negatibo ang rolling Sharpe hanggang 2026), kaya mahina hanggang negatibo ang holdout. Walang pagbabago ng parameter na makagagawang edge ang breakout na may PF-1.02, zero-Sharpe, isang-bar na hold at fee-floor; hindi ito kayang i-trade sa malaking scale. Pattern ng pagkabigo: no_edge/fee_edge/kapasidad na squeeze breakout sa iisang pangalan, hindi naging epektibo ang churn fix (L30/L63).

Implementasyon

Long/short ETHUSDT USD-M 4H trend-capture. Bawat bar, kinakalkula nito ang z * comp, kung saan z = (close - Bollinger mid)/sd sa band ng naunang bar (kung gaano kalayo ang breakout ng presyo) at comp = 1 - percentile rank ng pinakamakitid na band width sa huling ilang bar sa loob ng 240-bar na kasaysayan ng width (kung gaano kasiksik ang konsolidasyon bago nito). Magti-trigger lang ang entry kapag |score| CROSSES entry_score (mas mababa rito ang nakaraang bar) at walang exit sa loob ng huling……Magpakita ng higit paMagpakita ng mas kaunti

Long/short ETHUSDT USD-M 4H trend-capture. Bawat bar, kinakalkula nito ang z * comp, kung saan z = (close - Bollinger mid)/sd sa band ng naunang bar (kung gaano kalayo ang breakout ng presyo) at comp = 1 - percentile rank ng pinakamakitid na band width sa huling ilang bar sa loob ng 240-bar na kasaysayan ng width (kung gaano kasiksik ang konsolidasyon bago nito). Magti-trigger lang ang entry kapag |score| CROSSES entry_score (mas mababa rito ang nakaraang bar) at walang exit sa loob ng huling reentry_cooldown_bars, kaya isang trade lang ang nagmumula sa bawat squeeze release. Kapag bukas na ang posisyon, pananatilihin ito nang minimum na min_hold_bars (24h) — hard_stop_pct catastrophic stop lang ang makapagsasara rito nang mas maaga — pagkatapos ay pamamahalaan ito gamit ang ATR trailing stop na itinatakda batay sa volatility pagkatapos ng breakout (ang pinakamalaki sa kasalukuyang ATR, true range ng breakout bar, 2.5% ng presyo), exit sa muling pagsisikip ng volatility kapag bumaba ang band width sa pinakamababang quartile nito, at 120-bar na time stop. Nagsasapanganib ng 2% ng equity ang position sizing ayon sa epektibong distansya ng stop, at nililimitahan ito sa notional na 50% ng equity.

Mga Resulta ng Beripikasyon

CLEAN RESTART 2026-09-04 — inalis ang kasaysayan ng verdict at mga tala ng pagkatuto sa run na ito at sinimulan itong muli mula sa beripikasyon. Pipeline, hindi ang merkado, ang dahilan ng dati nitong pag-abandona: maling naitali ng Layer-2 harness ang mga @staticmethod helper (naayos na), nagbigay ang QA ng mga pinal na verdict sa performance batay sa hindi pa ino-optimize na smoke test (inalis na — correctness na lang ang hinuhusgahan ngayon ng QA), at dulot ng pagkaubos ng backtest slot ang mga sandbox timeout (naayos na). Hindi nagbago ang hypothesis at strategy code. Suriin ang code batay sa merito nito; sa full backtest at optimizer pagpapasyahan ang performance sa susunod.

Beripikahin ang aktuwal na average holding period sa full backtest; kung talagang ~1 bar, siyasatin kung luma o naka-cache ang strategy build bago sisihin ang code.

Nag-ulat ang sandbox ng avg_holding_bars=0.0 at avg_holding_period='4h 35m' (~1 bar), na sumasalungat sa min_hold_bars=6 (24h) bilang unang test na agad lumalaktaw sa iba pa sa should_exit. Hindi maaasahan ang holding metric sa ulat; ayon sa pagsisiyasat sa code, tama nitong ipinapatupad ang minimum hold.

Kailangang kumpirmahin ng analyst ang edge bawat trade neto ng impact at kapasidad sa nilalayong deployment capital.

impact_cost_pct=37.9%, turnover=53.7, at capacity_usd~$697k sa sandbox ay nagpapahiwatig ng makabuluhang impact/fee drag sa kabila ng layuning mababa ang turnover.

Pagsusuri ng Backtest

Sharpe
0.01
Kabuuang Return
2.36%
Max Drawdown
15.80%
Kabuuang Trade
463
Win Rate
42.8%
Profit Factor
1.02

Naiibang pagkakabuo (trigger ng volatility-regime, hindi momentum crossover); malinis na incremental implementation; kontrolado ang drawdown (15.8%)

Walang edge: Sharpe 0.012 na may CI [-0.72, 0.71] na sumasaklaw sa zero, PF 1.019, PSR 0.507, total_return +2.36% sa loob ng 6.7 taon (CAGR 0.26%)

Bigo ang hold fix ng Iteration-3: ~4h26m pa rin ang avg_holding_period (~1 bar) — geometry pa rin ng scalp, hindi trend capture

Marupok sa bayarin: avg_trade_return_pct 0.154% sa pinakamababang antas ng 0.15%, 17.9% ang komisyon sa kabuuang gross

Patay sa kapasidad: impact_cost_pct 74.6%, capacity_usd mga ~$180k lamang; L30/L63 sementeryo ng mga breakout sa iisang asset, negatibo ang kamakailang regime (2026 -2.5%)

Kasaysayan ng Iterasyon

Bigo ang beripikasyon (Layer 4 — pagsusuri ng QA): - THE CORE MECHANIC ('sumabay sa paglawak gamit ang ATR trailing stop') IS NOT REALIZED. ATR * atr_trail_mult ang layo ng trail, kung saan ang ATR ay nahuhuling Wilder(14) average. Habang may squeeze, naiipit ang ATR sa napakababang halaga; sa breakout, umaabante lamang ito nang ~1/14 patungo sa malaking true range, kaya sa ENTRY nakatakda ang trail sa volatility ng PRE-breakout at napakasikip nito para sa paglawak ng POST-breakout na kakapasok lang. Itinataas……Magpakita ng higit paMagpakita ng mas kaunti

Bigo ang beripikasyon (Layer 4 — pagsusuri ng QA): - THE CORE MECHANIC ('sumabay sa paglawak gamit ang ATR trailing stop') IS NOT REALIZED. ATR * atr_trail_mult ang layo ng trail, kung saan ang ATR ay nahuhuling Wilder(14) average. Habang may squeeze, naiipit ang ATR sa napakababang halaga; sa breakout, umaabante lamang ito nang ~1/14 patungo sa malaking true range, kaya sa ENTRY nakatakda ang trail sa volatility ng PRE-breakout at napakasikip nito para sa paglawak ng POST-breakout na kakapasok lang. Itinataas din ng should_exit ang self._peak sa HIGH ng kasalukuyang bar bago ito ihambing sa close, kaya napapagana ng isang malawak na expansion bar na may upper wick ang 'close <= peak - 3*ATR(compressed)' at nagsasara ang posisyon sa susunod na bar. Kinukumpirma ito ng sandbox sa tatlong paraan: avg_holding_period '4h 42m' (~1.2 bars kumpara sa sampu-sampung bar/2.3-araw na hold na sinasabi ng hypothesis); avg_win 406 ~= avg_loss 334 (halos magkapantay, hindi NOT ang geometry ng trend-capture); avg_trade_return_pct 0.023%, PF 0.81, total_return -6.2%. Pinipigil ng strategy ang bawat trade pagkalipas ng ~1 bar at hindi kailanman sumasabay sa paglawak, kaya hindi tugma ang aktuwal na gawi nito sa sinasabing strategy. - FEE-VIABILITY FAILURE, CONFIRMED IN THE SANDBOX (checklist #7). ~1/6 lang ng 0.15% floor ang aktuwal na avg_trade_return_pct 0.023%, at mas mababa ito sa ~0.10% na round-trip cost, kaya netong talo ang strategy (total_return -6.2%, Sharpe -0.54, PF 0.81, expectancy na -39/trade sa 158 trades) -- tuwirang bunga ito ng ~1-bar na hold. Ipinagtanggol ng developer ang kakayahang kumita matapos ang fees gamit ang engine-free replay na nagsasabing +0.535%/trade at 2.3-araw na hold; +0.023%/trade at ~1-bar na hold ang inilabas ng aktuwal na engine, kaya pinabubulaanan ng totoong backtest ang katuwirang iyon.

Bigo ang beripikasyon (Layer 4 — pagsusuri ng QA): - THE ITERATION-2 FIX DID NOT CHANGE TRADE TIMING, SO THE CORE MECHANIC IS STILL NOT REALIZED. Halos kapareho ng pumalyang iteration 1 ang sandbox: total_trades 158 kumpara sa 158, win_rate 0.3987341772 kumpara sa 0.3987341772 (magkapareho byte-for-byte), long/short 85/73 kumpara sa 85/73, avg_holding_period 5h 0m (~1.25 bars) kumpara sa 4h 42m. Lumiit lang ang mga halaga ng PnL (avg_win 406->262, avg_loss 334->212, avg_position_pct 41%->26%) dahil pinalawak ng……Magpakita ng higit paMagpakita ng mas kaunti

Bigo ang beripikasyon (Layer 4 — pagsusuri ng QA): - THE ITERATION-2 FIX DID NOT CHANGE TRADE TIMING, SO THE CORE MECHANIC IS STILL NOT REALIZED. Halos kapareho ng pumalyang iteration 1 ang sandbox: total_trades 158 kumpara sa 158, win_rate 0.3987341772 kumpara sa 0.3987341772 (magkapareho byte-for-byte), long/short 85/73 kumpara sa 85/73, avg_holding_period 5h 0m (~1.25 bars) kumpara sa 4h 42m. Lumiit lang ang mga halaga ng PnL (avg_win 406->262, avg_loss 334->212, avg_position_pct 41%->26%) dahil pinalawak ng sizing ang stop at binawasan ang quantity. Sa parehong bar pa rin pumapasok at lumalabas ang mga trade. Tiyak na patunay: pinipigil ng bagong code ang trail kapag mas mababa sa trail_grace_bars (3) ang tagal ng hold at ang re-contraction kapag mas mababa sa 8, kaya walang should_exit CANNOT na nagsasara bago ang humigit-kumulang bar 3 -- pero ~1.25 bars pa rin ang hold. Ang nagdidiktang exit ay NOT ang binagong trail; nagsasara ang mga posisyon pagkalipas ng ~1 bar sa pamamagitan ng ibang paraan (halos tiyak na mga flip mula sa kabaligtarang signal kapag muling nagsentro ang band pagkatapos ng breakout). Hindi pa rin ginagawa ng strategy ang 'sumabay sa paglawak nang sampu-sampung bar'. - FEE-VIABILITY FAILURE, STILL PRESENT (checklist #7). ~1/9 lang ng 0.15% floor ang avg_trade_return_pct 0.0178%, at mas mababa ito sa ~0.10% na round-trip cost; nananatiling netong talo ang strategy (total_return -3.69%, Sharpe -0.53, PF 0.82, expectancy na -23/trade sa 158 trades). Ang avg_win 262 ~= avg_loss 212 ay geometry ng ~1-bar na scalping, hindi trend capture. Hindi natugunan sa sandbox submission na ito ang mismong pamantayan ng tagumpay na itinakda ng developer para sa iteration na ito (gawing multi-day na right-skewed geometry ang ~1.2-bar na hold at itaas ang capture lampas sa floor).

Bigo ang beripikasyon (Layer 4 — pagsusuri ng QA): - SANDBOX BEHAVIOUR IS INCONSISTENT WITH THE SUBMITTED CODE, SO 'RIDE THE EXPANSION' CANNOT BE VERIFIED. Ang min_hold_bars=6 ang unang test sa should_exit at agad nitong nilalaktawan ang mga sangay ng trail, re-contraction at time-stop, kaya ang ONLY exit na pinapayagan bago ang 6 bars (24h) ay ang hard_stop_pct=6% catastrophic stop. Pero avg_holding_period ay 6h 31m (~1.6 bars sa 4H). Malinaw na aktibo ang mga pagbabago sa entry (158 -> 65 trades, na ang bagong……Magpakita ng higit paMagpakita ng mas kaunti

Bigo ang beripikasyon (Layer 4 — pagsusuri ng QA): - SANDBOX BEHAVIOUR IS INCONSISTENT WITH THE SUBMITTED CODE, SO 'RIDE THE EXPANSION' CANNOT BE VERIFIED. Ang min_hold_bars=6 ang unang test sa should_exit at agad nitong nilalaktawan ang mga sangay ng trail, re-contraction at time-stop, kaya ang ONLY exit na pinapayagan bago ang 6 bars (24h) ay ang hard_stop_pct=6% catastrophic stop. Pero avg_holding_period ay 6h 31m (~1.6 bars sa 4H). Malinaw na aktibo ang mga pagbabago sa entry (158 -> 65 trades, na ang bagong crossing+cooldown lang ang makalilikha), kaya aktibo rin ang same-file min-hold. Para sa average na ~1.6 bars sa ilalim ng aktibong minimum na 6 bars, kailangang tumama ang -6% catastrophic stop sa malaking mayorya ng trades sa loob ng ~1 bar -- hindi kapani-paniwala (mangangailangan ito na ~80% ng mga breakout ay gumalaw nang -6% sa loob ng isa o dalawang bar), o hindi inilalarawan ng metric ang build. Kung talagang nangingibabaw ang catastrophic stop, sistematikong nasasalo ng entry ang mga FAILED breakout na biglang bumabaligtad -- pumalya ang mekanismo. Alinman dito, hindi napapatunayang naisasagawa ang pangunahing mekanismo ng hypothesis na 'maghintay at sumabay'; naulit ang check na mismong itinuro ng developer. - NO EDGE, AND WORSE THAN BEFORE. Umeepekto ang churn fix (158 -> 65 trades, isang trade bawat squeeze), kaya may saysay ang resulta: nang alisin ang scalp churn, negatibo ang expectancy ng squeeze-breakout premise. PF 0.57 (bumaba mula sa 0.82), Sharpe -0.90 (bumaba mula sa -0.53), total_return -5.24%, win_rate 0.34, avg_trade_return_pct -0.122% (negatibo na ngayon). Ginawang mas malalaking pagkalugi laban sa trend ng mas mahabang minimum hold ang maliliit na scalp loss -- hindi mapagkakatiwalaang nauuna sa masasaluhang paglawak, pagkatapos ng fees, ang squeeze release sa ETHUSDT 4H. Tatlong iteration, pababa nang pababa ang resulta (Sharpe -0.53, -0.53, -0.90).

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.