Academy/Advanced Quant/Multi-Asset Algorithms: Going Global
Advanced QuantLesson 5

Multi-Asset Algorithms: Going Global

Build strategies that trade stocks, options, futures, crypto, and more together.

14 minute read
4 key takeaways

Multi-Asset Algorithmic Trading

Extend your algorithms beyond stocks. Options, futures, crypto, commodities—all follow the same principles.

Asset Classes & Their Characteristics

AssetHoursLeverageLiquidityCostsUse Case
Stocks6.5h/day2:1HighLowCore holdings
Options6.5h/day5:1+MediumSpreadsIncome/hedges
Futures23h/day10:1+Very HighCommissionsMacro, hedges
Crypto24/7100:1+Very HighSpreadsRisk-on, corr-1
Forex24/550:1+Super HighSpreadsGlobal macro

Universe Construction Across Assets

  • Stocks: 500+ liquid large-cap names
  • Options: ATM and slightly OTM options on liquid stocks
  • Futures: Index, commodity, and bond futures
  • Crypto: BTC, ETH, and major altcoins
  • Forex: Major pairs (EURUSD, GBPUSD) + minors

The Strategy: Trend-Following Across All Assets

python
class MultiAssetTrendFollower:
    def __init__(self):
        self.positions = {}

    def generate_signals(self):
        signals = {}

        # Stocks: SMA crossover
        for stock in stock_universe:
            if sma_20[stock] > sma_50[stock]:
                signals[stock] = {'asset': 'stock', 'signal': 'LONG'}

        # Futures: ATR breakout
        for future in futures_universe:
            if price[future] > donchian_high[future]:
                signals[future] = {'asset': 'future', 'signal': 'LONG'}

        # Crypto: Momentum
        for ticker in crypto_universe:
            if return_7d[ticker] > 0:
                signals[ticker] = {'asset': 'crypto', 'signal': 'LONG'}

        return signals

    def execute(self, signals):
        for ticker, signal_info in signals.items():
            asset_type = signal_info['asset']

            if asset_type == 'stock':
                place_stock_order(ticker, signal_info['signal'])
            elif asset_type == 'future':
                place_futures_order(ticker, signal_info['signal'])
            elif asset_type == 'crypto':
                place_crypto_order(ticker, signal_info['signal'])

Cross-Asset Correlations

In risk-off regimes, everything falls together. In normal times, assets are diversified.

  • VIX spikes → stocks down, bonds up (flight to safety)
  • Growth stocks and growth crypto highly correlated
  • Commodities often move opposite to equities
  • Cryptoused as risk-on trade (goes down in crashes)

Execution Complexity

  • Different settlement times (T+2 for stocks, instant for crypto)
  • Different hours of operation (stocks close at 4pm ET, futures 24/5)
  • Different costs (stocks have commissions, crypto has spreads)
  • Coordination: If you buy ES futures and sell QQQ, are you market-neutral?

The Advantage: True Diversification

Stocks, bonds, commodities, crypto as a portfolio have lower correlation than stocks alone. This means lower volatility for the same return. Multi-asset = true risk reduction.

Key Takeaways
  • Same principles apply across assets (stocks, options, futures, crypto)
  • Different asset classes have different liquidity & costs
  • Global diversification provides true diversification
  • Execution complexity increases with more assets