Cointegration Pairs Strategy (C#). StockSharp

Author: StockSharp
N: 1728
v5.0.1 (7/30/2025)
Downloads: 70

This strategy trades two assets that share a long-term cointegration relationship. By calculating the residual between the first asset and a beta-adjusted second asset, it looks for deviations that historically revert back to equilibrium.
A long position buys the first asset and sells the second when the residual z-score drops below -EntryThreshold. A short position sells the first and buys the second when the z-score rises above the threshold. Positions are closed once the spread normalizes toward zero.
Cointegration pairs trading suits statistical arbitrageurs comfortable managing two instruments simultaneously. The built-in stop-loss protects against extreme moves if the relationship temporarily breaks down.

  • Entry Criteria:

    • Long: Residual Z-Score < -EntryThreshold
    • Short: Residual Z-Score > EntryThreshold

  • Long/Short: Both sides.
  • Exit Criteria:

    • Long: Exit when |Z-Score| < 0.5
    • Short: Exit when |Z-Score| < 0.5

  • Stops: Yes, percentage stop-loss.
  • Default Values:

    • Period = 20
    • EntryThreshold = 2.0m
    • Beta = 1.0m
    • StopLossPercent = 2.0m
    • CandleType = TimeSpan.FromMinutes(5)

  • Filters:

    • Category: Arbitrage
    • Direction: Both
    • Indicators: Cointegration
    • Stops: Yes
    • Complexity: Intermediate
    • Timeframe: Intraday
    • Seasonality: No
    • Neural networks: No
    • Divergence: Yes
    • Risk Level: Medium