I bought June/Feb13 put calendar in SLV a few weeks ago when the vol spread inversion went nuclear.
That was a disaster.
SLV dumped 30% 2 days later.
The Feb puts I’m short are of course 100 delta, so the effective position is long a June OTM call synthetically.
💡If a stock is $80 and you own the 100 put for $25 and 100 deltas worth of the stock, then you are synthetically long the 100 call for $5. If you don’t believe me, look at your p/l payoff for the portfolio of long puts and stock at expiry for stock prices of $90, $103, and $120 vs what it would be if you just owned the 100 call.
We understand the position and the risk. But we don’t talk about taxes much here so I’ll use this example to introduce the complexity of the real-world.
Let’s say I roll my June puts.
Consider the tax implications.
I will realize a gain on the appreciated puts.
The puts I’m short that are now the risk equivalent of being long shares because they are so far ITM. I have a mark-to-market loss on these puts, but it’s not realized. This is a problem. The entire trade has been a loser, but if I roll my June put,s I crystallize a short-term tax gain. Ideally, I need to crystallize the short-term loss on the puts I’m short by buying them back.
If I don’t buy them back and get assigned, I don’t realize the loss. Instead, I acquire shares with a basis of the strike price minus the premium I collected when I sold them. If I sold the 100 put at $5, my cost basis is $95. The shares are $70, but my loss is still unrealized until I sell the shares.
The problem might not be immediately obvious, so let me break it down.
If I roll my June puts instead of closing the entire position out, I have a trade that has been a loser, but the tax accounting shows a short-term gain + an unrealized loss.
To crystallize the loss, I must buy my put back or sell the shares once I’m assigned. But, both of these trades sell lots of SLV delta. If my intention is to maintain a synthetic long call position (long stock + long ITM puts) I’m stuck with an accounting gain.
⛔Because of the wash sale rule I cannot sell my SLV shares then immediately buy them back.
You can envision a scenario where SLV rallies up again, my synthetic call position recovers the economic loss but I have a taxable gain on the rally. My p/l on all the activity is a wash BUT I have loads of short-term taxable income!
Not picking up your matched short-term loss is leaving a dead soldier behind.
(Ok, that was dramatic. I’m sorry enough to say so, but not enough to delete it. I want to imprint it.)
There are a few choices whereby you can roll the puts, achieve the desired risk exposure but I’m not an accountant and this is not advice. There’s no wink here. Talk to an accountant.
Goal: crystallize short-term loss without getting rid of your long silver delta
Possible solutions
Once you are assigned, sell your SLV shares and replace the long with a highly correlated silver proxy such as other ETFs or silver futures. From an IRS interpretation of the wash sale rule, the futures are probably safer since COMEX is NY silver and SLV is London deliverable. But again, not an accountant.
Replace your length with assets highly correlated to silver, like miner stocks. The basis risk is obvious.
Close your puts and buy the stock at the same time, effectively buying a worthless synthetic call.
Let’s talk about #3 a bit more.
If the stock is $70 and the 100 put is only worth intrinsic (ie there’s no time value left in the 100 call), then that package is worth $100. The stock price plus the $30 put. Now you wouldn’t expect a market-maker to fill you at fair value.
I figured a market-maker might fill me for a penny of edge. When I was looking at the quote montage, the 99 strike call was offered at a penny so by arbitrage the 100 call should be offered at $.01
I tried to pay $100.01 for the package.
No dice. Nobody wanted the free money. I didn’t raise my bid, figuring I would try again on expiration day since perhaps a seller didn’t want to bother with the inventory. If they traded it on expiration day, the whole position would offset at settlement, and they would collect their easy penny.
Well, what happened?
My short put got exercised early! I got stuck with the shares and now have to sell the shares to crystallize the loss.
The interesting thing to point out is that paying up a penny to lock in a short-term accounting loss is a type of trade that’s win-win. The market maker sells a worthless synthetic option, I get my tax situation aligned.
This is a screenshare constructing a synthetic call in IB’s strategy builder, then adding it to the quote panel so you can see the bid/ask for the structure.
When I was in NYC a week ago, a friend pushed back our meeting by 90 minutes. I got a text and the calendar update. Didn’t think anything of it.
When we’re hanging out, I mentioned I’ve been tinkering a bit with AI to get more use out of the largest repo in our lives — our email inbox. My friend pulls out his phone and show me this app Poke. It was poke that pushed our meeting back on his command.
When he wakes up in the morning, Poke which is integrated with his Google suite, sends him a brief. It includes a summary of any emails or action items he received that it judges he would prioritize. It shows his schedule for the day. He had to deal with something pressing that conflicted with our appointment so he simply told Poke to notify me that he’d need to push the meeting back. Poke then emailed and texted me. He just treated his SMS like a personal assistant and it handled the rest.
This isn’t an ad for Poke, but just another thing I saw in the wild that previews how automation creep is about to turn into a flood.
Fun aside: When you onboard with poke you negotiate your monthly price with the app! The friend is well-known in investing circles and very online so the app tried to extract a high price arguing that it knew he was a baller. He got the price down 90% and told me he knows people that have gotten it to $0.
Back to email. I was thinking about marketing-related stuff for moontower. Over the years, readers have emailed me saying my content helped them land trading jobs or their boss told them to subscribe, or my post was forwarded to their desk.
[It’s a peacocky thing to say, but in the past year, the feedback is blunt about this letter being read at every market-making shop. The audience I have in my brain when I do the Thursday posts is an experienced trader who probably has juniors that he or she would rather say “go read this” rather than explain the things themselves. They’re busy trading, and I’ve already invested in the words so they can save their breath.]
I wanted to collect all these emails, but keyword search is far too manual. The ultimate crux of the problem is semantic understanding:
“My PM told the desk to subscribe” and “I got the offer at Citadel” are both results of interest, but there are many variations of these phrases and the words that comprise them share a wide range of contexts (“offer”, “desk”)
I asked the Gemini in Gmail to find them. It returned 4 when I’d expect hundreds, so its method lacks depth.
I turned to Claude to build a pipeline. It took some back and forth, but ultimately it worked beautifully. Which is exciting because it’s a reusable workflow for semantic search on any body of work, of which, Gmail is just one instance.
The pipeline is quite simple. This is how it works:
Step 1: Multiple searches using narrow keyword queries
14 targeted Gmail API keyword searches instead of 1 semantic query
Each catches a different flavor: job language + “Moontower”, boss language + “newsletter”, forwarding language + “your post”
Result: ~4,200 candidates
Snag: First queries were too broad (13K results). Fix: anchor every query to “Moontower”
AI Deliverable: Python script to push through Gmail API
Step 2 — Fetch the emails via API
Gmail API pulls full email bodies programmatically — no export needed
Result: 3,922 emails fetched
Snag: Rate-limited at email 2,850. Fix: retry logic + caching to disk
AI Deliverable: I actually used Claude extension in the browser to set up my Gmail API access
Step 3 — LLM classifies each one
Claude Haiku reads each email: “Is this a finance professional affirming Kris’s work?”
Categorizes matches: job placement, boss recommendation, team sharing, praise
Result: 585 matches
Snags: Wrong model string (3,900 silent 404s), API overload, ran out of credits mid-run, Python exception mismatch. Fix: incremental saving + resume flag
AI Deliverable: This is the main AI magic. Classifying the email as something I’m actually looking for based on the context
Results
44 team/desk sharing
24 job placements
8 boss recommendations
~$3 API cost, ~8 hours runtime, 370 lines of Python
Now if I could only have my Twitter DMs accessible via this pipeline
Takeaway
Use each tool for what it’s good at. Search engines are good at retrieval, but LLMs are good at judgment.
When I was in NYC a week ago, a friend pushed back our meeting by 90 minutes. I got a text and the calendar update. Didn’t think anything of it.
When we’re hanging out, I mentioned I’ve been tinkering a bit with AI to get more use out of the largest repo in our lives — our email inbox. My friend pulls out his phone and show me this app Poke. It was poke that pushed our meeting back on his command.
When he wakes up in the morning, Poke which is integrated with his Google suite, sends him a brief. It includes a summary of any emails or action items he received that it judges he would prioritize. It shows his schedule for the day. He had to deal with something pressing that conflicted with our appointment so he simply told Poke to notify me that he’d need to push the meeting back. Poke then emailed and texted me. He just treated his SMS like a personal assistant and it handled the rest.
This isn’t an ad for Poke, but just another thing I saw in the wild that previews how automation creep is about to turn into a flood.
Fun aside: When you onboard with poke you negotiate your monthly price with the app! The friend is well-known in investing circles and very online so the app tried to extract a high price arguing that it knew he was a baller. He got the price down 90% and told me he knows people that have gotten it to $0.
Back to email. I was thinking about marketing-related stuff for moontower. Over the years, readers have emailed me saying my content helped them land trading jobs or their boss told them to subscribe, or my post was forwarded to their desk.
[It’s a peacocky thing to say, but in the past year, the feedback is blunt about this letter being read at every market-making shop. The audience I have in my brain when I do the Thursday posts is an experienced trader who probably has juniors that he or she would rather say “go read this” rather than explain the things themselves. They’re busy trading, and I’ve already invested in the words so they can save their breath.]
I wanted to collect all these emails, but keyword search is far too manual. The ultimate crux of the problem is semantic understanding:
“My PM told the desk to subscribe” and “I got the offer at Citadel” are both results of interest, but there are many variations of these phrases and the words that comprise them share a wide range of contexts (“offer”, “desk”)
I asked the Gemini in Gmail to find them. It returned 4 when I’d expect hundreds, so its method lacks depth.
I turned to Claude to build a pipeline. It took some back and forth, but ultimately it worked beautifully. Which is exciting because it’s a reusable workflow for semantic search on any body of work, of which, Gmail is just one instance.
The pipeline is quite simple. This is how it works:
Step 1: Multiple searches using narrow keyword queries
14 targeted Gmail API keyword searches instead of 1 semantic query
Each catches a different flavor: job language + “Moontower”, boss language + “newsletter”, forwarding language + “your post”
Result: ~4,200 candidates
Snag: First queries were too broad (13K results). Fix: anchor every query to “Moontower”
⚡AI Deliverable: Python script to push through Gmail API
Step 2 — Fetch the emails via API
Gmail API pulls full email bodies programmatically — no export needed
Result: 3,922 emails fetched
Snag: Rate-limited at email 2,850. Fix: retry logic + caching to disk
⚡AI Deliverable: I actually used Claude extension in the browser to set up my Gmail API access
Step 3 — LLM classifies each one
Claude Haiku reads each email: “Is this a finance professional affirming Kris’s work?”
Categorizes matches: job placement, boss recommendation, team sharing, praise
Result: 585 matches
Snags: Wrong model string (3,900 silent 404s), API overload, ran out of credits mid-run, Python exception mismatch. Fix: incremental saving + resume flag
⚡AI Deliverable: This is the main AI magic. Classifying the email as something I’m actually looking for based on the context
Results
44 team/desk sharing
24 job placements
8 boss recommendations
~$3 API cost, ~8 hours runtime, 370 lines of Python
Now if I could only have my Twitter DMs accessible via this pipeline 🙂
Takeaway
Use each tool for what it’s good at. Search engines are good at retrieval, but LLMs are good at judgment.
10 minutes? lmao
Money Angle
It’s been interesting to re-share the evergreen investing/options posts via Twitter articles to see which one are getting lots of resonance now. Circumstances are different since the original publication date. I published quite a bit even when the blog was obscure so stuff that got lots of views or not were based on a smaller sample of readers.
Thus far in this re-publishing experiment, the most popular share has been about the levered ETF rebalance quantities.
On Friday, I re-published a guest post. It is already the most viral article I’ve put on X.
I bought June/Feb13 put calendar in SLV a few weeks ago when the vol spread inversion went nuclear.
That was a disaster.
SLV dumped 30% 2 days later.
The Feb puts I’m short are of course 100 delta, so the effective position is long a June OTM call synthetically.
💡If a stock is $80 and you own the 100 put for $25 and 100 deltas worth of the stock, then you are synthetically long the 100 call for $5. If you don’t believe me, look at your p/l payoff for the portfolio of long puts and stock at expiry for stock prices of $90, $103, and $120 vs what it would be if you just owned the 100 call.
We understand the position and the risk. But we don’t talk about taxes much here so I’ll use this example to introduce the complexity of the real-world.
Let’s say I roll my June puts.
Consider the tax implications.
I will realize a gain on the appreciated puts.
The puts I’m short that are now the risk equivalent of being long shares because they are so far ITM. I have a mark-to-market loss on these puts, but it’s not realized. This is a problem. The entire trade has been a loser, but if I roll my June put,s I crystallize a short-term tax gain. Ideally, I need to crystallize the short-term loss on the puts I’m short by buying them back.
If I don’t buy them back and get assigned, I don’t realize the loss. Instead, I acquire shares with a basis of the strike price minus the premium I collected when I sold them. If I sold the 100 put at $5, my cost basis is $95. The shares are $70, but my loss is still unrealized until I sell the shares.
The problem might not be immediately obvious, so let me break it down.
If I roll my June puts instead of closing the entire position out, I have a trade that has been a loser, but the tax accounting shows a short-term gain + an unrealized loss.
To crystallize the loss, I must buy my put back or sell the shares once I’m assigned. But, both of these trades sell lots of SLV delta. If my intention is to maintain a synthetic long call position (long stock + long ITM puts) I’m stuck with an accounting gain.
⛔Because of the wash sale rule I cannot sell my SLV shares then immediately buy them back.
You can envision a scenario where SLV rallies up again, my synthetic call position recovers the economic loss but I have a taxable gain on the rally. My p/l on all the activity is a wash BUT I have loads of short-term taxable income!
Not picking up your matched short-term loss is leaving a dead soldier behind.
(Ok, that was dramatic. I’m sorry enough to say so, but not enough to delete it. I want to imprint it.)
There are a few choices whereby you can roll the puts, achieve the desired risk exposure but I’m not an accountant and this is not advice. There’s no wink here. Talk to an accountant.
Goal: crystallize short-term loss without getting rid of your long silver delta
Possible solutions
Once you are assigned, sell your SLV shares and replace the long with a highly correlated silver proxy such as other ETFs or silver futures. From an IRS interpretation of the wash sale rule, the futures are probably safer since COMEX is NY silver and SLV is London deliverable. But again, not an accountant.
Replace your length with assets highly correlated to silver, like miner stocks. The basis risk is obvious.
Close your puts and buy the stock at the same time, effectively buying a worthless synthetic call.
Let’s talk about #3 a bit more.
If the stock is $70 and the 100 put is only worth intrinsic (ie there’s no time value left in the 100 call), then that package is worth $100. The stock price plus the $30 put. Now you wouldn’t expect a market-maker to fill you at fair value.
I figured a market-maker might fill me for a penny of edge. When I was looking at the quote montage, the 99 strike call was offered at a penny so by arbitrage the 100 call should be offered at $.01
I tried to pay $100.01 for the package.
No dice. Nobody wanted the free money. I didn’t raise my bid, figuring I would try again on expiration day since perhaps a seller didn’t want to bother with the inventory. If they traded it on expiration day, the whole position would offset at settlement, and they would collect their easy penny.
Well, what happened?
My short put got exercised early! I got stuck with the shares and now have to sell the shares to crystallize the loss.
The interesting thing to point out is that paying up a penny to lock in a short-term accounting loss is a type of trade that’s win-win. The market maker sells a worthless synthetic option, I get my tax situation aligned.
This is a screenshare constructing a synthetic call in IB’s strategy builder, then adding it to the quote panel so you can see the bid/ask for the structure.
One of the traders in our Discord was discussing exotic options in commodities markets. The topic of APOs or “average price options” came up because of this tweet:
To understand why producers like APOs (also known as “Asian” options*) we should first understand what they are.
*Via wikipedia: In the 1980s Mark Standish was with the London-based Bankers Trust working on fixed income derivatives and proprietary arbitrage trading. David Spaughton worked as a systems analyst in the financial markets with Bankers Trust since 1984 when the Bank of England first gave licenses for banks to do foreign exchange options in the London market. In 1987 Standish and Spaughton were in Tokyo on business when “they developed the first commercially used pricing formula for options linked to the average price of crude oil.” They called this exotic option the Asian option because they were in Asia.
An APO’s payoff depends on the average price of the underlying asset over a specified period, rather than just the spot price at expiration. For example, an APO call option pays max(Average Underlying Price – Strike, 0) while an APO put pays max(Strike – Average Underlying Price, 0)
Asian options are particularly popular in crude oil for a few reasons.
Cash flow matching: Oil producers and consumers often transact at monthly average prices, making Asian options a natural hedge
Reduced manipulation risk: Averaging prices over time makes it harder to manipulate the settlement price
Lower cost: The averaging mechanism reduces volatility, making Asian options cheaper than standard European options with the same strike. An appealing feature in a cost-focused commercial business with tight margins.
Poking around online, this topical information about APOs isn’t hard to find, but understanding #2 and #3 is harder to see, so let’s touch on the actual mechanics of APOs with an example.
Suppose the price of WTI is $75 and it’s January 31. You buy the Feb 75 Asian-style put.
The put payoff will be $75 – (average settlement price of WTI of the prompt future in the month of February)
“average settlement price of WTI of the prompt future in the month of February”
Unless you have traded Asian options you wouldn’t know how this is even computed. We’ll use Feb 2026 as an example. The prompt future is the March 2026 contract until its last trading date on February 20. Then the April 2026 contract is prompt. Taking account of weekends and President’s Day, the March contract is prompt for 14 business days and the April contract is prompt for 5 business days.
February average price = average of 14 March futures datapoints and 5 April futures datapoints.
Notice that each trading day in February contributes 1/19th of the final settlement price. On the last day before expiration, we have a running tally of the final settlement price — the average of the past 18 days’ closing prices. The last day’s price change is weighted by 1/19 to determine the final average for February.
This means that as you approach expiry, the gamma of this option is actually declining! You’ve already seen most of the flop, right? If the average going into the last trading day is $76, you’d need the futures to fall more than $19 on the last day for the 75 put to go in-the-money.
This explains why Asian options are less prone to manipulation and their deltas less sensitive to changes in the futures. It’s hard for the futures to move enough to materially change the average because each day gets a small weight in the calculation. This stands in stark contrast to vanilla options which have extremely high gamma near expiration. A mere 2-cent move through the strike just before expiry can be the difference between the option being 100 delta or 0 delta.
In this February option example, we are already in the “averaging period”. But what if you buy the December Asian-style 75 put on January 31? The averaging period, the calendar month of December, doesn’t start until 10 months have elapsed.
The pricing model will treat the option just like a vanilla option for 10 months, then account for how the last month’s gamma and theta shrink as each day in the averaging period contributes to the final settlement price. Your optionality is declining in that final month. Asian options have cheaper premiums than their vanilla counterparts because they act the same for some period of time, but then lose optionality relative to the vanillas in the averaging period.
In practice, a hedger may buy a “strip” of Asian options. For example, the Cal27 75 put refers to the “75 put Asian style for each month in the calendar year of 2027”. If the hedger buys 100 strips, they have bought 1200 options (100 options in each month). If a bank sells this strip to the hedger, typically in a bilateral OTC form, they could lay off the risk by buying this APO strip from market-makers. While these don’t trade on a centralized order book, the trades can be submitted to CME’s Clearport where the exchange acts as a clearinghouse and margining agent to both sides, removing counterparty risk to the street.
The bank desk does wear a trader hat in the act of facilitating this flow. They aren’t required to “back-to-back” the risk or cover it exactly as they opened it. For example, if the bank thought the vols in the second half of 2027 were expensive, they could just buy options covering the first half of the year effectively legging a short forward vol term structure trade. If they thought put skew was expensive, they could buy a call strip instead of covering the puts. This would neutralize their vega, but leg them into a short skew risk reversal. They could weight their own hedge in a way to express their bias. They could trade plain American or European options if they thought they’d get tighter prices from a wider pool of traders (more traders deal in vanillas then Asian style options) and sweat the Asian vs vanilla mismatch. The menu of possibilities highlights how valuable it is to have deal flow. You know you are getting to sell on the offer on one side of the deal and then you can try to trade mid or better when covering some or all of the risk. Commodity option trading is a fun global boardgame!
I’ll wrap up with this blurb from my friend Mat. I found it interesting because I have sometimes thought that it’s a historical accident that the most popular options are American-style vanillas when you can see how cash-settled European or even Asian-style options would make more sense.
My reading habits ebb and flow with my general focus. I read very little compared to my baseline in 2024 since I’ve been giving more time to writing, moontower.ai, and tinkering with new tools.
I subscribe to about 150 newsletters, but I read a small fraction of them. In my more focused phase, my filter is extremely tight. The article needs to satisfy one of 3 conditions:
Instrumental to something I’m thinking about
Someone strongly recommends it as something that I, in particular, would appreciate
A few years ago, feeling more “explore” mode, my filter was much looser. I’ve made my peace with the idea of tightening and the resulting FOMO. There will be a time to loosen it again. Just another example of life physics where “you can have it all just not at once”.
In addition to tightening the filter, the more focused period coincides with triaging articles differently as well. If the article is short and by a high-signal writer, I’ll usually read it right away. Otherwise, if the article seems worth reading (sometimes this is not clear from a topical skim, and nowadays with Gemini and Claude in my browser I can just ask them for the main points of the article in the sidebar and use that to tip the scale), I stash the link on a Notion page. Once I do get around to reading it, I’ll move the link to a dated file which gets archived. I have a running list of every article I’ve read. I started that habit 5 years ago. I also log every new restaurant I’ve been to by location. I’ve been doing that for 14 years. We are all unwell in our own ways, don’t judge.
In the past 18 months or so, the reading queue gets quite long. The days of reading list “zero” are long gone. I just let it grow without anxiety, knowing that the next time I fly, I’ll rip through it. I can’t sleep and rarely watch movies on planes. It’s trapped reading time.
This trip to NYC was no different. 10 hours of reading in the past week, means I have exhaust. Here’s the best of what I read:
The Last Useful Man: On Tom Cruise and the Case for Embodied Knowledge (11 min read)
This was not only a fun read but deals with a question of growing importance that we all sense — Why learn, if you can ask?
This was Dan’s annual review letter. The mix of writing and observation in this long piece resists summary because the point is the nuance. The way Dan dusts his personal opinions throughout without imposing them is a graceful verbal judo; the net effect is I give them more weight. Dan delivers on both substance and style.
Inherent Vice is PT Anderson’s Best Film (11 min read)
Freddie de Boer is an exceptional writer. He’s an auto-read. Except for that he’s prolific and often writes about things I don’t care about so there’s just a lot of work I must pass on. So when he chooses a topic I’d love to read about, I’m ready to dim the lights and light a candle. I’ve read and watched Inherent Vice. If you have done either, this article is a gift.
Experimental History posts
Finally, I’m not going to link to Adam Mastroianni articles since you can choose any one of them and be delighted. There’s no point in singling out any specific ones which may sound strange, but it’s really the highest compliment.
Finally, a quote I use a lot…
Judge talent at its best and character at its worst — Lord Acton
Which is why I don’t unsubscribe from writers that I deemed worth subbing to but don’t necessarily read often. I even pay for a bunch of them. I know they are doing good work, but for some stretches of time, to use another quote, “it’s not them, it’s me.”
Money Angle
I saved one of the articles for this section. An immediate favorite of the past year. It is a history of how information travels. It’s the kind of thing that should be adapted to a Veritasium video.
What drives information markets, and why the transformer is unlike the telegraph, ticker, and terminal
So good.
Money Angle For Masochists
One of the traders in our Discord was discussing exotic options in commodities markets. The topic of APOs or “average price options” came up because of this tweet:
To understand why producers like APOs (also known as “Asian” options*) we should first understand what they are.
*Via wikipedia:
In the 1980s Mark Standish was with the London-based Bankers Trust working on fixed income derivatives and proprietary arbitrage trading. David Spaughton worked as a systems analyst in the financial markets with Bankers Trust since 1984 when the Bank of England first gave licenses for banks to do foreign exchange options in the London market. In 1987 Standish and Spaughton were in Tokyo on business when "they developed the first commercially used pricing formula for options linked to the average price of crude oil." They called this exotic option the Asian option because they were in Asia.
An APO’s payoff depends on the average price of the underlying asset over a specified period, rather than just the spot price at expiration. For example, an APO call option pays max(Average Underlying Price – Strike, 0) while an APO put pays max(Strike – Average Underlying Price, 0)
Asian options are particularly popular in crude oil for a few reasons.
Cash flow matching: Oil producers and consumers often transact at monthly average prices, making Asian options a natural hedge
Reduced manipulation risk: Averaging prices over time makes it harder to manipulate the settlement price
Lower cost: The averaging mechanism reduces volatility, making Asian options cheaper than standard European options with the same strike. An appealing feature in a cost-focused commercial business with tight margins.
Poking around online, this topical information about APOs isn’t hard to find, but understanding #2 and #3 is harder to see, so let’s touch on the actual mechanics of APOs with an example.
Suppose the price of WTI is $75 and it’s January 31. You buy the Feb 75 Asian-style put.
The put payoff will be $75 – (average settlement price of WTI of the prompt future in the month of February)
"average settlement price of WTI of the prompt future in the month of February"
Unless you have traded Asian options you wouldn't know how this is even computed. We'll use Feb 2026 as an example.
The prompt future is the March 2026 contract until its last trading date on February 20. Then the April 2026 contract is prompt.
Taking account of weekends and President's Day, the March contract is prompt for 14 business days and the April contract is prompt for 5 business days.
February average price = average of 14 March futures datapoints and 5 April futures datapoints.
Notice that each trading day in February contributes 1/19th of the final settlement price. On the last day before expiration, we have a running tally of the final settlement price — the average of the past 18 days’ closing prices. The last day’s price change is weighted by 1/19 to determine the final average for February.
This means that as you approach expiry, the gamma of this option is actually declining! You’ve already seen most of the flop, right? If the average going into the last trading day is $76, you’d need the futures to fall more than $19 on the last day for the 75 put to go in-the-money.
This explains why Asian options are less prone to manipulation and their deltas less sensitive to changes in the futures. It’s hard for the futures to move enough to materially change the average because each day gets a small weight in the calculation. This stands in stark contrast to vanilla options which have extremely high gamma near expiration. A mere 2-cent move through the strike just before expiry can be the difference between the option being 100 delta or 0 delta.
In this February option example, we are already in the “averaging period”. But what if you buy the December Asian-style 75 put on January 31? The averaging period, the calendar month of December, doesn’t start until 10 months have elapsed.
The pricing model will treat the option just like a vanilla option for 10 months, then account for how the last month’s gamma and theta shrink as each day in the averaging period contributes to the final settlement price. Your optionality is declining in that final month. Asian options have cheaper premiums than their vanilla counterparts because they act the same for some period of time, but then lose optionality relative to the vanillas in the averaging period.
In practice, a hedger may buy a “strip” of Asian options. For example, the Cal27 75 put refers to the “75 put Asian style for each month in the calendar year of 2027”. If the hedger buys 100 strips, they have bought 1200 options (100 options in each month). If a bank sells this strip to the hedger, typically in a bilateral OTC form, they could lay off the risk by buying this APO strip from market-makers. While these don’t trade on a centralized order book, the trades can be submitted to CME’s Clearport where the exchange acts as a clearinghouse and margining agent to both sides, removing counterparty risk to the street.
The bank desk does wear a trader hat in the act of facilitating this flow. They aren’t required to “back-to-back” the risk or cover it exactly as they opened it. For example, if the bank thought the vols in the second half of 2027 were expensive, they could just buy options covering the first half of the year effectively legging a short forward vol term structure trade. If they thought put skew was expensive, they could buy a call strip instead of covering the puts. This would neutralize their vega, but leg them into a short skew risk reversal. They could weight their own hedge in a way to express their bias. They could trade plain American or European options if they thought they’d get tighter prices from a wider pool of traders (more traders deal in vanillas then Asian style options) and sweat the Asian vs vanilla mismatch. The menu of possibilities highlights how valuable it is to have deal flow. You know you are getting to sell on the offer on one side of the deal and then you can try to trade mid or better when covering some or all of the risk. Commodity option trading is a fun global boardgame!
I’ll wrap up with this blurb from my friend Mat. I found it interesting because I have sometimes thought that it’s a historical accident that the most popular options are American-style vanillas when you can see how cash-settled European or even Asian-style options would make more sense.
Trading firms are Rand-pilled cloisters of libertarianism.
Is it a self-serving post-hoc rationalization of meitrocracy that allows rich traders to not only enjoy wealth but virtue? Ha ha, sorry folks, not today. I’m ain’t gonna bait myself into this discussion.
I’m just going to leave you with a couple thoughts to turn over at your own pace.
When I was a trainee I remember an argument by a senior colleague who, as was typical, a market-maximilist who argued that teachers are probably overpaid, not underpaid as a fixed price will weed out everyone who knows they are worth more and therefore you structurally select for those worth less on average. Your best case scenario is the price and talent are exactly matched. It’s basically the same argument for why buffet restaurants are bad business. It only selects for eaters who see the price as a good value.
To be honest, I think I’m giving the colleagues’ argument some grace. I don’t remember it being as cosmetically coherent as mine. His argument gestured in the general direction of “markets are right”. That the price of teachers is not set by a free market doesn’t seem to have found its way into the discussion. Details, details. This person is very rich today and extremely sharp on topics like trading and business, so you know, just another reminder that high aptitude in one area doesn’t easily transfer (whether it reflects natural cognitive silo-ing or motivated reasoning is yet another question.)
I’ve heard that a stereotypical view of wealth in many parts of the world is that if you’re rich you must have been corrupt or left a trail of bodies in your wake to amass wealth. In the US, wealth is virtue. Capitalism victory points. Evidence that you gave people something they wanted. A ledger of value creation.
My view is directionally American with wide error bars. There are a lot of rich people whose profit has been nothing but an unaccounted for externality. They got the benefit without bearing the cost. Tobacco is giving people what they want. But pardon me if I think gains from trying to get teenagers to become early addicts should not become wealth. I think even the oncologists who treat those “customers” would be willing to sacrifice the 5th bedroom in their house to not have this “value created.”
Markets are downstream of politics. Markets and law are inseparable constructs and US law is the product of either pure mob democracy (the proposition system in CA) or representative government, whereby a centralized agent, like a senator, is entrusted to, umm… do what they want, subject to the constraint of “get re-elected.”
If law is not a free market, neither are the markets that it rests on, notwithstanding the platonic inventions of libertarian fever dreams. My favorite example of this today is college athletes. They were always creating tremendous value. But one day they weren’t allowed to extract their share and the next they were swimming in NIL money. With the stroke of a pen, their bargaining position changed.
Wealth is not just a function of value creation. Its value creation times some bargaining position factor. And that factor is often political. From FCC spectrum to land to labor laws to unions to IP laws, from subsidy to censure, from Spotify to artists, from accredited investor laws to bank charters, from casino to prediction markets…it’s all infused with law which creates centralized nodes of outsize power to influence or corrupt.
This has always been my concern with wealth inequality. It’s not a normative or moral concern so much as an acknowledgement of social physics. Wealth is power and nobody believes anyone’s power should be unlimited. We watch as individuals’ wealth continues to climb to those of city-states distracted by talk of “greed” or “fair share”. That discourse travels well because it’s smoke. The fire is deeper in the walls.
The future is going to require more transparency than ever. Which should be available in the age of broadband, compute, and video. And yet we don’t trust our eyes and when we do, we disagree about what we see. The line between info and info hazard is blurring every day. It’s ironic that so much wealth has been created by liberating information, but that same wealth will be used to selectively control it.
Switching gears to wrap up…
As a practical matter, when you think about the work you do and how it improves people’s lives, recognize that it’s within a path-dependent, arbitrary system-level backdrop. You may create lots of value, but the rules have limited your bargaining position.
You can choose to make peace with it, fight to change the rules, find a way to express your talents in a more advantageous industry/company. But crying over it or arguing with the smug who say the invisible hand is giving you what you deserve will rot your heart. Face reality to deal with it.
I had a chance to join legends Jeff Ma and Rufus Peabody thanks to John Reeder! If you don’t already listen to Bet The Process, you might remember Jeff as the protagonist of Ben Mezrich’s Bringing Down The House (later adapted to the film 21). I Having the ringleader of the famous MIT blackjack team ask me a question about Catan strategy is not something I had on my podcast bingo card!
Money Angle
On Thursday was the first session of the Investment Beginnings Class I spun up locally.
Identify 5-10 companies in 3 industries and report on what their margins are and the average margins in the industry based on your research. The open-endedness of this question is a feature not a bug. Let’s see what they come up with.
⭐I strongly recommend playing with the spreadsheet to explore the lender and equity investor results if we had rolled “bankruptcy”. Stepping through the formulas is a valuable exercise!
This introductory lesson opens with a question:
What can you do? What can go wrong? What’s your best-case scenario?
Then pose a new question…
From there, the lesson begins…
There were 18 youths, mostly 12-17 years old, and a bunch of interested parents as well.
The next session will be in a few weeks, I’ll share the materials as we go along and consolidate it all on this page:
In the spirit of spaced repetition, I published The Gamma of Levered ETFs as an article on X. Seemed relevant given silver’s 30% selloff on Friday.
Here’s the short version of the math of levered ETFs. To maintain the mandated exposure the amount of $$ worth of reference asset they need to trade at the close of the business day is
x(x - 1) * percent change in the reference asset * prior day AUM
where x = leverage factor
examples of x:
x=2 double long
x=-1 inverse ETF
x= 3 triple long
x= -2 double inverse
Applying this to silver:
AGQ, the ProShares Ultra Silver ETF, is 2x long. It had ~$4.5B in assets at the close on Thursday.
For the underlying swap to maintain the mandated exposure, at the close of Friday (assuming no redemptions) the swap provider must trade silver. How much of it?
2(2-1) * -30% * $4.5B
or -60% of $4.5B.
-$2.7B worth of silver in forced flows. Negative = sell.
There’s an UltraShort 2x ETF, ZSL, that had about $300mm of AUM going into Friday.
Rebalance trade:
-2(-2-1) * -30% * $300mm = –$540mm
Assuming no redemptions, these levered ETFs needed to sell ~$3.25B worth of silver into the close.
In a typical environment, silver volumes are mostly split between London’s spot market (LBMA) and COMEX futures (NY deliverable) with Shanghai (SHFE), India (MCX) and SLV (London deliverable, US traded ETF) combining for less than 10% of total volumes.
At the NY close, SLV and COMEX represent all the liquidity that’s open.
Claude
COMEX futures traded nearly $150B of volume Friday and SLV traded ~$50B which is on the order of 10x the dollar volumes silver used to trade a year ago at lower prices. Still, those forced sales, if they are happening in the few hours of trading may represent something like 5-10% of the liquidity.
I’m guessing readers who are actually on metals desks have a better guess.
Silver futures margins, after being raised again this week, are about 15% of the contract value (although your broker may ask for more. IB asks for twice that, which was prescient!)
If Shanghai futures, which were closed, have a similar requirement, that means the exchange doesn’t have enough collateral to cover the 30% move if Shanghai futures match the COMEX move.
I don’t know how that exchange works (many exchanges have an insurance pool where some of the losses are socialized across clearing members), but one thing that would be interesting is if Shanghai exchange officials have the authority, balance sheet, and ability to have sold COMEX futures as a hedge. I doubt that, it’s just a speculative musing, but if such a thing did happen, their Sunday evening unwind trade would be to buy back COMEX futures as they liquidated Shanghai holders. Again, this is just a ridiculous musing, but I look forward to seeing how it all shakes out.
In any case, I think a useful takeaway from all this could be to add expected levered rebalancing flows to your dashboards (of course, this is a recursive problem because the price at any point in time reflects some people’s knowledge of these flows. Pre-positioning always opens the door to backfiring if enough arbs think the same way).
In the spirit of spaced repetition, I published The Gamma of Levered ETFs as an article on X. Seemed relevant given silver’s 30% selloff on Friday.
Here’s the short version of the math of levered ETFs. To maintain the mandated exposure the amount of $$ worth of reference asset they need to trade at the close of the business day is
x(x - 1) * percent change in the reference asset * prior day AUM
where x = leverage factor
examples of x:
x=2 double long
x=-1 inverse ETF
x= 3 triple long
x= -2 double inverse
Applying this to silver:
AGQ, the ProShares Ultra Silver ETF, is 2x long. It had ~$4.5B in assets at the close on Thursday.
For the underlying swap to maintain the mandated exposure, at the close of Friday (assuming no redemptions) the swap provider must trade silver. How much of it?
2(2-1) * -30% * $4.5B
or -60% of $4.5B.
-$2.7B worth of silver in forced flows. Negative = sell.
There’s an UltraShort 2x ETF, ZSL, that had about $300mm of AUM going into Friday.
Rebalance trade:
-2(-2-1) * -30% * $300mm = –$540mm
Assuming no redemptions, these levered ETFs needed to sell ~$3.25B worth of silver into the close.
In a typical environment, silver volumes are mostly split between London’s spot market (LBMA) and COMEX futures (NY deliverable) with Shanghai (SHFE), India (MCX) and SLV (London deliverable, US traded ETF) combining for less than 10% of total volumes.
At the NY close, SLV and COMEX represent all the liquidity that’s open.
Claude
COMEX futures traded nearly $150B of volume Friday and SLV traded ~$50B which is on the order of 10x the dollar volumes silver used to trade a year ago at lower prices. Still, those forced sales, if they are happening in the few hours of trading may represent something like 5-10% of the liquidity.
I’m guessing readers who are actually on metals desks have a better guess.
Silver futures margins, after being raised again this week, are about 15% of the contract value (although your broker may ask for more. IB asks for twice that, which was prescient!)
If Shanghai futures, which were closed, have a similar requirement, that means the exchange doesn’t have enough collateral to cover the 30% move if Shanghai futures match the COMEX move.
I don’t know how that exchange works (many exchanges have an insurance pool where some of the losses are socialized across clearing members), but one thing that would be interesting is if Shanghai exchange officials have the authority, balance sheet, and ability to have sold COMEX futures as a hedge. I doubt that, it’s just a speculative musing, but if such a thing did happen, their Sunday evening unwind trade would be to buy back COMEX futures as they liquidated Shanghai holders. Again, this is just a ridiculous musing, but I look forward to seeing how it all shakes out.
In any case, I think a useful takeaway from all this could be to add expected levered rebalancing flows to your dashboards (of course, this is a recursive problem because the price at any point in time reflects some people’s knowledge of these flows. Pre-positioning always opens the door to backfiring if enough arbs think the same way).
Trading firms are Rand-pilled cloisters of libertarianism.
Is it a self-serving post-hoc rationalization of meitrocracy that allows rich traders to not only enjoy wealth but virtue? Ha ha, sorry folks, not today. I’m ain’t gonna bait myself into this discussion.
I’m just going to leave you with a couple thoughts to turn over at your own pace.
When I was a trainee I remember an argument by a senior colleague who, as was typical, a market-maximilist who argued that teachers are probably overpaid, not underpaid as a fixed price will weed out everyone who knows they are worth more and therefore you structurally select for those worth less on average. Your best-case scenario is the price and talent are exactly matched. It’s basically the same argument for why buffet restaurants are bad business. It only selects for eaters who see the price as a good value.
To be honest, I think I’m giving the colleagues’ argument some grace. I don’t remember it being as cosmetically coherent as mine. His argument gestured in the general direction of “markets are right”. That the price of teachers is not set by a free market doesn’t seem to have found its way into the discussion. Details, details. This person is very rich today and extremely sharp on topics like trading and business, so you know, just another reminder that high aptitude in one area doesn’t easily transfer (whether it reflects natural cognitive silo-ing or motivated reasoning is yet another question.)
I’ve heard that a stereotypical view of wealth in many parts of the world is that if you’re rich you must have been corrupt or left a trail of bodies in your wake to amass wealth. In the US, wealth is virtue. Capitalism victory points. Evidence that you gave people something they wanted. A ledger of value creation.
My view is directionally American with wide error bars. There are a lot of rich people whose profit has been nothing but an unaccounted for externality. They got the benefit without bearing the cost. Tobacco is giving people what they want. But pardon me if I think gains from trying to get teenagers to become early addicts should not become wealth. I think even the oncologists who treat those “customers” would be willing to sacrifice the 5th bedroom in their house to not have this “value created.”
Markets are downstream of politics. Markets and law are inseparable constructs and US law is the product of either pure mob democracy (the proposition system in CA) or representative government, whereby a centralized agent, like a senator, is entrusted to, umm… do what they want, subject to the constraint of “get re-elected.”
If law is not a free market, neither are the markets that it rests on, notwithstanding the platonic inventions of libertarian fever dreams. My favorite example of this today is college athletes. They were always creating tremendous value. But one day they weren’t allowed to extract their share and the next they were swimming in NIL money. With the stroke of a pen, their bargaining position changed.
Wealth is not just a function of value creation. Its value creation times some bargaining position factor. And that factor is often political. From FCC spectrum to land to labor laws to unions to IP laws, from subsidy to censure, from Spotify to artists, from accredited investor laws to bank charters, from casino to prediction markets…it’s all infused with law which creates centralized nodes of outsize power to influence or corrupt.
This has always been my concern with wealth inequality. It’s not a normative or moral concern so much as an acknowledgement of social physics. Wealth is power and nobody believes anyone’s power should be unlimited. We watch as individuals’ wealth continues to climb to those of city-states distracted by talk of “greed” or “fair share”. That discourse travels well because it’s smoke. The fire is deeper in the walls.
The future is going to require more transparency than ever. Which should be available in the age of broadband, compute, and video. And yet we don’t trust our eyes and when we do, we disagree about what we see. The line between info and info hazard is blurring every day. It’s ironic that so much wealth has been created by liberating information, but that same wealth will be used to selectively control it.
Switching gears to wrap up…
As a practical matter, when you think about the work you do and how it improves people’s lives, recognize that it’s within a path-dependent, arbitrary system-level backdrop. You may create lots of value, but the rules have limited your bargaining position.
You can choose to make peace with it, fight to change the rules, find a way to express your talents in a more advantageous industry/company. But crying over it or arguing with the smug who say the invisible hand is giving you what you deserve will rot your heart. Face reality to deal with it.
Today is about option execution. It’s a blanket response to a host of misunderstandings I find in talking to investing practitioners who don’t come from the market-making side.
Before that we’ll cover a couple things I found interesting.
If you’ve been paying attention to the options world, you know that the last 5 years have seen both a massive increase in retail participation which coincided with the very successful product launch known as 0dte.
A friend with a senior role at a MM has described the last few years as “money raining from the sky”.
In fact, I’m going to be meta and write about this post because of its pedagogical value. Rob saw a situation in the wild, turned it into a real-life word problem, and solved it. We’re going to step through what was unsaid because that process would be helpful to learners who want to get better at recognizing the nature of a problem and constructing a solution.
Excerpt from the intro:
There has been some controversy on X/Twitter about ‘pay to play’ prop shops (see this thread and this one) and in particular Raen Trading. It’s fair to say the industry has a bad name, and perhaps this is unfairly tarnishing what may pass for good actors in this space. It’s also perhaps fair to say that many of those criticising these firms, including myself, aren’t as familiar with that part of the trading industry and our ignorance could be problematic.
But putting all that aside, a question I thought I would try and answer is this – How hard is it to actually pass one of these challenges?
The rules of the Raen challenge are this:
You must make 20%
You can’t lose more than 2% in a single day. There is no maximum trailing drawdown. So if you lose 1.99% every day forever, you’re still in the game.
You must trade for at least 30 trading days before passing the challenge
It costs $300 a month to do the challenge. This isn’t exactly the same Raen which charges a little more, but as a rounder number it makes it easier to directly see how many months we expect to take by backing out from the cost per month. I assume this is paid at the start of the month.
His post is totally free. You should read it. But I want to branch from this point where he laid out the rules of the challenge.
The first thing you need to recognize
To even begin answering the question of how it is to pass the challenge you need to state it in terms of “how hard is it to pass given some [expected daily return] and [volatility]?”
Since the variables of concern are return and volatility, or reward vs risk, the concept of a Sharpe ratio immediately comes to mind.
If you have an expected daily return of 20% with 0% volatility, then your chance of success is obviously 100%. That’s an infinite (undefined?) SR.
If you are even remotely near the investing world you probably have some sense that the SP500 has something like a .5 SR and an SR of something like 2 would be very high. If SP500 is 15% vol, then you are talking about an investment with SP500 vol but gets you 30% per year. You do that for an extended period of time and everyone knows your name.
We can make a reasonable matrix of values for our 2 values of interest.
Since giving a go at trading involves work and buying SPY does not, then having a SR greater than .50 to warrant the effort sounds table stakes. Any number from 1.0 to 2.0 feels like an appropriate starting point, even if it’s arbitrary. Rob starts with 1.5. Fine.
very sophisticated table
Restating the problem:
If you have a Sharpe Ratio of 1.5 and trade with 15% annual volatility, what’s your chance of passing a funded trader challenge that requires:
Hitting 20% profit
Without any single day losing more than 2%
While paying $300/month
Rob recognizes that this is best solved with a simulation, but that’s actually an enlightened reflex. Let’s not take it for granted.
Could you solve this with math in a closed-form way?
Let’s try to solve this with formulas. What we can assume:
Daily returns ~ Normal(μ, σ) where:
μ = (SR × Vol) / 252 = (1.5 × 0.15) / 252 = 0.0893% per day
σ = Vol / √252 = 0.15 / √252 = 0.945% per day
Question 1: How long to reach 20%?
Simple approach: 20% / 0.0893% = 224 days
Hmm. This seems wrong for several reasons:
You don’t go straight up
The bust-out rule: any day < -2% resets you
We need to bring volatility and path dependency into consideration. We ask another question.
Question 2: Probability of hitting -2% on any given day?
Question 3: What’s the probability of reaching 20% before hitting -2%?
The lyrics to Steppenwolf’s Pusher come to mind:
tombstones in my eyes
I have no idea how you solve this analytically.
Fortunately, this question comes to mind 5000 years since Indian mathematicians invented Arabic numerals and 3 years since Anthropic released the tireless teacher known as Claude.
It (he? she? they?) says:
This is a “gambler’s ruin” problem with two absorbing barriers: +20% (win) and one day at -2% (lose), but after bust-out, you reset to 0% and try again!
He goes on to explain that solving this problem analytically requires:
Estimated Learning Time: 1-2 years of graduate-level probability theory
Oh.
It’s gonna take more effort than watching a Veritasium at 2x speed? Bruh, I don’t have cave time on my hands here.
I assume Rob reacted to this trading challenge word problem like a linebacker diagnosing pass vs run in a split second. This is a problem for simulation.
Anyway, I just thought it would be helpful to explicate the unsaid.
And one las thing. Since Rob was generous enough to post his code, I made Claude work overtime for no pay (inner monologue: does this mean I would’ve owned slaves 400 years ago?). Claude’s yield:
While stock execution is a vast topic depending on how finicky you want to be about HFT, microstructure, game theory, counterfactuals, lit vs dark, block trading, etc etc, most institutional algos coalesce around some concept of VWAP or TWAP where the goal is to minimize market impact by making sure you are not an outsize percentage of the volume.
Option execution has no equivalently popular Schelling point benchmark such as a VWAP. This is partly because option premiums are themselves moving targets depending on the interplay of time, implied volatility, and moneyness. This is not a big issue, you could harmonize measurements in any number of ways including by the greeks. You’ll get some sense of how we can do that below. But the fact that you can pay more for an option but be purchasing a lower IV is hint enough that VWAP-ing according to premium is incoherent.
The biggest issue is that the intent of an option order has a different time horizon from a typical stock order. If you are an investor, you probably don’t care that it takes 3 days to accumulate your position as long as there are no catalysts in the execution window. But options, when used as they should be, with a basis in volatility assessment (in other words, discernment of the magnitude of a move over a certain period of time), naturally require more time-sensitive execution.
Options are also less liquid, especially outside the top 50 names or so. Given the sheer number of expiries, strikes and symbols, it is far more likely you are selling the 62 DTE, .24 delta call against a market-maker rather than someone else who woke up that morning thinking they’d like to invest that particular option. This means, you want to minimize your encounters with the order book so even if you could VWAP your order, if the counterparty is a MM you are far more likely to be leaking info that you have an order big enough to make piecing it out worthwhile. This information can and will be used against you.
The best you can do with respect to option execution is not be stupid. Your order is easy to spot. It’s the one whose limit doesn’t tick with the stock (we’ll address counters to this below!). You are always going to lose to your execution in expectation. You can tattoo that on your face. We’ll shed some light on what’s happening on those screens.
Edge functions
At any snapshot in time, market-makers have a fair value for what an option is worth. They stream a bid/ask whose width depends on an “edge function”. The general specification for this function is “how many cents of edge to I need to compensate me for hedging the delta and the vol risk”?
Delta risk
If I believe that buying 100,000 shares of stock XYZ will push it up 8 cents from the current stock offer, then I need to pad my option offer in the .25 delta call by $.02 just to breakeven on expected slippage on selling 1000 options. Note that the offer I’m streaming is not using “last sale” or “mid-market” as the S in the option model. It’s using “stock ask”. The call bid I’m streaming, is using the “stock bid” since I will be selling shares to hedge if I buy calls. You can step through this exercise yourself for put bids and put offers.
Vol risk
Let’s say this same option has a vega of $.10 meaning if IV increases by 1 point, the option premium, all else equal, goes up by $.10.
If this is an asset whose IV moves about 1 point per day, I might be fine accepting something like 1/2 a vol point of edge or $.05 cents to open a position. If the IV moves 10 points a day I’ll demand $.50 per contract to compensate me for the vega risk.
So at the very least, the bid/ask spread reflects the market maker’s willingness to warehouse the vol risk and there cost to hedge at the point of sale. Of course, a multitude of dealers with differing fair values and leans creates a tighter market than if there is only a handful.
If the market is more volatile, then slippage assumptions increase not just becasue the underlying shares are wider, but because there will be less liquidity at each price level. The consumer should expect wider spreads. Volatility itself will also more volatile. Again, wider spreads.
Edge functions are a tax on all option-related strategies when markets get crazy. Including strategies that are biased long vol but generally takers. They still need to trade. Edge functions are like COGs. Market-makers’ costs, including their funding spreads, are passed on to everyone else.
Order types
Like stocks, there are limit and market orders in options. But there is a class of contingent orders that makes sense in light of option premiums being moving targets.
Delta-adjusted orders
A delta-adjusted order may take the form of:
“If the stock is $100.50 bid or higher, I’m willing to offer the 99 put as low as $.50”
You can even peg the offer to the stock bid so that it keeps cancel/replacing according to its delta (so if it is .25 delta, every time the stock drops 4 cents your offer increases a penny) down to some ultimate low premium you’d accept.
You can even “auto-hedge” this type of order. So if you get filled on the puts, it triggers an order to sell or short shares on the bid subject to some tolerance. If the stock moves lower quickly after you sell the puts the auto-hedger will have parameters that you set about how far to “chase”. This is important because you should expect to get filled on the puts when the stock drops quickly and a market-maker snipes your stale offer before your broker has a chance to pull.
In other words, your fills are constant reminders of adverse selection. I’ve explained this in the broader discussion of limit orders:
My Bayesian analysis of being filled on a limit order vs market order
Imagine a 1 penny-wide bid/ask.
If you bid for a stock with a limit order your minimum loss is 1/2 the bid-ask spread. Frequently you have just lost half a cent as you only get filled when fair value ticks down by a penny (assuming the market maker needs 1/2 cent edge to trade). But if you are bidding, and super bearish news hits the tape (or god forbid your posting limit orders just before the FOMC or DOE announce economic or oil inventory), your buy might be bad by a dollar before you can read the headline.
If you lift an offer with an aggressive limit (don’t use market order which a computer translates at “fill me at any price” which is something no human has ever meant), then your maximum and most likely loss scenario is 1/2 the bid-ask spread.
Do you see the logical asymmetry conditional on being filled?
Passive bid: best case scenario is losing 1/2 cent
Aggressive bid: worst case scenario is losing 1/2 cent
This is why exchanges offer rebates for posting bids/offers — the payment incentivizes liquidity which nobody would ever offer otherwise because of adverse selection concerns. When you are not a market-maker you have the luxury of “laying in the weeds” until you spot the “wrong” price and then strike.
Vol-adjusted orders
This is an order that pegs your option bid or ask to a model implied vol. So if you are 25% vol offer in that 99 put your offer will adjust upwards if the stock goes down, or lower as the stock rallies. It sounds like a delta-adjusted order but it’s slightly different in that the delta adjusted order has no concept of theta embedded in it.
For example, the vol-adjusted offer will automatically accept a lower price at the end of the day vs the start of the day since a 25% vol option is worth less after time passes.
The delta-adjusted order relies on some underlying model’s delta for price adjustments but it’s not affected by the passage of time (well, technically there is some modest charm effect as time passing infuences delta). A delta-adjusted offer will tend to drift away from being marketable as time passes and theta kicks in, as you are effectively offering a higher IV. Likewise, a delta adjusted bid will become more marketable as time passes which effectively means you are bidding a higher volatility. The vol-adjusted order solves this, but lets the premium float (although these order types can sometimes allow additional constraints).
In general, these types of orders try to limit the adverse selection you are guaranteed when you place an ordinary limit order in options, where you only get filled when the stock moves against you. In fact these are the order types market makers themselves use for streaming logic.
More advanced considerations: “Mark to cross section”
This is one I’ve never seen anyone talk about but it’s obvious once I point it out.
Suppose you are working a large bid using a vol order. You want to pay 25% IV for the 40 strike in XYZ. It’s chipping away little by little and then suddenly you are filled on the entire thing at an average of 24.9% vol.
How do you feel?
Like you always feel when you get filled fast. Like the position is what your one-night stand partner looks like in the morning light. You can’t chew your own arm off fast enough to get out of it.
The first thing you’ll check is whether you got picked off because the stock gapped. But you find the stock hasn’t done anything weird. And then you notice a different chart on your dashboard…
The VIX futures have collapsed in the last 30 minutes.
The reason you got filled on your vega is that vol is much lower across the market. And this doesn’t show up in conventional execution metrics like mark-to-arrival. In fact, you got filled better than your vol limit of 25%.
Your order was recognized and when it was clear that vol was much lower, that any number of vols across the market were a good relative buy compared to what you were bidding, the market maker said “Yours”.
In other words, you wish you could mark your fills to the cross-section of other vols in the marketplace (or at the very least maybe VIX or SPY vol).
This is a whole other layer of attribution. If you sold a basket of vols but SP500 vol was down far more than your basket, do you feel good about your vol-picking skills?
It’s the same issue in active investment management. It’s a waste of time to earn beta. You need to outperform on a risk-adjusted basis to justify effort and identify skill.
Discussion
There isn’t so much a solution to execution as there is an understanding of the levers to think about what approaches work best for you.
At the end of the day, there is a price to entice someone else to warehouse a risk they didn’t wake up asking for. You are trying to execute at the lowest price that satisfies that threshold. Every cent you pay above that threshold is additional surplus to the market-maker above the minimum they require.
You can put out feeler orders on small size to probe how far into the bid-ask they are willing to execute. You are sussing out their edge function. It’s not foolproof. They understand that it’s not worth it to give up that information for small size. They may allow a high stale bid to sit because if they hit it they make a negligible amount of expectancy but what if they leave it there?
Let’s make this concrete with a simple, highly stylized example. An option is worth $1.00, and there’s an opaque distribution around where the next bid might come in, centered at $1.00 ± $0.04. If a one-lot bid comes in for $1.01, the market maker earns one cent in expectancy by hitting it.
But now there’s some chance that the next bid is higher than $1.01. And while that probability is below 50%, the expected bid conditional on waiting may actually be higher than it would have been had the $1.01 bid never appeared. And it might be for a larger size. Depending on what that distribution looks like, the market maker may have more “pot equity” in letting the market remain framed as-is rather than pasting a bid for a single contract.
The more liquid a name is, the less room there is for such games. If it’s highly liquid, there will be enough mm or customer flow to just whack that one lot stray.
The question is always, will I get a better average price in vol terms* if I hit or lift, vs going slowly and giving away info so that the screens mold to me. If trading against your order increases a market-maker’s inventory, they will pad their edge functions even more. If it decreases their inventory, then you probably want more market participants to see it so that it hastens their built-in desire to trade against you. If you want a bidding war for your flow, then you want to make sure everyone sees it. Be more inclined to “advertise” it by showing it as opposed to using electronic eyes (delta orders that are hidden and snipe when a marketable order appears against it).
[*Again, practice proper benchmarking. If I get a good price on my order to buy calls, it could be because the stock fell over the window when I was accumulating them, but on a delta-adjusted basis I could have been getting worse fills on the way down. In other words, I paid more in IV terms.]
Improving execution, to find the minimum edge that someone will accept to trade with you, is a hard problem. At a minimum, I’m trying to help you conceptualize the problem better with respect to adverse selection and the basic hygiene of benchmarking aspects of your fill due to vol changes vs delta. Execution is a classic domain where people do “resulting” where they let their outcomes adjudicate whether they made good decisions. The problem is hard enough without inviting that particular mistake to dinner.
My wife Yinh pinged Khe to see if he’d host a seminar for people interested in getting more mileage out of AI. He agreed (and texted me separately with “I’m sure you know this already, but your wife is a force of nature”…Oh, I’m quite aware).
She emails 60 friends and associates, inviting them to this session. She got 40 affirmatives by the next time she checked her email. As she told me by text, “everyone feels like a boomer”.
I’m not going to spend time speculating on AI futures but it’s hard to not realize that sources of value are shifting beneath our feet. AI could have written a lot of my technical posts. It wouldn’t have been in my voice, and insofar as my written voice has some entertainment or organic attraction, it’s not the same quality. But it would convey much of the instrumental information content and at far lower cost.
To paraphrase a tweet I can’t find anymore (I gave Grok 2 chances but no dice) from a lifelong software developer: I used to pride myself on solving tricky problems and finding elegant solutions and watching LLMs do this instantly has rattled my sense of self-worth.
A lot of value-added work in the past is commoditized. Without speculating on futures, I only invite you to prompt yourself, “how much of the work I do is truly unique?”
There’s an ongoing whole layer of AI-enabled automation creep that we’ll embrace, I’m not talking about that.
Aside: The latest one I’ve appreciated is the Gemini summaries that sit on top of long email threads:
I’m talking about the increasing automation of formerly complex tasks that we actually hang our hats on. My voice is the organic part of the writing. But what’s that even worth relative to the content? A doctor’s job is a mix of inference and bedside manner. What’s the relative value of these things? If you are in sales, how much of your cycle has to do with trust and a firm handshake versus data persuasion and storytelling. What will AI lower the cost of, not just for you, but for competitors? It’s the Innovator’s Dilemma in homine.
You squeeze one part of the balloon and the air bulges into another part. It’s like the “commoditize the complement” thinking in product strategy.
This article by Jon Matzner is a good example of updating your models hard in the face of re-structured inputs:
The Only Cost I Want to Go Up
Where does the value go? What are your sunk costs? What is a trapped asset or idea that is now tenable? These types of questions were always relevant, but the speed at which they are coming at us in a wide-open frontier is only precedented at major inflections of general-purpose technology. A relatively recent example on the timeline of innovation is Netflix knowing long before it became a streaming-first company that streaming was the future, but broadband needed to catch up. The AI inflection is a confusing sandstorm rapidly covering old monuments while revealing new spaces to build. Anyone paying attention can feel it. Hence, the FOMO response to Yinh’s email.
I can write a description of a bug in Linear or Jira (who am I kidding — I upload a screenshot with a blurb and have AI write a detailed bug spec complete with testing protocol) and assign it to…”Claude bot”. A dev approves the change. Push to prod.
Tools I use
Claude Code with Opus 4.5 on a Max plan ($100/m)
Gemini Pro ($16/m)
ChatGPT Plus ($20/m. This is really Yinh’s but I use it sometimes. Don’t tell.)
NotebookLM when I want an audio summary of lengthy text. Sometimes I will give it a bunch of notes and have it generate a podcast conversation about them which can help me find connections or through-lines that outlining doesn’t. Something about hearing vs hearing I guess. I could get to the same place sparring with a text-based LLM but this way I can do it while walking or in a less taxing way. Or sometimes because I need to just let some material wash over me.
A service (in stealth at the moment) that connects to any data source including the moontower options database that’s hyper-tuned for inference. An example I’m messing with now is something I call VCR or Variance Contribution Ratio. What percentage of the realized variance in a list of assets in some window came from N% of days. You can ask it a question like that and it will come back with all kinds of ideas, charts, insights. It’s an intern that skips the photosynthesis→food→brain power+senses drivetrain altogether and just runs on sending electricty through a recipe trained loop that our ancestors have run through many times before. Progress. Suicide. Both. I don’t know, I’m just an ape with a lever.
Comments
I was using Terragon as an agent that can talk to my github repos as well as deploy to vercel but Claude has replaced all this workflow. Similarly, Claude has replaced my usage of Copilot in VSCode.
I find the native MSFT Copilot in Excel to be trash. I haven’t used Claude for Excel yet. I have found the Claude Chrome extension in the browser to be helpful with Google sheets.
More broadly, Claude and Gemini browser tools are still clunky in some contexts (“port this substack post to my wordpress site”) and useful in others especially within your email. “Give me a list of all the people who reached out asking about XYZ” or “go find the loan agreement document with entity X and compute the accrued interest according to its provisions through today”.
Silo’d projects I’m currently using AI for
As a matter of procedure, I use Projects folders within Claude to compartmentalize initiatives. You can upload lots of files to the project for context and then have a limitless number of chats within the project itself all dealing with different aspects. I like to tell Claude to consolidate what I’ve accomplished or learned from individual sessions and then I feed that back into a living document in the files section so its always handy to the bot for future chats. These documents also include feedback about directions Claude took that I didn’t like. I don’t know what reinforcement learning is mathematically but the process feels like manual training.
Here’s a few things I’m working on:
Investment Idea Generation
Agent reads investment letter email, generate a bullish/bearish template that considers the author’s sentiment, timing, etc, which can automatically be fed another agent connected to moontower.ai infra to see how it accords with option surfaces. Another agent then presents the output. In an advanced form this is becoming part of the product itself, capable of generating watchlists and so forth. (I’m more interested in the pipeline at the moment. The business end of it would be more complex since there’s author IP involved).
Status: very early…need to get email agent running
Mooncoin Option Trading game [skunkworks name for now]
This is less agentic and more LLM conversation about gameflow. However, Claude Code was integral to helping me style.
Status: Ready for a second round of playtesting to pin down the concept. Long way from a final product but can start playtesting over Zoom!
Current screenshots:
Trading Quizzes
One of my projects is setup as a RAG with about 70 articles. I’m having Claude devise interactive quizzes that give learners a chance to practice their option knowledge. Varies from beginner to more advanced.
Status: early and promising. A few rounds of iteration so far on a tranche of concepts where I’m training the LLM to know what I consider a good question. From there I will extend it to more tranches of material and if that goes well I know have a custom quiz maker for any material I give it. I’ve been heartened by some of the angles it’s taken on questions — it definitely comes up with stuff I wouldn’t have. The median quality can be higher, so still more to do. I’m not sure how much of the meta of making a good question I’m going to succeed in relaying but that’s part of the fun.
Money Angle
In the late aughts, one of my family members had a side-hustle while getting his Masters where he’d post ads on Craigslist offering to help people with their Excel work. People were willing to pay a lot more for this than I expected.
He told me why.
It was people who somehow ended up with Excel-heavy jobs without knowing how to use Excel. He was quite literally doing their jobs for them. In finance terms, he was the layoff account where his client was a bank trading desk arbing their customer (the employer) and he was picking up the juicy scraps.
Claude in Excel is an add-in that integrates Claude into your Excel workflow. It’s designed for professionals who work extensively with spreadsheets, particularly in financial analysis and modeling.
With Claude in Excel, you can:
With Claude in Excel, you can:
Ask questions about your workbook and get answers with cell-level citations
Update assumptions while preserving formula dependencies
Debug errors and identify their root causes
Build new models or fill existing templates
Navigate complex multi-tab workbooks seamlessly
Money Angle For Masochists
Today is for the younger masochists (and their overseers).
I’m going to start an investment beginnings class locally. There’s a few things at the end of this section you can use. If it inspires you to do something similar or have ideas, let ‘er rip!
Around 15 people signed up. I’ll see how the experiment goes and report back as it evolves.
This is the email I sent to the families:
We recently opened up a brokerage account for our 12-year-old, Zak so he could start investing in some stocks he’s interested in. I want to give him a more structured foundation and since this scales easily to a group, I figured I’d open it up to family and friends.
What it is: A hands-on class where we learn by doing – looking up real securities, building spreadsheets, understanding how markets work, and developing the kind of financial instincts that serve you for life. The goal is to make sure participants aren’t suckers and start with good financial hygiene.
The approach: Participants will be treated as capable people who can figure things out. We will get comfortable working at the edge of what we know how to do, wherever that may be – Googling, LLM’ing, excel formulas (and we can get into heavier automation/coding if there is appetite), troubleshooting, and being resourceful. If this inspires ambition, we can go further. Other than building an object-level understanding of investing, the dual goal is to earn the type of confidence that only comes from competence and its prerequisite — persistence. This will feel harder than school.
Format: Sessions in front of a room with a projector. Each participant will need a laptop to follow along. We’ll use real tools and real data. (I’ve asked a company to sponsor this by giving us free licenses to their tools, but we’ll see if that comes through. There are plenty of open-source resources that will work.)
Who it’s for: Anyone 12 and up – young people and adults welcome. No prior knowledge needed. Participants will get maximum mileage if they have a brokerage account, but it’s not required.
Cost: Free. I’m doing this for Zak anyway.
Location: [redacted]
Schedule: TBD
Note: I will record sessions to share with remote friends who are interested by uploading as unlisted (undiscoverable but public) YouTube videos. Participation is implied consent to this.
Action items
If you’re interested or have questions, just reply. I’ll follow up once I have a sense of the group.
This is a very loose draft of the plan. I will prepare a lesson before each session (this week is the first) and update this document. As always, work-in-progress.
From My Actual Life
I’ve mentioned before that I coach both my boys CYO basketball teams (4th and 7th grade). The highlight of my past week was Zak’s (7th grade) game so I just want to share it.
Zak had a cold and a headache but we gave him some Advil and said to come root his team on. We were only going to have 5 players without him. He wore his uniform anyway in case he felt good enough to go and in pre-game shooting he said he could play.
The game was neck and neck. One of our players scored an unlikely basket off an offeensive rebound as the clock expired to send the game to overtime. It was shocking, everything about the rebound itself and making the layup from directly under the rim was unlikely.
We’re in OT, down by 2 with 5 seconds left. We intentionally foul. Our opponent misses both free throws. I was prepared to call timeout but Zak ripped the rebound and took off.
No point in calling the timeout since it wouldn’t advance the ball from our backcourt. Instinctually I liked our admittedly very slim chance better with him one on one against a chaser.
Well, he makes it to the 3-pt line, the chaser jumps pass him as he hesiatated for moment, and just put the shot up as the clock is expiring.
Swish.
We win by 1. The team mobs him. Because it’s an overtime game and these things are on tight schedules all the people there for the following game are watching and the whole place jumps.
It’s a meaningless 7th grade CYO game but it was a unique moment. We joked that it was his Jordan flu game.
Anyway, that win happened to clinch 1st place in our division but we had already clinched a playoff spot so it wasn’t integral. We wrap the regular season today and have playoffs in 2 weeks.
(I’ve already went to watch the team will most likely draw from the other division. They have a kid that’s 5’9 and one that’s 6’0. Zak is 5’4 and one of our bigger kids 🫣)