Lumaktaw papunta sa nilalaman
Lahat ng estratehiya

Mga Estratehiya

SPY Bull-Market Pullback Countertrend (tapat na port ng pinkfish 'ac-countertrend' ni Farrell Aultman) — Long-Only All-In, DAILY bar, SPY.USEQ

Resulta: Inabandona

SpyAcCountertrendPullback

Buod ng Resulta

Inilipat ng SpyAcCountertrendPullback ang bull-market dip-buying strategy na 'ac-countertrend' ng pinkfish sa daily SPY.USEQ, at pinanatiling di-nagbabago ang mga tuntunin, default at pullback quirk ng pinagmulan. Dumaan ito sa 3 iteration at paulit-ulit na nag-timeout ang Layer 3 sandbox (lampas sa limitasyong 300s). Gumamit na ang huling bersyon ng O(1) na mga update sa bawat bar, at sinabi ng developer na tila sa labas ng strategy code nauubos ang oras. Iniwan ang run sa verification loop bago makagawa ng anumang backtest metric, kaya hindi nasubok ang hypothesis mismo.

Hypothesis

Isang port na bawat linya ay tumutugma sa MIT-lisensiyadong halimbawang estratehiya ng pinkfish na 'ac-countertrend' ni Farrell Aultman (https://github.com/fja05680/pinkfish/blob/18a0d557ead25e0e82de3ece86bcab6c325a59ed/examples/strategies/ac-countertrend/strategy.py). Kredito: kay Farrell Aultman ang estratehiya. Ipinagpapalit ng source ang SPY gamit ang mga daily bar. Tinutukoy ng platform namin ang instrumentong iyon bilang SPY.USEQ, na may ilang dekadang split-adjusted na daily history, walang komisyon at……Magpakita ng higit paMagpakita ng mas kaunti

Isang port na bawat linya ay tumutugma sa MIT-lisensiyadong halimbawang estratehiya ng pinkfish na 'ac-countertrend' ni Farrell Aultman (https://github.com/fja05680/pinkfish/blob/18a0d557ead25e0e82de3ece86bcab6c325a59ed/examples/strategies/ac-countertrend/strategy.py). Kredito: kay Farrell Aultman ang estratehiya. Ipinagpapalit ng source ang SPY gamit ang mga daily bar. Tinutukoy ng platform namin ang instrumentong iyon bilang SPY.USEQ, na may ilang dekadang split-adjusted na daily history, walang komisyon at humigit-kumulang 0.02-0.05% na spread at impact sa round trip. Kaya hindi kailangan ng adaptasyon sa venue o bayarin. Hindi ito ang hindi pagtutugma sa rehimen ng bayarin na nagpabagsak sa mga port ng FMZ (aral 167). Mekanismo: sa uptrend (ang EMA na 40-araw ay nasa itaas ng EMA na 80-araw), bumili sa pagbaba sa ilalim ng pinakamataas na close sa loob ng 20 araw. Lumabas kapag bumalik ang presyo sa itaas ng SMA na 20-araw, kapag natamaan ang stop, nagbago ang rehimen o umabot sa limitasyong 20 bar. Long-only, isang posisyon, at halos palaging walang posisyon. Ginagamit ng lahat ng indicator ang daily CLOSE at eksaktong kinukuwenta gaya ng nasa source: ema_fast = EMA(close, 40); ema_slow = EMA(close, 80) (ang pinkfish.EMA ay ang TA-Lib EMA, na sinisimulan gamit ang SMA ng unang N close); bull = ema_fast > ema_slow; daily_std = rolling sample std sa 40 bar (ddof=1, default ng pandas) ng close.pct_change(); high_close = rolling max sa 20 bar ng close INCLUDING kasalukuyang bar; pullback = (high_close - close) / daily_std; exit_ma = SMA(close, 20). Panahon ng warm-up: walang trading hangga't hindi NaN ang lahat ng indicator (inaalis ng source ang mga NaN na row, humigit-kumulang 81 bar). DEFAULT PARAMETERS EXACTLY AS WRITTEN: std_period=40, high_period=20, ema_fast=40, ema_slow=80, hold_period=20, min_pullback=3.0, exit_ma=20, stop_loss_pct=0.15, exit_on_bear=True, margin=1 (walang leverage), use_adj=False. SOURCE QUIRK THE DEVELOPER MUST KEEP (huwag itong 'itama'): hinahati ng pullback ang distansyang DOLLAR (high_close - close) sa std ng return na walang yunit (humigit-kumulang 0.01 para sa SPY), kaya NOT ito tunay na z-score. Kapag malapit sa $500 ang SPY at malapit sa 1% ang daily_std, kailangan lang ng pullback >= 3.0 na humigit-kumulang $0.03-0.15 na pagbaba ng close mula sa pinakamataas na close sa loob ng 20 araw. Sa aktuwal, na-trigger ang entry sa halos anumang close na mas mababa sa pinakamataas na close sa loob ng 20 araw habang nasa bull regime ang merkado. Pinananatili ng port ang pormulang ito ayon sa pagkakasulat. Magiging ibang SEPARATE hipotesis ang baryanteng tama ang yunit (hinahati sa close*daily_std), hindi ang hipotesis na ito. Pagtatakda ng laki ng posisyon: all-in, ibig sabihin 100% ng equity ng account (pinkfish margin=1 → leverage 1.0), sa buong share: floor(equity / price). Mga bayarin: walang komisyon ang USEQ; minomodelo ng engine namin ang spread at impact. Inaasahang walang posisyon sa humigit-kumulang 55-70% ng mga araw, dahil lumalabas ang estratehiya sa unang close na mas mataas sa SMA20.

Inaayos ng iteration 3 ang ikalawang Layer-3 sandbox_timeout. Wala itong binabago sa mga tuntunin, indicator o parameter, at numerikal na kapareho ng v2 ang signal output (max relative diff ~3e-15 sa 3,000 test bar). Aral 155(c) diagnosis: O(1) na bawat bar ang v2. Mga ~1,650 daily bar lang ang window, na wala pang 1 s ng strategy time kahit nasa ~50 ang host load. Kaya malamang sa catalog/engine na labas sa strategy nauubos ang wall-clock (kapareho ng natuklasan sa mga timeout diagnosis ng Eth/Bnb v3). Gayunman, mas pinamura pa ngayon ang trabaho bawat bar: gumagamit ang rolling std ng returns at exit SMA ng running sums sa halip na magkopya ng list at muling magsuma sa bawat bar. Ini-scan ng rolling max ng 20 close ang fixed na 20-slot deque, at minsan lang sinisimulan ang mga EMA bago i-update nang recursively. Kung mag-timeout uli ito, sandbox plumbing o host load ang sanhi, hindi ang strategy code.

verification_loop: sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na wall-clock limit sa ~20000-bar na window (2400 araw ng SPY.USEQ-1-DAY-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng gawaing bawat bar na lumalaki kasabay ng history — halimbawa, muling pag-scan sa buong funding/supplementary series, o muling pagbuo ng list at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Ihanda muna ang mga nakaayos na timestamp array ONCE sa __init__ at gamitin ang bisect, o i-cache ang mga lookup ayon sa timestamp, para O(log n) sa halip na O(n) ang gastos bawat bar.

Implementasyon

Tapat na port ng pinkfish 'ac-countertrend' ni Farrell Aultman (MIT) ng Stratmill sa daily bars ng SPY.USEQ. Sa bull regime (SMA na sinimulan sa EMA40 ng istilong TA-Lib ay > EMA80), bumili ng all-in (buong share, leverage 1) kapag pullback = (pinakamataas na close sa 20 araw kasama ang kasalukuyan - close) / sample std sa 40 bar ng pct_change >= 3.0 (pinanatili ang dollar/unitless quirk ng pinagmulan). Lumabas kapag bear flip, close > SMA20, close < entry*(1-0.15), o nakahawak na nang 20 bar.

Mga Resulta ng Beripikasyon

sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na wall-clock limit sa ~20000-bar na window (2400 araw ng SPY.USEQ-1-DAY-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng gawaing bawat bar na lumalaki kasabay ng history — halimbawa, muling pag-scan sa buong funding/supplementary series, o muling pagbuo ng list at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Ihanda muna ang mga nakaayos na timestamp array ONCE sa __init__ at gamitin ang bisect, o i-cache ang mga lookup ayon sa timestamp, para O(log n) sa halip na O(n) ang gastos bawat bar.

Buod ng Resulta

Nabawasan na ng developer ang trabaho bawat bar sa O(1) gamit ang running sums at fixed-size deque, at ayon sa mga tala niya, sa labas ng strategy code nauubos ang oras (catalog/engine habang mabigat ang host). Kaya dapat siyasatin ang paulit-ulit na sandbox timeout sa USEQ daily bars bilang isyu sa imprastraktura, sa halip na tumugon sa mas marami pang pagbabago sa code.

Iniwan ito sa verification loop matapos ang 3 iteration. Ang nagpasiyang pagkabigo ay ang sandbox backtest sa Layer 3 na lumampas sa 300s na wall-clock limit sa ~20,000-bar (2,400-araw) na daily window ng SPY.USEQ. Hindi naabot ang pagsusuri sa backtest, optimization, analyst review at risk review.

Tapat na port ng strategy na 'ac-countertrend' ni Farrell Aultman mula sa pinkfish sa daily SPY.USEQ: long-only, all-in; bumibili ng dip sa ibaba ng pinakamataas na close sa loob ng 20 araw habang EMA(40) > EMA(80), at lumalabas kapag nagsara sa ibabaw ng SMA(20), tumama sa stop na 15%, nagbago ang regime o lumipas ang 20 bar. Sadyang pinanatili ang dollar-over-return-std na 'pullback' quirk ng pinagmulan.

Walang datos ng performance: walang laman ang ulat ng backtest, walang ulat ng optimization, at walang nakuwentang return, Sharpe o bilang ng trade.

Pagsusuri

ac-countertrend

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.