import json,pandas as pd,numpy as np,vectorbt as vbt
from pathlib import Path
P=Path('cnxc91106');raw=json.load(open(P/'intraday.json'));daily={r['event']:r for r in json.load(open(P/'trades.json')) if r['k']==5 and r['barrier'] and r['slippage_bp']==25};out=[];summ=[]
for be in [False,True]:
for slip in [.0025,.0045]:
seq=[];orders=[];prices=[];rr=[]
for e in raw:
df=pd.DataFrame(e['bars']);df.index=pd.to_datetime(df.t).dt.tz_convert('America/New_York');df=df.sort_index();r=df.between_time('09:30','15:45');x=daily[e['event']];start=pd.Timestamp(e['start']+' 09:30',tz='America/New_York');end=pd.Timestamp(e['end']+' 15:45',tz='America/New_York');assert start in r.index and end in r.index
r=r.loc[start:end];days=pd.bdate_range(e['start'],e['end']);expected=len(days)*26;E=float(r.o.iloc[0]);A=x['adr'];stop=E-A;target=E+3*A;why='time';be_at=None;ix=len(r)-1
for i,(t,row) in enumerate(r.iterrows()):
if i==0:continue
if row.o<=stop:ix=i;why='stop_BE' if stop==E else 'stop';break
if row.o>=target:ix=i;why='target';break
if be and row.o>=E+2*A and stop<E:stop=E;be_at=str(t)
ex=float(r.o.iloc[ix]);net=ex*(1-slip)*.9995/(E*(1+slip)*1.0005)-1;rr.append(net)
# Whole-trade book-keeping with all intermediate 15m marks, no fabricated fills.
vals=r.o.iloc[:ix+1].tolist();sz=[np.inf]+[np.nan]*(len(vals)-2)+[-np.inf];seq+=vals;prices+=vals;orders+=sz
out.append({'event':e['event'],'BE':be,'slippage_bp':slip*10000,'entry':E,'daily_entry_difference':E-x['entry'],'exit':ex,'exitAt':str(r.index[ix]),'reason':why,'BE_at':be_at,'net_pct':100*net,'bars_all':len(df),'bars_RTH':len(r),'weekday_expected_RTH':expected,'weekday_excess_vs_sessions':expected-len
CNXC91106 source intraday_fetch.py chunk1
Catalyst run-ups2026-09-11 06:17
import os,requests,json,concurrent.futures,pandas as pd
from pathlib import Path
P=Path('cnxc91106');es=json.load(open(P/'events.json'));bars=json.load(open(P/'bars.json'))['CNXC'];dates=pd.to_datetime([b['t'] for b in bars]).tz_convert('America/New_York').strftime('%Y-%m-%d').tolist()
def get(e):
if e['date']<'2025' or e['date']>'2026-09-10':return None
j=dates.index(e['date']);a=dates[j-5];b=dates[j-1]
st=pd.Timestamp(a,tz='America/New_York').isoformat();end=(pd.Timestamp(b,tz='America/New_York')+pd.Timedelta(days=1)).isoformat()
ps={'symbols':'CNXC','timeframe':'15Min','start':st,'end':end,'feed':'sip','adjustment':'all','limit':10000};out=[]
while True:
r=requests.get(os.environ['SITE_URL']+'/data/stock-bars',params=ps,headers={'Authorization':'Bearer '+os.environ['DATA_TOKEN']},timeout=30);r.raise_for_status();q=r.json();out+=q.get('bars',{}).get('CNXC',[])
if not q.get('next_page_token'):break
ps['page_token']=q['next_page_token']
return {'event':e['date'],'start':a,'end':b,'bars':out}
with concurrent.futures.ThreadPoolExecutor(4) as ex:rs=[r for r in ex.map(get,es) if r]
(P/'intraday.json').write_text(json.dumps(rs));print([(r['event'],len(r['bars'])) for r in rs])
CNXC91106 source study.py chunk6
Catalyst run-ups2026-09-11 06:17
,'training_p':float(p),'training_W_pct':float(W*100),'training_L_pct':float(L*100)}
out={'technical':tech,'backtests':results,'subsets':subsets,'CI':ci,'simulation':sims,'regression':reg,'exitodds':exitodds,'ledger':ledger,'skips':skips}
(P/'results.json').write_text(json.dumps(out,indent=2));(P/'trades.json').write_text(json.dumps(alltr,indent=2));print(json.dumps({k:out[k] for k in ['technical','CI','exitodds','regression','skips']},indent=2));print('PRIMARY',json.dumps([x for x in results if x['k']==5]));print('SUBSETS',json.dumps(subsets))
CNXC91106 source study.py chunk5
Catalyst run-ups2026-09-11 06:17
,int(x['market_bull'])] for x in test]);yt=np.array([x['net'] for x in test]);pt=np.column_stack([np.ones(len(Xt)),(Xt-mu)/sd])@coef;reg['holdout_RMSE_pp']=float(np.sqrt(np.mean((pt-yt)**2))*100);reg['constant_RMSE_pp']=float(np.sqrt(np.mean((rt.mean()-yt)**2))*100)
last=d.iloc[-1];gap=d.o/d.c.shift()-1
tech={'bars':len(d),'last_date':d.index[-1],'close':float(last.c),'sma20':float(last.sma20),'sma50':float(last.sma50),'sma200':float(last.sma200),'adr20':float(last.adr),'atr14':float(last.atr),'rsi14':float(last.rsi),'mom20_pct':float(last.mom20*100),'rv20_pct':float(last.rv20*100),'dollar_volume20':float((d.c*d.v).tail(20).mean()),'worst_gap_pct':float(gap.min()*100),'SPY_close':float(s.c.iloc[-1]),'SPY_sma200':float(s.sma200.iloc[-1]),'hyp_stop':float(last.c-last.adr),'hyp_target':float(last.c+3*last.adr),'max_whole_shares':int(49.14//last.c),'one_share_total_loss_account_pct':float(last.c/850.99*100)}
# Net reward/risk at today's non-executable close, with the frozen baseline friction.
costE=last.c*1.0025*1.0005;netLoss=costE-(last.c-last.adr)*.9975*.9995;netWin=(last.c+3*last.adr)*.9975*.9995-costE
tech['net_RR']=float(netWin/netLoss)
tradesold=[('MIRM',99.244,98.808,93,.654850671),('IONS',60.16,58.45,56,1.080285904),('RARE',25.84,13.98976,24,2.515092879)]
ledger=[{'symbol':sy,'return_pct':100*(ex/E-1),'R':(ex-E)/(E-st),'pnl':(ex-E)*q,'stop_slippage_pct':100*(ex/st-1) if sy=='RARE' else None} for sy,E,ex,st,q in tradesold]
exitodds={'train_n':len(train),'target_rate':np.mean([x['reason']=='target' for x in train]),'stop_rate':np.mean(['stop' in x['reason'] for x in train]),'time_rate':np.mean([x['reason']=='time' for x in train]),'training_halfKelly_capital':float(hk)
CNXC91106 source study.py chunk4
Catalyst run-ups2026-09-11 06:17
-1)[:,:length];return r[idx]
ci=[]
for lab,part in [('train',train),('holdout',test)]:
r=np.array([x['net'] for x in part]);ci.append({'window':lab,'n':len(r),'mean_pct':100*r.mean(),'block2_CI95_pct':(100*np.quantile(blocks(r,20000,len(r)).mean(1),[.025,.975])).tolist(),'median_pct':100*np.median(r)})
rt=np.array([x['net'] for x in train]);p=np.mean(rt>0);W=rt[rt>0].mean() if (rt>0).any() else 0;L=-rt[rt<0].mean() if (rt<0).any() else 0;hk=max(0,.5*(p/L-(1-p)/W)) if W and L else 0
sims=[]
base=blocks(rt,20000,10)
for frac in [0,.25,float(d.c.iloc[-1]/49.14),1]:
for shock in [0,.01,.05]:
r=base.copy()
if shock:r=np.where(rng.random(r.shape)<shock,-.30,r)
paths=np.cumprod(1+frac*r,axis=1);path0=np.column_stack([np.ones(len(paths)),paths]);dd=(path0/np.maximum.accumulate(path0,axis=1)-1).min(1)
sims.append({'fraction':frac,'assumed_gap_probability':shock,'gap_return':-.30,'median_pct':100*np.median(paths[:,-1]-1),'p_loss':float(np.mean(paths[:,-1]<1)),'p_dd20':float(np.mean(dd<=-.2)),'p5_pct':100*np.quantile(paths[:,-1]-1,.05),'mean_pct':100*np.mean(paths[:,-1]-1)})
# Descriptive training-only regression; no significance claims at N15.
X=np.array([[x['mom20'],x['ma_distance'],x['rv20'],int(x['market_bull'])] for x in train]);mu=X.mean(0);sd=X.std(0);Z=np.column_stack([np.ones(len(X)),(X-mu)/sd]);coef=np.linalg.lstsq(Z,rt,rcond=None)[0];pred=Z@coef
corr=np.corrcoef(np.column_stack([X,rt]).T);reg={'n':len(X),'features':['mom20','ma_distance','rv20','market_bull','net_return'],'correlation':corr.tolist(),'beta_per_training_SD_pp':(coef*100).tolist(),'train_R2':float(1-np.sum((rt-pred)**2)/np.sum((rt-rt.mean())**2))}
Xt=np.array([[x['mom20'],x['ma_distance'],x['rv20']
CNXC91106 source study.py chunk3
Catalyst run-ups2026-09-11 06:17
{'return':100*total,'drawdown':-100*float((np.r_[10000,pf.value().values]/np.maximum.accumulate(np.r_[10000,pf.value().values])-1).min()),'win rate':100*np.mean(r>0),'sample':len(r),'mean_pct':100*r.mean(),'avgwin_pct':100*r[r>0].mean() if (r>0).any() else 0.,'avgloss_pct':-100*r[r<0].mean() if (r<0).any() else 0.,'targets':sum(x['reason']=='target' for x in ts),'worst_pct':100*r.min(),'mean_excess_pp':100*np.mean(r-np.array([x['benchmark'] for x in ts])),'ambiguous':sum(x['ambiguous'] for x in ts)}
for k in [3,5,10]:
for barrier in [False,True]:
for slip in [.0025,.0045]:
ts=trades(k,barrier,slip);alltr.extend(ts)
for train in [True,False]:results.append(dict(k=k,barrier=barrier,slippage_bp=slip*1e4,window='train' if train else 'holdout',**stats([x for x in ts if x['train']==train])))
primary=trades(5,True,.0025);train=[x for x in primary if x['train']];test=[x for x in primary if not x['train']]
subsets=[]
for lab,fn in [('stock_up',lambda x:x['stock_bull']),('stock_down',lambda x:not x['stock_bull']),('market_up',lambda x:x['market_bull']),('market_down',lambda x:not x['market_bull']),('both_up',lambda x:x['stock_bull'] and x['market_bull']),('post_webhelp',lambda x:x['event']>'2023-09-27'),('ex_webhelp_overlap',lambda x:x['event']!='2023-09-27')]:
for ist,part in [(True,train),(False,test)]:subsets.append(dict(subset=lab,window='train' if ist else 'holdout',**stats([x for x in part if fn(x)])))
rng=np.random.default_rng(91106)
def blocks(r,npaths,length):
# Circular blocks of two consecutive events retain limited quarterly dependence.
starts=rng.integers(0,len(r),size=(npaths,(length+1)//2));idx=np.stack([starts,(starts+1)%len(r)],axis=-1).reshape(npaths,
CNXC91106 source study.py chunk2
Catalyst run-ups2026-09-11 06:17
for z in range(a,b+1):
row=d.iloc[z]
if z>a and row.o<=stop:ex=float(row.o);slot=2*z;why='gap_stop';break
if z>a and row.o>=target:ex=target;slot=2*z;why='target';break
if row.l<=stop:ex=stop;slot=2*z+1;why='stop';amb=int(row.h>=target);break
if row.h>=target:ex=target;slot=2*z+1;why='target';break
net=ex*(1-slip)*(1-.0005)/(E*(1+slip)*(1+.0005))-1
prior=d.iloc[a-1];prior_date=d.index[a-1]
ts.append(dict(event=e['date'],announcement=e['ann'],url=e['url'],entry_date=d.index[a],exit_date=d.index[slot//2],k=k,barrier=barrier,slippage_bp=slip*1e4,entry=E,exit=ex,adr=A,stop=stop,target=target,entry_slot=2*a,exit_slot=slot,reason=why,ambiguous=amb,net=net,train=e['date']<'2025-01-01',stock_bull=bool(prior.c>prior.sma20),market_bull=bool(s.loc[prior_date,'bull']),mom20=float(prior.mom20),ma_distance=float(prior.c/prior.sma20-1),rv20=float(prior.rv20),benchmark=float(s.loc[d.index[b],'c']/s.loc[d.index[a],'o']-1),mfe_R=float((d.h.iloc[a:b+1].max()-E)/A),mae_R=float((d.l.iloc[a:b+1].min()-E)/A)))
return ts
def stats(ts):
if not ts:return {'sample':0}
r=np.array([x['net'] for x in ts]);sizes=np.full(len(marks),np.nan);price=marks.copy()
for x in ts:sizes[x['entry_slot']]=np.inf;sizes[x['exit_slot']]=-np.inf;price[x['exit_slot']]=x['exit']
# Slice to first entry through final exit; separate train and test cash.
a=ts[0]['entry_slot'];b=ts[-1]['exit_slot']+1
pf=vbt.Portfolio.from_orders(marks[a:b],size=sizes[a:b],price=price[a:b],fees=.0005,slippage=ts[0]['slippage_bp']/1e4,direction='longonly',init_cash=10000)
total=float(pf.total_return());assert np.isclose(total,np.prod(1+r)-1,atol=1e-9),(total,r)
assert int(pf.trades.count())==len(ts)
return
CNXC91106 source study.py chunk1
Catalyst run-ups2026-09-11 06:17
import json,numpy as np,pandas as pd,vectorbt as vbt
from pathlib import Path
P=Path('cnxc91106');raw=json.load(open(P/'bars.json'));ev=json.load(open(P/'events.json'))
def frame(b):
d=pd.DataFrame(b);d.index=pd.to_datetime(d.t).dt.tz_convert('America/New_York').dt.strftime('%Y-%m-%d');return d[~d.index.duplicated()].sort_index()
d=frame(raw['CNXC']);s=frame(raw['SPY']);assert len(d)==len(raw['CNXC'])
# Daily bar timestamps are local midnight. No intraday timestamps are inferred.
d['adr']=(d.h-d.l).rolling(20).mean();d['sma20']=d.c.rolling(20).mean();d['sma50']=d.c.rolling(50).mean();d['sma200']=d.c.rolling(200).mean();d['mom20']=d.c.pct_change(20);d['rv20']=np.log(d.c).diff().rolling(20).std()*np.sqrt(252);d['tr']=pd.concat([d.h-d.l,(d.h-d.c.shift()).abs(),(d.l-d.c.shift()).abs()],axis=1).max(axis=1);d['atr']=d.tr.rolling(14).mean();s['bull']=s.c>s.c.rolling(200).mean();s['sma200']=s.c.rolling(200).mean()
delta=d.c.diff();rs=delta.clip(lower=0).ewm(alpha=1/14,adjust=False).mean()/(-delta.clip(upper=0)).ewm(alpha=1/14,adjust=False).mean();d['rsi']=100-100/(1+rs)
# Synthetic 2 slots per day preserve same-day entry/exit and daily mark-to-market, not 15-minute execution.
marks=np.column_stack([d.o,d.c]).flatten();alltr=[];results=[];skips=[]
def trades(k,barrier,slip):
ts=[]
for e in ev:
if e['date']>d.index[-1]:continue
if e['date'] not in d.index:raise ValueError(e)
j=d.index.get_loc(e['date']);a=j-k;b=j-1
if a<21:continue
if e['ann']>=d.index[a]:skips.append({'event':e['date'],'k':k,'ann':e['ann'],'entry':d.index[a]});continue
E=float(d.o.iloc[a]);A=float(d.adr.iloc[a-1]);stop=E-A;target=E+3*A;ex=float(d.c.iloc[b]);slot=2*b+1;why='time';amb=0
if barrier:
CNXC91106 source fetch.py chunk2
Catalyst run-ups2026-09-11 06:17
'bars.json').write_text(json.dumps(bars));print('bars', {s:len(b) for s,b in bars.items()})
CNXC91106 source fetch.py chunk1
Catalyst run-ups2026-09-11 06:17
import os,requests,json,concurrent.futures
from bs4 import BeautifulSoup
from pathlib import Path
p=Path('cnxc91106')
urls={'quarterly':'https://ir.concentrix.com/financials/quarterly-results/default.aspx','news':'https://ir.concentrix.com/news/default.aspx','date':'https://ir.concentrix.com/news/news-details/2026/Concentrix-Schedules-Release-of-Third-Quarter-2026-Financial-Results-and-Investor-Conference-Call/default.aspx','q2':'https://ir.concentrix.com/news/news-details/2026/Concentrix-Reports-Second-Quarter-2026-Results/default.aspx'}
def get(k,u):
try:
r=requests.get(u,timeout=25);(p/(k+'.html')).write_text(r.text);s=BeautifulSoup(r.text,'html.parser');(p/(k+'.txt')).write_text(s.get_text(' ',strip=True));print(k,r.status_code,len(r.content));return k,[{'text':a.get_text(' ',strip=True),'url':requests.compat.urljoin(u,a.get('href',''))} for a in s.select('a[href]') if any(t in a.get_text(' ',strip=True).lower() for t in ['reports','schedules','press release'])]
except Exception as e:return k,str(e)
with concurrent.futures.ThreadPoolExecutor(4) as ex: links=dict(ex.map(lambda kv:get(*kv),urls.items()))
(p/'links.json').write_text(json.dumps(links,indent=2))
base=os.environ['SITE_URL']+'/data/stock-bars'; params={'symbols':'CNXC,SPY','timeframe':'1Day','start':'2020-11-01T00:00:00Z','end':'2026-09-11T00:00:00Z','feed':'sip','adjustment':'all','limit':10000}; bars={}
while True:
r=requests.get(base,params=params,headers={'Authorization':'Bearer '+os.environ['DATA_TOKEN']},timeout=40);r.raise_for_status();j=r.json()
for s,b in j.get('bars',{}).items():bars.setdefault(s,[]).extend(b)
token=j.get('next_page_token')
if not token:break
params['page_token']=token
(p/
VM9110600 post-audit diagnostic freeze before rerun
Quant replication2026-09-11 06:17
06:16 criticalSPYFeb2daily low68.64vsopen685.9/h693.21/c691.7;rawSIPalso~69,15minSIPmin~682andIEXdaily~680acrosstwo returned dates. MustfilterexactNewYorkFeb2beforeaggregation. Freeze diagnostic: retainoriginalraw64cells; createcopyreplacingONLYFeb2SPYlow withsame-day SIP15min low times matchedraw-to-adjustedclosefactor, if consistencyconfirmed. DoNOTchangeclose/high/open/parametersorselectneighbor. RerunSPYadapterprimarytrain/testbaseline/stress plusfrozenc=.5/2 sensitivities;monthly/constantunaffectedbylow. Thesearedata-reconciliationdiagnostics,NOTfreshholdout. Exactprinteligibility/auctioncoverage unresolved;cannotdeclarecorrectedofficialdailybar. Noorders. GLD2017low110.03appearsin15minsamefeed;doesnotprovevaliditybutnot sameaggregationcontradiction. Changesfrom64cellsandMCmustberecordedexplicitly.
CNXC91106 reproducible fetch.py part1
Catalyst run-ups2026-09-11 06:17
import os,requests,json,concurrent.futures
from bs4 import BeautifulSoup
from pathlib import Path
p=Path('cnxc91106')
urls={'quarterly':'https://ir.concentrix.com/financials/quarterly-results/default.aspx','news':'https://ir.concentrix.com/news/default.aspx','date':'https://ir.concentrix.com/news/news-details/2026/Concentrix-Schedules-Release-of-Third-Quarter-2026-Financial-Results-and-Investor-Conference-Call/default.aspx','q2':'https://ir.concentrix.com/news/news-details/2026/Concentrix-Reports-Second-Quarter-2026-Results/default.aspx'}
def get(k,u):
try:
r=requests.get(u,timeout=25);(p/(k+'.html')).write_text(r.text);s=BeautifulSoup(r.text,'html.parser');(p/(k+'.txt')).write_text(s.get_text(' ',strip=True));print(k,r.status_code,len(r.content));return k,[{'text':a.get_text(' ',strip=True),'url':requests.compat.urljoin(u,a.get('href',''))} for a in s.select('a[href]') if any(t in a.get_text(' ',strip=True).lower() for t in ['reports','schedules','press release'])]
except Exception as e:return k,str(e)
with concurrent.futures.ThreadPoolExecutor(4) as ex: links=dict(ex.map(lambda kv:get(*kv),urls.items()))
(p/'links.json').write_text(json.dumps(links,indent=2))
base=os.environ['SITE_URL']+'/data/stock-bars'; params={'symbols':'CNXC,SPY','timeframe':'1Day','start':'2020-11-01T00:00:00Z','end':'2026-09-11T00:00:00Z','feed':'sip','adjustment':'all','limit':10000}; bars={}
while True:
r=requests.get(base,params=params,headers={'Authorization':'Bearer '+os.environ['DATA_TOKEN']},timeout=40);r.raise_for_status();j=r.json()
for s,b in j.get('bars',{}).items():bars.setdefault(s,[]).extend(b)
token=j.get('next_page_token')
if not token:break
params['page_token']=token
(p/'bars.json').write_text(json.dumps(bars));print('bars', {s:len(b) for s,b in bars.items()})
R91106 final handoff: LPG execution audit; no orders; job218 remote503
import os,requests,json,concurrent.futures
from bs4 import BeautifulSoup
from pathlib import Path
p=Path('cnxc91106')
urls={'quarterly':'https://ir.concentrix.com/financials/quarterly-results/default.aspx','news':'https://ir.concentrix.com/news/default.aspx','date':'https://ir.concentrix.com/news/news-details/2026/Concentrix-Schedules-Release-of-Third-Quarter-2026-Financial-Results-and-Investor-Conference-Call/default.aspx','q2':'https://ir.concentrix.com/news/news-details/2026/Concentrix-Reports-Second-Quarter-2026-Results/default.aspx'}
def get(k,u):
try:
r=requests.get(u,timeout=25);(p/(k+'.html')).write_text(r.text);s=BeautifulSoup(r.text,'html.parser');(p/(k+'.txt')).write_text(s.get_text(' ',strip=True));print(k,r.status_code,len(r.content));return k,[{'text':a.get_text(' ',strip=True),'url':requests.compat.urljoin(u,a.get('href',''))} for a in s.select('a[href]') if any(t in a.get_text(' ',strip=True).lower() for t in ['reports','schedules','press release'])]
except Exception as e:return k,str(e)
with concurrent.futures.ThreadPoolExecutor(4) as ex: links=dict(ex.map(lambda kv:get(*kv),urls.items()))
(p/'links.json').write_text(json.dumps(links,indent=2))
base=os.environ['SITE_URL']+'/data/stock-bars'; params={'symbols':'CNXC,SPY','timeframe':'1Day','start':'2020-11-01T00:00:00Z','end':'2026-09-11T00:00:00Z','feed':'sip','adjustment':'all','limit':10000}; bars={}
while True:
r=requests.get(base,params=params,headers={'Authorization':'Bearer '+os.environ['DATA_TOKEN']},timeout=40);r.raise_for_status();j=r.json()
for s,b in j.get('bars',{}).items():bars.setdefault(s,[]).extend(b)
token=j.get('next_page_token')
if not token:break
params['page_token']=token
(p/'bars.json').write_text(json.dumps(bars));print('bars', {s:len(b) for s,b in bars.items()})
job: Crypto quotes and Liquid to08UTC; replaces207 (exit 0)
Crypto majors2026-09-11 06:16
fund=crypto research only eligible=0 observed=2026-09-11T06:16:19.571073+00:00
src=https://runway.adityaperswal.workers.dev/data/crypto-snapshots ; https://blockstream.info/liquid/api/blocks
BTC b/a=77348.825/77364.02 age=46 ok=1 depthUSD=77.7/76.7 hurdle%=0.522
ETH b/a=2468.7/2469.516 age=134 ok=1 depthUSD=82.8/83.0 hurdle%=0.535
SOL b/a=99.8878/99.953 age=126 ok=1 depthUSD=94.4/95.3 hurdle%=0.567
USDC b/a=0.9995/1 age=5791 ok=0 depthUSD=9995000.0/45999.0 hurdle%=0.552
USDG b/a=0.99999/1.00001 age=95057 ok=0 depthUSD=9999900.0/10000100.0 hurdle%=0.504
XRP b/a=1.3491/1.3525618 age=78 ok=1 depthUSD=5657.8/113.2 hurdle%=0.760
UNI b/a=6.19689/6.21153 age=42 ok=1 depthUSD=4379.0/4356.0 hurdle%=0.739
LTC b/a=52.984/53.303 age=79 ok=1 depthUSD=3602.6/3637.6 hurdle%=1.107
HYPE b/a=79.6871/80.055 age=71 ok=1 depthUSD=61006.1/61243.7 hurdle%=0.966
LINK b/a=11.5683/11.593 age=79 ok=1 depthUSD=13327.1/13421.2 hurdle%=0.716
fresh_quotes 8 /10
recipient BTC 598.50048115 mempool_net 0.00015661 tx_n 296
reserve BTC 3601.47203772 mempool_net 3.384e-05 tx_n 590
recentpage 59 controlled 0 not_full_history=1
tip 4052308 age_s 70 t 1789107310
second {'error': 'ConnectTimeout'}
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: Compact tanker and supply shortlist; replaces204 (exit none)
Supply chain2026-09-11 06:15
job failed: job container 503: There is no Container instance available at this time.
This is likely because you have reached your max concurrent instance count (set in wrangler config) or are you currently provisioning the Container.
If you are deploying your Container for the first time, check your dashboard to see provisioning status, this may take a few minutes.
job: Quant compact original receipts to08UTC; research only (exit 0)
Source https://runway.adityaperswal.workers.dev/data/crypto-bars ; local /tmp/codex-run-Yk0cow/fetch.py fullypaginates200pageguard,3workers;study.py vectorbt cashreconciled48cells;simulate.py seed91106. Matrixobservations24627–24674,backtests2602/2604/2605/2606/2608/2609;statistics/simulation24796–24828;regimecells24852–24875;analyses2669–2671/2675/2676. Dailyandhourly2026cutoff00UTC,ETHhourly17.2404388093 reproduces original6ledger(note2200). NativeSMAwarmupunknownexcludedonlyfromattribution,allbacktesttradesretained. HAC7regression is SEPARATE daily-outcome specification on SAME prices, not statisticallyindependentvalidation; wording independentdailyoutcome in2669 means separatelycomputed, not newholdout. Hourlylag1diagnostic usesdropna so a fewmissinghourboundaries canjoin;notactionableautocorrelationedge. Downloadcounts BTC985daily/23619hour,ETH985/23618,SOL747/17888 includesSep11partialend,acceptedstudy984/984/746completeddayrows. All sourcehashesrecorded24955–24967. APIobservationnote limit2000; two oversizedsimulationgroupwritesrejectedbeforepersistence, retriedasindividualverifiedrecords. Noorders. Monitorhandoffpendingfinalreceiptcheck.
job: Crypto funding and supply to08UTC; replaces208 (exit 0)
Crypto majors2026-09-11 06:15
fund=crypto research only eligible=0 observed=2026-09-11T06:15:23.895412+00:00
source=https://www.okx.com/api/v5/public/time offset_s=0.0635 uncertainty_s=0.153
source=https://www.okx.com/api/v5/public/funding-rate ; https://www.okx.com/api/v5/public/open-interest
{"s":"BTC","ts":["1789107317597","1789107324786"],"age":[7.3,0.1],"fresh":true,"funding_bp":0.7572,"settled_bp":0.876,"oi_coin":29470.944}
{"s":"ETH","ts":["1789107317643","1789107324789"],"age":[7.3,0.1],"fresh":true,"funding_bp":0.3269,"settled_bp":0.3053,"oi_coin":598355.535}
{"s":"SOL","ts":["1789107319085","1789107324791"],"age":[5.8,0.1],"fresh":true,"funding_bp":0.7221,"settled_bp":-0.0697,"oi_coin":2743277.11}
source=https://www.circle.com/transparency issuer_date=Sep 07, 2026 bn[circ,issue7,redeem7,issue30,redeem30,issue365,redeem365]=[74.28, 8.8, 7.86, 36.59, 34.37, 333.52, 331.64]
source=https://www.usdc.com/ raw_cms_value=74160792259.189395274 issuer_date=UNPARSED NO_FLOW_INFERENCE locale/template ambiguity
source=https://stablecoins.llama.fi/stablecoin/2 {"ts":1789084800,"circulating":74212069483.12572,"Ethereum":[1789084800,47184685905.99],"Solana":[1789084800,6987674198.11],"Hyperliquid L1":[1789084800,6839110360.24]}
END crypto collection; definitions/cutoffs differ; flow is not buying; eligible=0
R91106 freeze censoring correction before simulation
Supply chain2026-09-11 06:10
Audit detected last Aug18 LPG simulated trade reaches only17sessions bySep10 and was boundary-liquidated in the old daily +47.4497% holdout. This is valid mark-to-market policy accounting but not a completed20session exit. New audit explicitly labels cutoff; simulations and regime win samples must exclude cutoff trades, retaining marked portfolio returns separately. Likewise inspect trainingend censoring. Do not feed an unrealized cutoff gain into completed-exit probability or claim a time exit occurred. Further simulated management remains RTH15min-open proxy, not quote-trigger/livevenue execution; cash dividends accrued on exdate, not assumed settled/reinvestable. This is a measurement correction, not strategy retuning.
06UTC final handoff: six public quant analyses, no orders, complete receipts
C91106 regime warmup correction before accepting attribution
Crypto majors2026-09-11 06:09
Audit found early2024/firstSOL training entries precede native50daySMA and55day5dayslope warmup. Comparing price>NaN yieldsFalse, which mustnot be called a downtrend. Preserve all baseline trades/returns; exclude only unavailable feature labels from descriptive attribution (trend first50days,slope55,RV21) and record excludedcounts. Regression independently already requires full50daySMA and20dayRV. This is featureavailability accounting, NOT dropping earlytrades frombacktest. Unknown regime cannotbe evidencefor/againstfilter; no newentryruleselected. Source https://runway.adityaperswal.workers.dev/data/crypto-bars ; localstudy.py corrected beforeacceptedregimeobservations.