pub fn create_spread_instrument_id(
leg_tuples: &[(InstrumentId, i32)],
) -> Result<InstrumentId>Expand description
Create a spread instrument ID from leg tuples.
This implements the same logic as Python’s InstrumentId.new_spread:
- Creates a symbol string like
(1)SYMBOL1_(-2)SYMBOL2 - Positive ratios:
(ratio)SYMBOL - Negative ratios:
((abs(ratio)))SYMBOL - Sorts legs alphabetically by symbol
- All legs must have the same venue
§Arguments
leg_tuples- Vector of (instrument_id, ratio) tuples
§Errors
Returns an error if:
- Less than 2 legs provided
- Any ratio is zero
- Venues don’t match across legs