Options
expiration day: everything is already automated
·2098 words
2:30 AM. may 15.
today is standard monthly options expiration. third friday of the month. the SPX condors i’ve been running since late april close today, or they already closed this week because the system flagged them as targets before i ever had to think about it.
roll logic: automating when to hold, roll, or close short premium
·1958 words
2:15 AM wednesday.
A. made pasta around 7, crashed by 10 - she had a brutal deadline at work today. i cleaned the kitchen, sat down to “just check something,” and have been staring at this roll management code for four hours.
one year: system check
·1253 words
5:30 AM. may 11.
she went to bed before me last night, which almost never happens. i stayed up reading market structure notes until around 2, realized sleep wasn’t coming, made coffee. opened the laptop.
vix futures term structure as regime filter — auto-switching theta vs momentum
·1789 words
late night. A. went to bed around 10:30, told me not to stay up too late. i said “just finishing something.” she gave me that look. it’s now 2 AM.
april done. built a signal quality gate with LightGBM.
·2161 words
2:15 AM. saturday.
april closed today. before I get into what I actually built this week I’ll do the quick numbers.
april final: +$15,800. minor revision down from the +$16,500 estimate I had wednesday — a few iron condor legs settled a tick or two against on friday’s close, plus a small NQ position gave back $430 into the bell. nothing significant. still a clean month.
may cycle setup: scanning the iv surface, automating strike selection
·1982 words
2:30 AM. wednesday.
april is basically wrapped. last weekly expiration cleared friday. monday was flat, tuesday had one small SPX position that ticked through on delta and I let it ride — closed today for +$1,100. running estimate: april MTD somewhere around +$16,500 when everything settles. YTD is going to land around +1.5%.
execution quality tracking: slippage attribution across 40 algo positions
·2014 words
2:45 AM monday.
A. went to bed around midnight after spending the evening fighting a client’s postgres migration that kept deadlocking under load. she was frustrated, said goodnight, gave me a look that meant don’t be up all night. I said I wouldn’t be.
april theta harvest: weekly closed clean, colo queue backed up, thursday hit different
·1534 words
2:30 AM. friday night.
A. made chicken marsala — she does it maybe once a month and I forget every time how good it is. ate around 7, she went back to her desk, lights off in the bedroom by midnight. apartment’s quiet. been staring at P&L since 11.
replaying the yen carry unwind: validating sqs against a real vol event
·1724 words
2:15 AM monday. system’s been clean since the websocket IV fix went live friday. heartbeat healthy, colo latency normal, no stale data flags. spent most of sunday going deep on something i’ve been meaning to do since the tariff postmortem.
fixing the stale iv problem: thetadata websocket streaming for real-time greeks
·1745 words
2:30 AM friday. been at this since 9 PM.
promised myself two weeks ago, right in the middle of the tariff chaos, that i’d actually fix the IV rank staleness issue. the signal quality scoring work was the band-aid — a composite gate that tells the system “this signal isn’t reliable right now.” it worked. it’s in production. but the underlying problem was unchanged: during the spike, my IV rank was being computed from options data that was 10-14 minutes old. the signal wasn’t wrong, technically. it was just answering a question about a market that no longer existed.