Jeff used to talk about algorithms.
This was the phone room era — 300 calls a day, 3am wake-ups, commission checks that looked like ransom notes. Jeff kept saying algos were where it was going. I kept saying we sell. That's the job. No algorithm closes a reluctant client on a Friday afternoon. We sell.
Jeff had a point I wasn't ready to hear yet.
Wolf of Wall Street was a documentary if you swapped a few zip codes. My boss knew Belfort. Half the desk could actually trade. The other half could talk anyone into anything and never lifted a chart in their life. The honest distinction was which side of that line you were on, and everyone knew within a month. The talkers made more money in the short run. The traders survived 2008. That's the lesson the book is about.
Years later my father asked me why I didn't build a trading app with AI. Not a pitch. Just a question. He thinks in mathematical systems. He does not understand why you would trade anything without a model underneath it. The question sat with me long enough that I eventually stopped ignoring it and built the thing.
This is that thing. It works. Not every trade. The stretched trade.
Quick Note on the Name
The system is called Balls of Steel because that's what we called it at the desk and that's what the book is called. The App Store made me change the name on the product. So when it ships on iPhone, iPad, and Mac it's Steel Trading Desk — same system, same SPY/VXX setup, same refusal-is-the-edge philosophy, less swearing for the Apple reviewer. The book stays Balls of Steel because Apple does not run the bookstore.
Status: App Store listing started, submission pending. Source repo went private during release prep. The article you're reading is, among other things, the marketing — I'm not going to pretend otherwise. The system is also real, the trades are also real, and the discipline the app enforces is the one I use myself every morning. Both can be true.
The Spine
The whole system sits on one number: the VXX/VIX ratio.
VXX tracks short-term VIX futures. VIX measures implied volatility in the S&P 500 options market. In a normal environment, VXX trades close to VIX. When panic accelerates, VXX can run hotter — fear puts a premium on the trade itself, separate from what the underlying volatility index is actually reading. That gap is the signal.
When VXX gets rich enough relative to VIX, mean reversion starts mattering. The emotional price has outrun the underlying measure. The fade has teeth.
The ratio does not tell you when. It tells you whether the conversation is even worth having.
The same setup runs on SPY. The index is the same nervous system, just measured at a different layer. The ratio is VXX/VIX either way — pick the instrument that fits the size of the trade and the risk you actually want to carry. SPY for the cleaner directional, VXX for the leveraged fear-spike fade. Both honor the same gates.
def vxx_vix_ratio(vxx_price, vix_level):
"""
Core signal. Ratio above threshold = fade candidate.
Below threshold = don't force it.
"""
ratio = vxx_price / vix_level
return ratio
def is_fade_candidate(ratio, threshold=1.15):
"""
Threshold tuned to your risk tolerance.
Higher threshold = fewer trades, higher conviction.
Lower threshold = more trades, more noise.
"""
return ratio >= threshold
def check_entry_conditions(ratio, volume_confirmed, timing_window, no_breaking_news):
"""
The ratio is the gate. Everything else is the filter.
All four must be true or there is no trade.
"""
return (
is_fade_candidate(ratio) and
volume_confirmed and
timing_window and
no_breaking_news
)
That is the skeleton. Simple enough to explain in one conversation. Strict enough to kill most possible trades before they get to feel important.
The Filters
Volume matters because retail noise and institutional positioning do not leave the same footprint. Thin volume on a spike looks like opportunity. It is usually a trap.
Timing windows matter because the market behaves differently when real money is repositioning near the close than it does in dead air between sessions. The same ratio reading at 11am and 3:45pm is two different conversations.
Technical structure matters because even a good fade can be a stupid entry if there is no sign of exhaustion in the move. The ratio says the price is stretched. The chart tells you if it is still stretching or starting to buckle.
And then there is news.
News is the filter that kills the most setups, and it is the right one to lose. There is no point fading a VXX premium while fresh information is still changing the price of fear. A geopolitical event, a Fed surprise, a print that blows the consensus — these do not care about your ratio. The setup that looked clean at 2pm can be genuinely different information at 2:07pm.
The companion piece to this system is exactly that problem: Yesterday's News. Public information is always late, but breaking information is a different animal. The system needs to know which one it is dealing with before it takes the trade.
Two more pieces nobody ships systems with because they sound boring. VWAP gives you positioning — price above VWAP means you're fighting institutional flow, below means you're with it. The fade we want is the move that's already crossed VWAP the wrong way and is starting to look stretched against it. That's where the ratio and the chart agree before you do.
