ran correlation analysis on my strategies.
found something i didn’t expect.
what i analyzed #
all trades from may-july (3 months, 65 trades).
grouped by strategy type:
- SPX options (25 trades)
- TLT options (18 trades)
- sector ETF options (12 trades)
- IWM/QQQ options (10 trades)
calculated correlation between strategy returns.
the correlation matrix #
learned about correlation analysis and ran it on my strategies:
SPX TLT Sector IWM/QQQ
SPX 1.00 0.15 0.72 0.68
TLT 0.15 1.00 0.08 0.12
Sector 0.72 0.08 1.00 0.65
IWM/QQQ 0.68 0.12 0.65 1.00
what this means #
low correlation (good):
- TLT vs everything else (0.08-0.15)
- bonds move different than equities
- provides real diversification
high correlation (problem):
- SPX vs Sector ETFs (0.72)
- SPX vs IWM/QQQ (0.68)
- Sector vs IWM/QQQ (0.65)
basically: all my equity strategies are highly correlated.
the hidden risk #
when equities dump, ALL my equity positions lose together.
not actually diversified.
example from july 10 (my red day):
- SPX put spread: -$301
- IWM put spread: -$336
- both lost same day, same reason (equity dump)
TLT trade that day: +$93 (bonds rallied while stocks dropped)
what i’m changing #
new rule: max 2 correlated positions at once
implementation:
if holding SPX position:
- can add 1 more equity position (sector/IWM/QQQ)
- can add unlimited TLT positions (uncorrelated)
- cannot add 2nd SPX position
if holding 2 equity positions:
- block new equity entries until one closes
- still allow TLT entries
why TLT is key #
TLT correlation to equities: 0.08-0.15
when stocks drop, bonds often rally (flight to safety).
TLT provides actual hedge.
backtesting the new rule #
applied “max 2 correlated positions” to july trades.
july actual:
- some days held 3-4 equity positions
- correlation risk: high
- july 10 red day: -$544 (multiple correlated losers)
july with new rule:
- would’ve blocked 8 equity entries
- missed: 5 winners (+$1,840), 3 losers (-$890)
- net missed: +$950
but:
- july 10 would’ve been -$301 instead of -$544 (blocked IWM entry)
- reduced concentration risk significantly
tradeoff: give up ~$950/month in gains for lower max drawdown.
worth it for risk management.
implementation details #
added to trade entry checklist:
async def can_enter_position(self, symbol: str) -> bool:
"""Check if position entry allowed"""
# Get current positions
equity_positions = self.get_equity_positions()
# Check correlation
if self.is_equity(symbol):
if len(equity_positions) >= 2:
logger.warning(f"BLOCKED: {symbol} - max equity positions (2) reached")
return False
# Other checks (vol, existing exposure, etc.)
return True
monitoring #
added correlation dashboard to grafana:
- tracks current correlation between positions
- alerts if correlation > 0.70 on new entry
- shows diversification score
what this means for august #
before: could hold 4-5 equity positions at once
now: max 2 equity positions at once
effect:
- lower total positions
- better diversification
- reduced concentration risk
- slightly lower expected return but way lower risk
the lesson #
thought i was diversified (SPX, sectors, IWM, QQQ).
actually wasn’t. all moved together.
TLT is only true diversifier.
need to focus on uncorrelated strategies more.
next steps #
short term: enforce max 2 equity positions
medium term: research more uncorrelated strategies
- commodities (GLD, oil, nat gas)
- international (EEM, EFA)
- volatility (VXX)
long term: build truly diversified portfolio of strategies
trading update #
wednesday 8/2: +$405 (TLT call spread)
thursday 8/3: +$280 (SPX put spread)
august total: +$1,430
goal: +$4,000. need: +$2,570 remaining.
2:18pm thursday. found hidden correlation risk. implementing max 2 equity positions. better risk management.
-AK