Skip to content

Advanced Trading Strategies

Advanced strategies: pairs trading, statistical arbitrage, market making, and multi-factor models.

Pairs Trading

Concept

Trade two correlated stocks when their price ratio deviates from historical mean.

Implementation

import pandas as pd
import numpy as np
import yfinance as yf

# Get data for two correlated stocks
stock1 = yf.download("AAPL", period="1y")['Close']
stock2 = yf.download("MSFT", period="1y")['Close']

# Calculate spread
spread = stock1 - stock2
spread_mean = spread.rolling(window=30).mean()
spread_std = spread.rolling(window=30).std()
z_score = (spread - spread_mean) / spread_std

# Trading signals
# Buy spread when z-score < -2 (spread too low)
# Sell spread when z-score > 2 (spread too high)

Statistical Arbitrage

Concept

Exploit temporary mispricings using statistical models.

Implementation

# Multi-stock mean reversion
stocks = ['AAPL', 'GOOGL', 'MSFT', 'AMZN']
data = yf.download(stocks, period="1y")['Close']
returns = data.pct_change().dropna()

# Calculate portfolio z-score
portfolio_returns = returns.mean(axis=1)
portfolio_z = (portfolio_returns - portfolio_returns.rolling(20).mean()) / portfolio_returns.rolling(20).std()

# Trade when portfolio deviates

Market Making

Concept

Provide liquidity by quoting both bid and ask prices.

Implementation

# Simple market making strategy
mid_price = data['Close']
spread = 0.001  # 0.1% spread

bid_price = mid_price * (1 - spread/2)
ask_price = mid_price * (1 + spread/2)

# Profit from spread

Multi-Factor Models

Concept

Use multiple factors to predict returns.

Implementation

from sklearn.linear_model import LinearRegression

# Factors: market return, size, value, momentum
factors = pd.DataFrame({
    'Market': market_returns,
    'Size': size_factor,
    'Value': value_factor,
    'Momentum': momentum_factor
})

# Fit model
model = LinearRegression()
model.fit(factors, stock_returns)

# Use for prediction
predicted_returns = model.predict(factors)

Key Takeaways

  • Pairs Trading: Trade correlated stocks
  • Statistical Arbitrage: Exploit mispricings
  • Market Making: Profit from spreads
  • Multi-Factor Models: Use multiple predictors

Previous: Risk Management | Next: Backtesting & Validation