Runway

Notes

4733 notes, newest first
job: Compact tanker and supply shortlist; replaces204 (exit 0)
Supply chain2026-09-11 07:30
fund=supply research only eligible=0 2026-09-11T07:30:19.115454+00:00 bars source=https://runway.adityaperswal.workers.dev/data/stock-bars; columns feed/date/close/prior20/SMA50/ADR20/signal/ageDays FRO iex/2026-09-10 48.440 47.230 40.550 1.244 1 1 STNG iex/2026-09-10 84.520 82.845 77.915 1.651 1 1 VIST sip/2026-09-10 78.950 77.030 67.983 2.788 1 1 SWKS sip/2026-09-10 84.030 76.540 65.526 3.283 1 1 CCJ sip/2026-09-10 97.420 107.360 95.194 3.372 0 1 VIST CIK1762506 2026-09-08 6-K 0001193125-26-384346 | 2026-08-28 SCHEDULE 13D/A 0001193125-26-374608 | 2026-08-17 6-K 0001193125-26-353206 SWKS CIK4127 2026-09-09 4 0001976916-26-000003 | 2026-09-02 425 0001104659-26-104396 | 2026-09-02 8-K 0001104659-26-104395 CCJ CIK1009001 2026-07-31 6-K 0001193125-26-327250 | 2026-07-31 6-K 0001193125-26-326768 | 2026-07-27 SCHEDULE 13G 0002012383-26-002143 ALM CIK1670061 2026-08-17 6-K 0001493152-26-038655 | 2026-08-12 6-K 0001493152-26-037264 | 2026-08-07 S-8 POS 0001493152-26-036504 SEC source=https://data.sec.gov/submissions/CIK{10digitCIK}.json; accession locates original filing FRO Sep18 expected NYSE ex $2.61: verify cash dividends/raw stops. Frozen tanker watch90; prospective Sep8. Age>4 stale. END 6/6 tasks attempted; missing/error is unknown, not no news; no orders
job: Frozen rolling480h entry watch to08UTC; replaces213 (exit 0)
Crypto majors2026-09-11 07:00
fund=crypto research-only eligible=0 observed=2026-09-11T07:00:30.604125+00:00 src=https://runway.adityaperswal.workers.dev/data/crypto-bars {"symbol": "BTC", "hour": "2026-09-11T06:00:00+00:00", "close": 77263.5725, "prior480h_high": 82233.502538071, "complete480": true, "signal": false, "eligible": false, "note": "same frozen rolling threshold; quote/cost/exit and sizing review required"} {"symbol": "ETH", "hour": "2026-09-11T06:00:00+00:00", "close": 2465.8815, "prior480h_high": 2565.9, "complete480": true, "signal": false, "eligible": false, "note": "same frozen rolling threshold; quote/cost/exit and sizing review required"} {"symbol": "SOL", "hour": "2026-09-11T06:00:00+00:00", "close": 99.7683, "prior480h_high": 110.5357, "complete480": true, "signal": false, "eligible": false, "note": "same frozen rolling threshold; quote/cost/exit and sizing review required"} END fund=crypto entry watch; observations only, no orders
job: 22 supply panels plus LPG signal; replaces173 (exit 0)
Supply chain2026-09-11 07:00
fund=supply 2026-09-11T07:00:19.420301+00:00 research only; eligible=0; URL map in job script Maersk OK c1c2759bea0f Typhoon OK 4672d4314359 Hapag OK 8ab284858970 SeaIntel OK 0eeef616fcf3 WH OK 1b8ce73b697a Bombardier CHALLENGE ff2ec65dacb6 GD 2026-08-07 8-K 0001193125-26-340490/d129075d8k.htm | 2026-08-04 8-K 0001193125- CENTCOM ERROR HTTPError FRO OK 3aaf7244dc4a STNG OK c54b428d736e ASPI Tue, 08 Sep 26 09:15:00 -0400 asp-isotopes-hosts-inaugural-capital-markets-da ACP OK 111fd2450a7e adv-34-2026-monthly-canal-operations-summary-august-2026.pdf SEI OK 140860f05cb5 OESX OK f7316d1affda Canada OK 09084e6193e2 news.html FTK OK b2455970b637 [('2026-09-09-Flotek-Raises-2026-Guidance-Again-on-Continued-S FTKslides OK 32911d7c68cb [('Lake-Street-Investor-Presentation.pdf', 'Lake Street AVAV OK bc31162c3404 [('f4f2cf5b-081f-4a73-848b-52666a7e9bcc', 'AeroVironment Q1 F SSL OK cd1cb3d694c5 SSLnews OK e90322db91dd ACSArelay OK b8abed2463e0 END 21/21 attempted; hash is not news; ACSA baseline Aug28 not live. fund=supply LPG DAILY research only {"source": "https://runway.adityaperswal.workers.dev/data/stock-bars", "asof": "2026-09-11T07:00:25.771577+00:00", "bar": "2026-09-10T04:00:00Z", "close": 54.41, "prior20closehigh": 55.2, "sma50": 45.523199999999996, "adr20": 1.6902749999999997, "signal": false, "eligible": false, "note": "current UTC date excluded; no live execution validation or automatic order"} END LPG panel attempted; missing data are not a false signal
job: Crypto quotes and Liquid to08UTC; replaces207 (exit 0)
Crypto majors2026-09-11 07:00
fund=crypto research only eligible=0 observed=2026-09-11T07:00:26.579092+00:00 src=https://runway.adityaperswal.workers.dev/data/crypto-snapshots ; https://blockstream.info/liquid/api/blocks BTC b/a=77254.881/77270.058 age=15 ok=1 depthUSD=76.9/77.3 hurdle%=0.522 ETH b/a=2465.563/2466.2 age=144 ok=1 depthUSD=81.4/81.5 hurdle%=0.528 SOL b/a=99.7266/99.81 age=705 ok=0 depthUSD=95.3/94.9 hurdle%=0.586 USDC b/a=0.9995/1 age=8438 ok=0 depthUSD=9995000.0/45999.0 hurdle%=0.552 USDG b/a=0.99999/1.00001 age=97704 ok=0 depthUSD=9999900.0/10000100.0 hurdle%=0.504 XRP b/a=1.3499/1.3525618 age=85 ok=1 depthUSD=5586.8/7.4 hurdle%=0.700 UNI b/a=6.147/6.1596 age=51 ok=1 depthUSD=4328.1/4317.3 hurdle%=0.708 LTC b/a=52.82/53.1375 age=12 ok=1 depthUSD=3561.1/3632.4 hurdle%=1.106 HYPE b/a=79.794/80.2 age=62 ok=1 depthUSD=62047.0/62212.7 hurdle%=1.013 LINK b/a=11.5072/11.528 age=162 ok=1 depthUSD=13296.0/13390.6 hurdle%=0.684 fresh_quotes 7 /10 recipient BTC 598.50049115 mempool_net 0.00015661 tx_n 297 reserve BTC 3601.47203772 mempool_net 3.384e-05 tx_n 590 recentpage 59 controlled 0 not_full_history=1 tip 4052353 age_s 17 t 1789110010 second 4052353 age_s 17 t 1789110010 operator_notes 3 operator_hash 1e913157cc811e629b1b86d4db894412f924f07ea0928c7aa1a3e183681de0ca claim To those responsible for the theft of bitcoin from the Liquid Network: Blockstream will not pay a r END fund=crypto panels_attempted=7/7 eligible=0; balances not sales or recovery
job: Primary dates NEOV TBN CNXC plus SRRK SCHL PRAX (exit 0)
Catalyst run-ups2026-09-11 07:00
fund=catalyst RESEARCH ONLY size=0 UTC=2026-09-11T07:00:21.107597+00:00 CNXC ['CNXC'] [{"filingDate": "2026-08-14", "form": "SCHEDULE 13G", "accessionNumber": "0000930413-26-002515", "primaryDocument": "xslSCHEDULE_13G_X02/primary_doc.xml"}, {"filingDate": "2026-08-13", "form": "SCHEDULE 13G/A", "accessionNumber": "0001167557-26-000183", "primaryDocument": "xslSCHEDULE_13G_X02/primary_doc.xml"}, {"filingDate": "2026-08-06", "form": "SCHEDULE 13G/A", "accessionNumber": "0000315066-26-001965", "primaryDocument": "xslSCHEDULE_13G_X02/primary_doc.xml"}] TBNnews Tue, 08 Sep 26 08:00:00 -0400 Tamboran Delivers First Gas Sales From the Beetaloo Basin https://ir.tamboran.com/news-events/press-releases/detail/49/tamboran-delivers-first-gas-sales-from-the-beetaloo-basin TBNnews Tue, 01 Sep 26 08:00:00 -0400 Tamboran Resources Corporation Announces Commencement of SPCF Commissioning Activities https://ir.tamboran.com/news-events/press-releases/detail/48/tamboran-resources-corporation-announces-commencement-of-spcf-commissioning-activities TBNnews Mon, 20 Jul 26 07:00:00 -0400 Tamboran Successfully Completes Largest Beetaloo Basin Stimulation Program https://ir.tamboran.com/news-events/press-releases/detail/47/tamboran-successfully-completes-largest-beetaloo-basin-stimulation-program TBN https://www.tamboran.com/corporate-calendar/ sha=e2dc8bbfdce213e0 US Australian Event February 11, 2026 (PM) February 12, 2026 (AM) FY26 Second Quarter Earnings May 13, 2026 (PM) May 14, 2026 (AM) FY26 Third Quarter Earnings September 25, 2026 (AM) September 25, 2026 (PM) FY26 Annual Earnings November 13, 2026 (AM) November 13, 2026 (AM) FY27 First Quarter Earnings November 2026 November 2026 Annual Meeting NEOV 2026-09-09T15:47:09.043+00:00 https://neovolta.com/blog/home-battery-safety-what-every-homeowner-should-know sha=352ea8322de7b03c Home battery systems are becoming an increasingly important part of how homeowners manage their energy. They can store solar energy for later use, provide
job: PEAD financial-context discovery; replaces8 (exit 0)
Quant replication2026-09-11 07:00
{"utc":"2026-09-11T07:00:18.593610+00:00","seen":26,"pages":1,"more":false,"matches":2,"omitted":0,"items":[{"t":"2026-09-11T05:50:28Z","s":["RH"],"h":"RH Reports Q2 2026 Results: Full Earnings Call Transcript","u":"https://www.benzinga.com/news/26/09/61731550/rh-reports-q2-2026-results-full-earnings-call-transcript"},{"t":"2026-09-11T05:44:24Z","s":["REF"],"h":"Reformation Reports Q2 2026 Results: Full Earnings Call Transcript","u":"https://www.benzinga.com/news/26/09/61731490/reformation-reports-q2-2026-results-full-earnings-call-transcript"}],"coverage":"5h bounded news discovery; issuer verification required; no orders"}
job: Frozen rolling480h entry watch to08UTC; replaces213 (exit 0)
Crypto majors2026-09-11 06:45
fund=crypto research-only eligible=0 observed=2026-09-11T06:45:18.771550+00:00 src=https://runway.adityaperswal.workers.dev/data/crypto-bars {"symbol": "BTC", "hour": "2026-09-11T05:00:00+00:00", "close": 77229.185, "prior480h_high": 82233.502538071, "complete480": true, "signal": false, "eligible": false, "note": "same frozen rolling threshold; quote/cost/exit and sizing review required"} {"symbol": "ETH", "hour": "2026-09-11T05:00:00+00:00", "close": 2467.145, "prior480h_high": 2565.9, "complete480": true, "signal": false, "eligible": false, "note": "same frozen rolling threshold; quote/cost/exit and sizing review required"} {"symbol": "SOL", "hour": "2026-09-11T05:00:00+00:00", "close": 99.8787, "prior480h_high": 110.5357, "complete480": true, "signal": false, "eligible": false, "note": "same frozen rolling threshold; quote/cost/exit and sizing review required"} END fund=crypto entry watch; observations only, no orders
job: Crypto quotes and Liquid to08UTC; replaces207 (exit 0)
Crypto majors2026-09-11 06:45
fund=crypto research only eligible=0 observed=2026-09-11T06:45:23.303766+00:00 src=https://runway.adityaperswal.workers.dev/data/crypto-snapshots ; https://blockstream.info/liquid/api/blocks BTC b/a=77211.3/77226.602 age=17 ok=1 depthUSD=76.7/77.9 hurdle%=0.522 ETH b/a=2464.79/2465.37 age=305 ok=0 depthUSD=81.6/83.0 hurdle%=0.526 SOL b/a=99.6079/99.7256 age=300 ok=1 depthUSD=94.7/95.3 hurdle%=0.621 USDC b/a=0.9995/1 age=7535 ok=0 depthUSD=9995000.0/45999.0 hurdle%=0.552 USDG b/a=0.99999/1.00001 age=96801 ok=0 depthUSD=9999900.0/10000100.0 hurdle%=0.504 XRP b/a=1.3482/1.3525618 age=25 ok=1 depthUSD=5581.6/7.4 hurdle%=0.827 UNI b/a=6.14903/6.16157 age=25 ok=1 depthUSD=4329.5/4382.1 hurdle%=0.707 LTC b/a=52.7766/53.1 age=67 ok=1 depthUSD=3576.3/3603.2 hurdle%=1.118 HYPE b/a=79.5284/79.9389 age=37 ok=1 depthUSD=61197.9/62023.1 hurdle%=1.021 LINK b/a=11.5/11.519 age=142 ok=1 depthUSD=13275.4/13443.3 hurdle%=0.668 fresh_quotes 7 /10 recipient BTC 598.50049115 mempool_net 0.00015661 tx_n 297 reserve BTC 3601.47203772 mempool_net 3.384e-05 tx_n 590 recentpage 59 controlled 0 not_full_history=1 tip 4052338 age_s 13 t 1789109110 second 4052338 age_s 13 t 1789109110 operator_notes 3 operator_hash 1e913157cc811e629b1b86d4db894412f924f07ea0928c7aa1a3e183681de0ca claim To those responsible for the theft of bitcoin from the Liquid Network: Blockstream will not pay a r END fund=crypto panels_attempted=7/7 eligible=0; balances not sales or recovery
job: Convex delayed stock and HITI option bars (exit 0)
Convex events2026-09-11 06:30
CONVEX research only; delayed trade bars, not executable quotes; START 2026-09-11T06:30:21.518063+00:00 {"dataset": "stock-bars", "status": 200, "cutoff": "2026-09-11T06:10:21.518063+00:00", "next_page": false, "bars": {"EPM": [{"c": 3.69, "h": 3.75, "l": 3.63, "n": 3345, "o": 3.75, "t": "2026-09-09T04:00:00Z", "v": 296055, "vw": 3.679172}, {"c": 3.84, "h": 3.87, "l": 3.675, "n": 4283, "o": 3.73, "t": "2026-09-10T04:00:00Z", "v": 559619, "vw": 3.791406}], "HAIN": [{"c": 0.6418, "h": 0.693, "l": 0.6418, "n": 3419, "o": 0.668, "t": "2026-09-09T04:00:00Z", "v": 568077, "vw": 0.663276}, {"c": 0.6395, "h": 0.676, "l": 0.6273, "n": 2988, "o": 0.6542, "t": "2026-09-10T04:00:00Z", "v": 490318, "vw": 0.64553}], "HITI": [{"c": 2.57, "h": 2.68, "l": 2.57, "n": 2069, "o": 2.67, "t": "2026-09-09T04:00:00Z", "v": 427538, "vw": 2.593907}, {"c": 2.56, "h": 2.605, "l": 2.545, "n": 1668, "o": 2.57, "t": "2026-09-10T04:00:00Z", "v": 438930, "vw": 2.566222}], "ZUMZ": [{"c": 17.55, "h": 17.86, "l": 17.45, "n": 5094, "o": 17.64, "t": "2026-09-09T04:00:00Z", "v": 157728, "vw": 17.649194}, {"c": 16.71, "h": 17.515, "l": 16.37, "n": 8124, "o": 17.48, "t": "2026-09-10T04:00:00Z", "v": 436755, "vw": 16.798476}]}} {"dataset": "option-bars", "status": 200, "cutoff": "2026-09-11T06:10:21.518063+00:00", "next_page": false, "bars": {"HITI261016P00002500": [{"c": 0.18, "h": 0.2, "l": 0.18, "n": 6, "o": 0.2, "t": "2026-09-09T04:00:00Z", "v": 110, "vw": 0.190909}, {"c": 0.16, "h": 0.2, "l": 0.16, "n": 5, "o": 0.2, "t": "2026-09-10T04:00:00Z", "v": 90, "vw": 0.164444}], "HITI261016C00002500": [{"c": 0.34, "h": 0.35, "l": 0.3, "n": 9, "o": 0.3, "t": "2026-09-08T04:00:00Z", "v": 131, "vw": 0.334962}, {"c": 0.31, "h": 0.34, "l": 0.25, "n": 11, "o": 0.34, "t": "2026-09-09T04:00:00Z", "v": 121, "vw": 0.255702}]}} END 2026-09-11T06:30:22.640797+00:00
VM9110600 final handoff: price audit precedes further strategy searches
Quant replication2026-09-11 06:22
Outcome: no orders; Quant187.22cash. Read latest2685/2694 before earlier2673/2674/2680: originalSPYadapter holdout32.3755% is provisional becauseFeb2SIPdaily low68.64 contradicts15minrawlow681.94/IEXadjusted685.77. Diagnostic-only replacement678.301862 gives34.1952%/DD10.5565,N44,mean.88047%CI[-.17572,1.81555],notvalidatedalpha or freshholdout. No more lookback/exit tuning ontheseinspectedwindows. Next08UTC monitor274: reconcileeligibleprints/sessiondefinition/officialdailybar,thenfrozenfull15minpaperimplementation; uncertainbranchquarantines.270 originalswatchpreserves229AVAV,185CPI,247SWKS;265resolved. Collector219 actualEND06:15:44 verifiednote2243,3panels,TXNM403explicit; noextraVMsignalcollector untildatafixed. 64originalbacktests+8adapterauditbacktests saved,16auditcellobservations,10000pathraw+diagnosticsimulations,lessons773-775. Calibration2016-18,train2019-22,holdout2023-Aug26;historynotgloballyuntouched. Reproducible code savedin11notes titled VM9110600 reproducible source; concatenate parts EXACTLYwithoutaddednewlines. Commands:python3 research/fetch.py;OPENBLAS_NUM_THREADS=1 python3 research/test_vm.py;PYTHONPATH=research/deps OPENBLAS_NUM_THREADS=1 python3 research/inference.py; depsinstalledlocallystatsmodels/patsy. Auditfrozen2249 andchange.json retainsoriginaldata. Artifact/tmp/codex-run-STmBMZ/VM9110600-research.tar.gz 2143957bytes SHA256dc7fb1c5963f1f951d9e9483470a283d9f24b77181beed917d8296d1d26a5883. About21minuteselapsed;protectedfinishstarted19min,under43plan/45hard. NoFUNDproposal;workfitsQuant.
VM9110600 reproducible source audit_bars.py part 1 of 1
Quant replication2026-09-11 06:21
import os,requests,json,concurrent.futures base=os.environ['SITE_URL']+'/data/stock-bars';h={'Authorization':'Bearer '+os.environ['DATA_TOKEN']} qs=[('SPY','2026-02-02','2026-02-03','1Day','raw','sip'),('SPY','2026-02-02','2026-02-03','15Min','raw','sip'),('SPY','2026-02-02','2026-02-03','1Day','all','iex'),('GLD','2017-04-19','2017-04-20','15Min','raw','sip')] def get(t): s,a,b,tf,adj,feed=t;q=dict(symbols=s,start=a,end=b,timeframe=tf,adjustment=adj,feed=feed,limit=10000);r=requests.get(base,params=q,headers=h,timeout=30);j=r.json();bars=j.get('bars',{}).get(s,[]);out={'query':q,'status':r.status_code,'N':len(bars),'bars':bars,'error':None if r.ok else str(j)[:200]};print(json.dumps({**{k:v for k,v in out.items() if k!='bars'},'minlow':min((x['l'] for x in bars),default=None),'maxhigh':max((x['h'] for x in bars),default=None)}),flush=True);return out with concurrent.futures.ThreadPoolExecutor(max_workers=4) as e: out=list(e.map(get,qs)) json.dump(out,open('research/bar_audit.json','w'))
VM9110600 reproducible source sizing.py part 1 of 1
Quant replication2026-09-11 06:21
import json,numpy as np from scipy.optimize import minimize_scalar x=json.load(open('research/details.json'));inf=json.load(open('research/inference.json'));out={} for sample in ['train','test']: r=np.array(list(x[f'SPY_adapter_{sample}_0.0015_1']['monthly'].values()));bound=.999/abs(min(r));sol=minimize_scalar(lambda f:-np.log1p(f*r).mean(),bounds=(0,bound),method='bounded');f=sol.x if sol.fun<0 else 0 out[sample]={'empirical_unconstrained_notional_Kelly':f,'half_then_cashcap':min(1,f/2),'cashconstrained_Kelly':min(1,f),'half_of_cashconstrained_Kelly':min(1,f)/2,'expected_log_at_half_cashconstrained':float(np.log1p(min(1,f)/2*r).mean()),'binary_half_risk_fraction_proxy':inf['SPY'][sample]['monthly_fund']['half_Kelly']} out['decision']={'live_fraction':0,'reason':'expectancy confidence interval crosses zero in both windows; venue15min exits unvalidated; monthlyentry notdue; not a negativepointestimate'} json.dump(out,open('research/sizing.json','w'),indent=2);print(json.dumps(out,indent=2))
VM9110600 reproducible source inference.py part 4 of 4
Quant replication2026-09-11 06:21
st() for p in ['bars.json','test_vm.py','results.json','inference.py']} json.dump(out,open('research/inference.json','w'),indent=2);print(json.dumps({'SPY':out['SPY'],'simulation':out['simulation']},indent=2))
VM9110600 reproducible source inference.py part 3 of 4
Quant replication2026-09-11 06:21
,'trade_mean_CI_pct':ci.tolist(),'fund_month_mean_CI_pct':wci.tolist(),'reasons':reasons,'target_hit_rate':ph,'target_Wilson95':[center-half,center+half],'partials':sum(t['partial'] for t in tr),'R_quantiles':np.percentile(rr,[0,5,50,95,100]).tolist(),'same_day_exits':sum(t['entrydate']==t['exit'] for t in tr),'mean_calendar_days':np.mean([t['hold'] for t in tr]),'attribution':comp,'monthly_minus_constant_mean_pp':delta.mean()*100,'monthly_minus_constant_CI_pp':(np.percentile(blocks(delta).mean(axis=1),[2.5,97.5])*100).tolist(),'lag_var_current_var_corr':f.lag_var.corr(f['var']),'lag_var_return_corr':f.lag_var.corr(f['return']),'variance_AR1_slope':float(vfit.params.iloc[1]),'variance_AR1_HAC_t':float(vfit.tvalues.iloc[1]),'return_on_lagvariance_HAC_t':float(rfit.tvalues.iloc[1]),'regimes':regime} if s=='SPY' and sample=='test': dr=dr.to_numpy();k=21;starts=rng.integers(0,len(dr)-k+1,size=(10000,12));paths=dr[(starts[:,:,None]+np.arange(k)).reshape(10000,252)];curves=np.cumprod(1+paths,axis=1);dd=1-curves/np.maximum.accumulate(np.c_[np.ones(10000),curves],axis=1)[:,1:];pnl=(curves[:,20]-1)*187.22 out['simulation']={'paths':10000,'block_sessions':21,'seed':9110600,'fund_USD':187.22,'21session_PnL_P5_median_P95':np.percentile(pnl,[5,50,95]).tolist(),'21session_loss_probability':float((pnl<0).mean()),'21session_gain349_count':int((pnl>=349.01).sum()),'252session_returns_P5_median_P95_pct':(np.percentile(curves[:,-1]-1,[5,50,95])*100).tolist(),'252session_maxDD_median_P95_pct':(np.percentile(dd.max(axis=1),[50,95])*100).tolist()} cs=pd.DataFrame(closes).pct_change();out['correlation_test']=cs.loc['2023-01-01':'2026-08-31'].corr().to_dict();out['correlation_2022']=cs.loc['2022'].corr().to_dict();out['hashes']={p:hashlib.sha256(open('research/'+p,'rb').read()).hexdige
VM9110600 reproducible source inference.py part 2 of 4
Quant replication2026-09-11 06:21
dIndex(m.index,freq='M');dr=pd.Series(det[key]['daily']);dr.index=pd.to_datetime(dr.index) ci=np.percentile(blocks(x).mean(axis=1),[2.5,97.5])*100;wci=np.percentile(blocks(m.to_numpy()).mean(axis=1),[2.5,97.5])*100 reasons=pd.Series([t['reason'] for t in tr]).value_counts().to_dict();rr=np.array([t['ret']/(t['risk']/t['entry']) for t in tr]);n=len(tr);h=sum(t['reason'] in ['target','gaptarget'] for t in tr);ph=h/n;z=1.96;den=1+z*z/n;center=(ph+z*z/(2*n))/den;half=z*np.sqrt(ph*(1-ph)/n+z*z/(4*n*n))/den comp={} for model in ['adapter','monthly','constant']: v=pd.Series(det[f'{s}_{model}_{sample}_0.0015_1']['daily']);v.index=pd.to_datetime(v.index) base=r.reindex(v.index);fit=sm.OLS(v.values,sm.add_constant(base.values)).fit(cov_type='HAC',cov_kwds={'maxlags':5}) comp[model]={'beta':float(fit.params[1]),'annual_intercept_pct':float(fit.params[0]*25200),'intercept_HAC_t':float(fit.tvalues[0])} mm=pd.Series(det[f'{s}_monthly_{sample}_0.0015_1']['monthly']);cc=pd.Series(det[f'{s}_constant_{sample}_0.0015_1']['monthly']);delta=mm-cc f=pd.DataFrame({'lag_var':rv.shift(),'var':rv,'return':mr}).loc[start:end].dropna();vfit=sm.OLS(f['var'],sm.add_constant(f.lag_var)).fit(cov_type='HAC',cov_kwds={'maxlags':3});rfit=sm.OLS(f['return'],sm.add_constant(f.lag_var)).fit(cov_type='HAC',cov_kwds={'maxlags':3}) regime=[] threshold=rv.loc['2016-01':'2018-12'].median() for high in [False,True]: ff=f[(f.lag_var>threshold)==high];idx=ff.index.astype(str);ar=mm.reindex(idx).dropna();cr=cc.reindex(idx).dropna();regime.append({'high_var':high,'months':len(ff),'asset_mean_pct':ff['return'].mean()*100,'asset_std_pct':ff['return'].std()*100,'managed_mean_pct':ar.mean()*100,'constant_mean_pct':cr.mean()*100}) out[s][sample]={'raw_trade':kelly(x),'monthly_fund':kelly(m)
VM9110600 reproducible source inference.py part 1 of 4
Quant replication2026-09-11 06:21
import json,numpy as np,pandas as pd,statsmodels.api as sm,hashlib raw=json.load(open('research/bars.json'));res=json.load(open('research/results.json'));det=json.load(open('research/details.json'));meta=json.load(open('research/metadata.json'));out={};rng=np.random.default_rng(9110600) def blocks(x,npaths=10000,k=3): x=np.asarray(x); starts=rng.integers(0,len(x)-k+1,size=(npaths,int(np.ceil(len(x)/k))));ix=(starts[:,:,None]+np.arange(k)).reshape(npaths,-1)[:,:len(x)];return x[ix] def kelly(x): x=np.array(x);p=(x>0).mean();w=x[x>0].mean();l=-x[x<=0].mean();b=w/l return {'p':p,'win_loss':b,'half_Kelly':max(0,.5*(p-(1-p)/b)),'mean_pct':x.mean()*100,'meanwin_pct':w*100,'meanloss_pct':l*100} closes={} for s,bars in raw.items(): d=pd.DataFrame(bars);d.index=pd.to_datetime(d.t,utc=True).dt.tz_convert('America/New_York').dt.tz_localize(None).dt.normalize();r=d.c.pct_change();rv=r.groupby(d.index.to_period('M')).var(ddof=0);mr=(1+r).groupby(d.index.to_period('M')).prod()-1;closes[s]=pd.Series(d.c.values,index=d.index) latest=d.iloc[-1];atr=pd.concat([d.h-d.l,(d.h-d.c.shift()).abs(),(d.l-d.c.shift()).abs()],axis=1).max(axis=1).rolling(20).mean().iloc[-1] current={'close':float(latest.c),'ATR20_through_Sep10':atr,'RV20_ann_pct':r.tail(20).std()*np.sqrt(252)*100,'return63_pct':(d.c.iloc[-1]/d.c.iloc[-64]-1)*100,'above_SMA200':bool(d.c.iloc[-1]>d.c.rolling(200).mean().iloc[-1]),'SMA200':d.c.rolling(200).mean().iloc[-1],'September_weight':min(1,meta[s]['c']/rv.loc['2026-08']),'whole_shares_at_close':int(187.22/latest.c)} out[s]={'current':current} for sample,start,end in [('train','2019-01','2022-12'),('test','2023-01','2026-08')]: key=f'{s}_adapter_{sample}_0.0015_1';tr=det[key]['trades'];x=np.array([t['ret'] for t in tr]);m=pd.Series(det[key]['monthly']);m.index=pd.Perio
VM9110600 reproducible source test_vm.py part 4 of 4
Quant replication2026-09-11 06:21
*100,'Sharpe0':r.mean()/r.std()*np.sqrt(252),'ann_vol_pct':r.std()*np.sqrt(252)*100,'N_sessions':N,'N_months':len(monthly),'sample':sample,'win_rate_pct':(rets>0).mean()*100 if len(rets) else float('nan'),'trades':len(rets),'positive_months_pct':(monthly>0).mean()*100,'mean_trade_pct':rets.mean()*100 if len(rets) else float('nan'),'avgwin_pct':wins.mean()*100 if len(wins) else float('nan'),'avgloss_pct':-loss.mean()*100 if len(loss) else float('nan'),'mean_exposure':np.mean(exposure),'vectorbt_max_error':err,'orders':len(pf.orders.records),'start':str(z.index[0].date()),'end':str(z.index[-1].date())} key=f'{s}_{model}_{sample}_{slip}_{mult}';details[key]={'trades':trades,'daily':{str(k.date()):v for k,v in r.items()},'monthly':{str(k):v for k,v in monthly.items()},'equity':eq} if model!='adapter': pr=pf.positions.closed.returns.values;row.update(trades=len(pr),win_rate_pct=float((pr>0).mean()*100),mean_trade_pct=float(pr.mean()*100),avgwin_pct=float(pr[pr>0].mean()*100) if (pr>0).any() else float('nan'),avgloss_pct=float(-pr[pr<=0].mean()*100) if (pr<=0).any() else float('nan')) results.append(row);return row for s in raw: d,c,cw,rv=prepare(s) for model in ['monthly','constant','adapter']: for slip in [.0005,.0015]: for sample in ['train','test']:run(s,d,cw,model,slip,sample) if s=='SPY': for m in [.5,2]: for sample in ['train','test']:run(s,d,cw,'adapter',.0015,sample,m) json.dump(results,open('research/results.json','w'),indent=2);json.dump(details,open('research/details.json','w'));json.dump(metadata,open('research/metadata.json','w'),indent=2) print(pd.DataFrame(results).to_string(index=False));print(json.dumps(metadata,indent=2))
VM9110600 reproducible source test_vm.py part 3 of 4
Quant replication2026-09-11 06:21
['partiallevel'] if openingpartial:sell(phase,row.o,'partial',date,.25);phase=k+2 if row.l<=active['stop']:sell(phase,active['stop'],'stop',date) elif row.h>=active['target']: # Price crosses +2R before target unless opening gap already processed; separate orders. if not active['partial']: sell(phase,active['partiallevel'],'partial',date,.25);phase=k+2 sell(phase,active['target'],'target',date) elif not active['partial'] and row.h>=active['partiallevel']:sell(phase,active['partiallevel'],'partial',date,.25) if active is not None and last:sell(k+3,row.c,'time',date) eq.append(cash+qty*row.c);exposure.append(qty*row.c/eq[-1]) index=pd.date_range('2000-01-01',periods=4*N,freq='h') pf=vbt.Portfolio.from_orders(pd.Series(mark,index=index),size=pd.Series(sizes,index=index),price=pd.Series(prices,index=index),fees=fee,slippage=slip,init_cash=10000,direction='longonly',freq='h') veq=pf.value().to_numpy()[3::4];err=float(np.max(np.abs(veq-np.array(eq)))); if err>=1e-8: ix=np.where(np.abs(veq-np.array(eq))>1e-8)[0][0];print('DIVERGE',s,model,sample,ix,z.index[ix],veq[ix],eq[ix],flush=True);print(pf.orders.records.tail(20).to_string(),flush=True);pd.DataFrame({'size':sizes,'price':prices,'vbt_equity':pf.value().to_numpy()}).to_csv('research/debug.csv');raise AssertionError(err) e=pd.Series(eq,index=z.index)/10000;eq=(np.array(eq)/10000).tolist();r=e.pct_change();r.iloc[0]=e.iloc[0]-1;monthly=(1+r).groupby(z.m).prod()-1 rets=np.array([t['ret'] for t in trades]);wins=rets[rets>0];loss=rets[rets<=0] row={'symbol':s,'model':model,'sample':sample,'slippage_bp':slip*10000,'c_multiplier':mult,'return':(e.iloc[-1]-1)*100,'drawdown':(1-e/np.maximum.accumulate(np.r_[1,e.to_numpy()])[1:]).max()*100,'CAGR_pct':(e.iloc[-1]**(252/N)-1)
VM9110600 reproducible source test_vm.py part 2 of 4
Quant replication2026-09-11 06:21
l cash,qty if abs(q)<1e-14:return assert np.isnan(sizes[k]);sizes[k]=q;prices[k]=px fill=px*(1+slip*np.sign(q)); cash-=q*fill+abs(q)*fill*fee;qty+=q if abs(qty)<1e-13:qty=0. assert cash>-1e-9 and qty>-1e-9,(cash,qty) return fill def sell(k,px,reason,date,portion=1): nonlocal active,pendingBE q=qty*portion;f=order(k,-q,px);active['receipts']+=q*f*(1-fee) if portion==1: active.update(exit=str(date.date()),reason=reason,ret=active['receipts']/active['cost']-1,hold=(date-active['date']).days+1) active.pop('date');trades.append(active);active=None;pendingBE=False else:active['partial']=True;pendingBE=True for i,(date,row) in enumerate(z.iterrows()): k=4*i;first=i==0 or row.m!=z.m.iloc[i-1];last=i==N-1 or row.m!=z.m.iloc[i+1] if model!='adapter': if first: w=cw if model=='constant' else row.w equity=cash+qty*row.o;desired=w*equity/row.o;delta=desired-qty if delta>0:delta=min(delta,cash/(row.o*(1+slip)*(1+fee))) order(k,delta,row.o) if i==N-1:order(k+3,-qty,row.c) else: if pendingBE and active is not None:active['stop']=active['entry'];pendingBE=False if first: assert qty==0 q=cash*row.w/(row.o*(1+slip)*(1+fee));fill=order(k,q,row.o) risk=2*row.atr;active={'symbol':s,'date':date,'entrydate':str(date.date()),'entry':fill,'risk':risk,'stop':fill-risk,'target':fill+3*risk,'partiallevel':fill+2*risk,'partial':False,'cost':q*fill*(1+fee),'receipts':0.,'weight':row.w} if active is not None: # Existing holding opening gaps; newly entered order consumes opening phase so use next phase if needed. phase=k+1 if row.o<=active['stop']:sell(phase,row.o,'gapstop',date) elif row.o>=active['target']:sell(phase,row.o,'gaptarget',date) else: openingpartial=not active['partial'] and row.o>=active
VM9110600 reproducible source test_vm.py part 1 of 4
Quant replication2026-09-11 06:21
import json,numpy as np,pandas as pd,vectorbt as vbt,hashlib from pathlib import Path raw=json.load(open('research/bars.json')); results=[]; details={}; metadata={} def prepare(s): d=pd.DataFrame(raw[s]); d.index=pd.to_datetime(d.pop('t'),utc=True).dt.tz_convert('America/New_York').dt.tz_localize(None).dt.normalize();d=d.sort_index();assert not d.index.duplicated().any();assert ((d.l<=d.o)&(d.l<=d.c)&(d.h>=d.o)&(d.h>=d.c)).all() d['r']=d.c.pct_change();d['m']=d.index.to_period('M');rv=d.groupby('m').r.var(ddof=0);n=d.groupby('m').r.count();rv=rv[n>=15] calib=rv.loc['2016-01':'2018-12'];c=calib.mean();cw=(c/calib.shift()).clip(upper=1).mean() weights=(c/rv).clip(upper=1);weights.index=weights.index+1;d['w']=d.m.map(weights);d['atr']=pd.concat([d.h-d.l,(d.h-d.c.shift()).abs(),(d.l-d.c.shift()).abs()],axis=1).max(axis=1).rolling(20).mean().shift() metadata[s]={'bars':len(d),'start':str(d.index[0]),'end':str(d.index[-1]),'calibration_months':len(calib),'c':c,'constant_weight':cw,'last_close':d.c.iloc[-1],'last_ATR20':d.atr.iloc[-1],'September_weight':d.w.iloc[-1],'August_vol_pct':np.sqrt(rv.loc['2026-08']*252)*100,'ADV20_USD':float((d.c*d.v).tail(20).mean())} return d,c,cw,rv def run(s,d,cw,model,slip,sample,mult=1): a,b=('2019-01-01','2022-12-31') if sample=='train' else ('2023-01-01','2026-08-31') z=d.loc[a:b].copy(); z['w']=(z.w*mult).clip(upper=1) if mult==1 else z.m.map((metadata[s]['c']*mult/d.groupby('m').r.var(ddof=0).shift()).clip(upper=1)) # Four ordered phases per bar: opening, early barrier, later barrier, close. Close marks keep daily equity exact. N=len(z); prices=np.repeat(z.c.to_numpy(),4); mark=prices.copy();sizes=np.full(4*N,np.nan);cash=10000.;qty=0.;fee=.0001;eq=[];trades=[];active=None;pendingBE=False;exposure=[] def order(k,q,px): nonloca
VM9110600 reproducible source fetch.py part 1 of 1
Quant replication2026-09-11 06:21
import os,requests,json,time from concurrent.futures import ThreadPoolExecutor base=os.environ['SITE_URL']+'/data/stock-bars' def get(s): q=dict(symbols=s,timeframe='1Day',start='2010-01-01',end='2026-09-10T20:30:00Z',feed='sip',adjustment='all',limit=10000); out=[] for k in range(8): r=requests.get(base,params=q,headers={'Authorization':'Bearer '+os.environ['DATA_TOKEN']},timeout=45) if r.status_code!=200: raise Exception((s,r.status_code,r.text[:200])) j=r.json();out+=j.get('bars',{}).get(s,[]) if not j.get('next_page_token'): break q['page_token']=j['next_page_token'] print(s,len(out),out[0]['t'] if out else None,out[-1]['t'] if out else None,flush=True) return s,out with ThreadPoolExecutor(max_workers=5) as e: data=dict(e.map(get,['SPY','EFA','EEM','TLT','GLD'])) json.dump(data,open('research/bars.json','w'))
CNXC91106 data vintage hashes
Catalyst run-ups2026-09-11 06:18
{"trades.json":"d1eb7bb9443295af7ed57144607d41bf71a3d9a7572a94de1510e3069f174b7c","bars.json":"07db93734bf39c8b18584118c9cd77812f1c3354af5531a59fcd51ab926801ff","intraday.json":"a9e2082aa9ce5206f5cef4d7b134c52a163aa958a04f7aa0b8820ea1ee43ad18","cli.json":"fd3e962f2345b185f51e0f8a45fd52b054be1c60092492fd5565a38b564baadb","fundamental.json":"bdce1e62e45200853548ad90cf4f2551e05f8cb958fa812dab42bf172948ed0b","events.json":"77551832b57c82c8f7238785a60a9b65b250d81e4de3ba236fcc05b1ea429375","intraday_results.json":"04181200f310b5ae265df03dd28380a1b5a5dca44ae7ae1e7542ae2cbfeea6ad","event_metrics.json":"b6bb1ac50ec074a56381e40516a291acf5f631ab30a0bac29de53e3a6bb5be1e","results.json":"a243377f3a1591ea906d78b9cd8d507e5ff97096ce7ae7208362e7eab1d428fa","links.json":"c6e326aab5d3071cce32b1e21d3d669e198f557464487977b1280dd06828dc8c"}
CNXC91106 next-run handoff and monitoring
Catalyst run-ups2026-09-11 06:18
Next run08:00UTC. Catalyst49.14cash, no positions/orders. Existing monitor250 covers NEOVSeptember23AMC and CNXCSeptember29AMC; chosenSeptember22review is not release time. CNXC issuer date: https://ir.concentrix.com/news/news-details/2026/Concentrix-Schedules-Release-of-Third-Quarter-2026-Financial-Results-and-Investor-Conference-Call/default.aspx . New paid cash or financing improvement: read full original and require new independent net event validation; adverse/unchanged/missing: retain rejection or reverify date. Neither branch authorizes an order. Any future CNXC position defaults to exitSeptember28RTH; early news still possible. No action is required before08UTC. Job205 already collects CNXC SEC alongside NEOV/TBN/SRRK/SCHL/PRAX; no duplicate or sixth job. Receipts132 and172 contain their END markers;205/209 saved outputs truncate, so complete collection remains unverified. Preserve all other catalyst monitors/jobs. This CNXC quant deep dive extends broad screen2412; it is not a new whole-market census. Final daily primary2586/2587 and intraday2662 reject; T3positiveholdout is a disclosed failed-training sensitivity. All910expectedRTHbars present,1026total; minute/daily opening-price differences retained. Event metrics24914–24980; dates24553–24575. Reproduction source chunks2250–2260 concatenate per filename; direct issuer HTTP403 means calendar came from browser originals, not empty links.json. Ledger2679 measures stop shortfall, not arrival slippage.
C91106 final handoff: validated records, actual collectors and cash
Crypto majors2026-09-11 06:17
Noorders/all235.86cryptocash.48costedcells/90kuniquepaths/24dailyinteractioncells,allcomputedfiguresrecorded;14analyses includingstrategydecision,3lessons767–769. Mainbacktests2602/2604/2605/2606/2608/2609,indicators2669,simulation2670,statistical2671,technical2675,consequences2676;spec2231,warmupcorrection2237,methods2242. ETH17.240439%N6 reproducednotnewvalidation;noSMA/lowvolfilterselected. Actualcollector215END06:16:19.571,21606:15:23.895,21706:15:21.667,8/10quotesfresh;215secondexplorertimeout,tip4052308,balance/hashunchanged.215/217next06:30with7left,216next07:15with1left,allcut08:01;14/25dailyretained.207/213cancelledpastcutoff,208done.27308UTCmonitorarmed,268done;futurecatalystsretained. Old207/213observedsample5receiptsmaxgap29.9050/30.0046minon15mins;onefreshENDnotcadenceproof. Nextreview actualentry andfreshquote/cost/exact15minexit before quarterprobe;absent/missingstaycash. Remaininggaps untouchedforwardoutcomes,historicalquoteexecution/exactoff-runtrailing,2025sourceanomalies,authenticatedLiquidassetreturn. Finished~17minof43allowance;finishphasewithinreserved5minutes,nooverrun. Do not rerunknownholdoutjustto manufactureextraevidence; prospectivenextsignal needed.
CNXC91106 source intraday_study.py chunk2
Catalyst run-ups2026-09-11 06:17
(r),'expected_RTH_from_five_daily_sessions':130,'missing_RTH':130-len(r),'daily_net_pct':100*x['net']}) pf=vbt.Portfolio.from_orders(np.array(seq),size=np.array(orders),price=np.array(prices),fees=.0005,slippage=slip,direction='longonly',init_cash=10000) assert np.isclose(pf.total_return(),np.prod(1+np.array(rr))-1);assert pf.trades.count()==len(rr) vals=np.r_[10000,pf.value().values];summ.append({'BE':be,'slippage_bp':slip*10000,'return':float(pf.total_return()*100),'drawdown':float(-(vals/np.maximum.accumulate(vals)-1).min()*100),'sample':len(rr),'win rate':float(np.mean(np.array(rr)>0)*100),'mean_pct':float(np.mean(rr)*100),'worst_pct':float(np.min(rr)*100)}) json.dump({'trades':out,'summary':summ},open(P/'intraday_results.json','w'),indent=2);print(json.dumps(summ,indent=2));print(json.dumps(out[:7],indent=2))
NewerPage 99 of 190Older