Skip to content

Universal Arbitrage

Universal Arbitrage

Overview

Statistical arbitrage: trades two correlated instruments - or a triangle of three - against each other when the spread between them stretches far from its average, and closes the pair as it returns.

How it trades

  1. The spread of the legs and its z-score - how many standard deviations it is from its average.
  2. Beyond the entry z-score the stretched pair is opened (one leg bought, the other sold); back near the average it is closed.
  3. A correlation filter, pair protection, disaster stops at the broker and ROI exits guard the pair.

Core settings

All its settings - legs, spread, entry and exit z-scores, correlation filter, pair protection - are the Arbitrage Core's.

Core defaults

This strategy starts with these core settings; change any of them in its settings.

Group Setting Default
NinjaTrader Calculate On each tick

Version history

v.3.1.0.0 - October 2026

  • Changed: the signal follows NinjaTrader's Calculate setting - On each tick by default, so it is taken inside the bar, the moment it appears.
Earlier versions

v.3.0.0.0 - October 2026

  • New: on the Arbitrage Core - pairs and triangles on the z-score of the spread.

v.1.1.0.1 - Oct 26, 2025

  • Trading hours and days logic updated — if all sessions are disabled, the strategy now runs without time restrictions instead of stopping trading.

v.1.1.0.0 - May 29, 2025

  • Added ROI function for trade exit.
  • Added session end position closing function.
  • Added descriptive names to exit orders for better understanding of position closure conditions.
  • Sorted properties.
  • Improved position recovery.
  • Added property to enable/disable mean reversion exit.
  • Added property StdRatio to set the standard deviation ratio for the spread.
  • Updated entry conditions.

v.1.0.0.7 - Aug 6, 2024

  • Improved functions to raise position after connection loss.
  • Created a new property group to set the bar period type and value for the second ticker.

v.1.0.0.6 - Mar 14, 2024

  • Improved conditions for closing a position when the daily loss or profit is reached.
  • Changed parameter determining the priority of strategy position or account position.
  • Fixed the problem of strategy transition to the next state while placing an entry order.

v.1.0.0.5 - Dec 24, 2023

  • Improved conditions for partial fulfillment of orders.

v.1.0.0.4 - Dec 1, 2023

  • Improved conditions for partial fulfillment of orders.
  • Improved the function of raising the position after connection loss.
  • Added functions for order execution log.

v.1.0.0.3 - Nov 12, 2023

  • Improved trading session time.
  • Improved the function of raising the position after connection loss.

v.1.0.0.2 - Sep 29, 2023

  • Improved the function of raising the position after connection loss.

v.1.0.0.1 - Sep 6, 2023

  • Added additional setting for specifying the trading session.
  • Added functions to raise position after connection loss.
  • Daily profit and drawdown functions can be used in backtest.
  • Added option to specify trading on specific days of the week.