Release notes


User Visible Changes

  • Added the name of the spreader to the parent algo badge (for spreader child orders), in the fills, orderbook and floating orderbook windows
  • Added support for sounds for new orders
  • Added a new quoting throttle parameter for the spreader, that throttles quotes that are moving toward the inside market but are still a configurable number of ticks away
  • Enabled the ladder to remember the left panel scroll position across front end restarts

Bug Fixes

  • Fixed the local fills window so that it does not show the admin fills
  • Removed the deleted accounts from the ladder accounts dropdown
  • Fixed the orderbook price for iceberg of spreaders


User Visible Changes

  • Added support for ICE market data and order execution

Internal Changes

  • Lots of permission / admin changes to facilitate ICE


User Visible Changes

  • Fixed fills form time filter to also apply to SOD fills
  • Addressed an issue that could prevent the web Admin UI from displaying over slow HTTP connections
  • Removed the option to enter manual spread fills
  • Fixed an issue that could cause erroneous fill account attribution in the event of a crash

Internal Changes

  • Added support for tag 1031. Currently defaults to Y, can it be override through config.
  • To facilitate support, allowed the bts user to view and edit algos from all other users
  • Improved system tests
  • Improved log messages in UI to include dispatcher thread name
  • Added support for Windows core dumps in the UI


User Visible Changes

  • Fills now include information about the algo that originated the fill
  • A new, more powerful PnL form is now available

API Changes

  • Added security state information (pre open, halted, normal, closed, etc)

Bug Fixes

  • Brought back the "select all" check box in the mini order book
  • Fixed an issue in the market data subsystem that on rare occasions could result in a startup crash

Internal Changes

  • Fixed an issue that was stopping us from interpreting SOD times as local rather than GMT


Internal Changes

  • Fixed system test scripts


Bug Fixes

  • Fixed an issue with the exchange simulator that could lead to crossed markets


Bug Fixes

  • Fixed an issue with trade sound alerts, where in some cases the use of a "In Between" condition could lead to a UI failure.
  • Fixed an issue with the display of the new raw position column in the market view window.
  • Fixed the popup label that describes the raw position information in the ladder

Internal Changes

  • Avoided shipping production configuration defaults that lead to trying to download a position file for the development sftp server.


  • C# API sample now uses synchronous calls.


User Visible Changes

  • Improved Workspace management User Interface
  • Added the ability to change grid background colors
  • The Spark UI Window group now has a title in the Windows task bar
  • Added sound alerts for trade events, see Launcher -> Settings -> Alerts
  • Allowed composite algos that are attached to existing orders to identify fills that were already present prior to attachment
  • Added import facilities for GMI position files
  • Added the ability for risk managers to enter manual fills
  • Added "raw" P&L columns, that is columns that do not include spread legs in their accounting

Bug Fixes

  • Fixed the settings action menu (Load/Save/Reset to Factory)
  • Fixed the method used to determine if a security is expired to take into account the start of day time

API Changes

  • Fixed an issue in the Client SDK that could lead to occasional failures to connect to the spark server as well as excessive memory usage.
  • Added the ability for algo orders to distinguish fills existing prior to launch

Internal Changes

  • Changed how we packaged certain third-party components
  • Added logging of entitlement status
  • Tagged outgoing orders with sequence number of marketdata or FIX event that triggered them


Bug Fixes

  • Fixed a bug that could cause an OrderBook's Security column filter to be blank
  • Fixed a bug that could cause a UI failure when clearing a filter selection on a filtering widget


Bug Fixes

  • Added proper display factors for SOM spreads
  • Fixed a bug that could cause a UI failure when trying to change settings in a synthetic ladder


Bug fixes

  • Fixed an error in the UI grids filtering widget


User Visible Changes

  • Added ProRata and Scratch algos
  • Ladder badge now grows/shrinks to fill the containing cell
  • Attached algo parameters are now displayed in the update panel
  • Fixed a bug where the update panel would show '-' values when only 1 order was selected
  • Fixed a bug that cause cause a failure on startup if the user loaded a workspace with a Ladder that had a dynamic order type selected by default
  • Increased width of login panel to better show login error messages
  • Added optional 'Maker/Taker' pricing to Spreader algo
  • Algo buttons in ladder can now be made to deactivate after launching an algo or remain 'sticky'

Internal changes

  • Made it easier to generate simple UI's for new order types

API Changes

  • Dynamic orders can now use QuantityMeasure parameter types


User Visible Changes

  • Changed the login dialog to avoid leaking workspace names from other users.
  • Added new Splitter algo. From the manual: The splitter is useful for pro-rata markets where you want to vary your exposure independent of the order quantity that you want to fill. The splitter will complete when the number of fills reaches or exceeds the order quantity but it will put exposed_qty total size on the market. Splitter favors order size over queue position.

Internal Changes

  • Made spark more resilient to lack of connectivity to the CME web site for downloading of templates.


User Visible Changes

  • Fixed some issues with the Cover algo, where in some circumstances it would erroneously cancel launched hedges on completion.


User Visible Changes

  • Allowed algos to process "in-flight" fills while shutting down
  • Changed the cover algo to continue to hedge while shutting down

API Changes

  • Changed the API so that algos do not fully terminate until all their children are terminated. Algos that are in the process of shutting down in response to a complete or cancel call will still receive child updates, which they can use to calculate and report an accurate fill count (during this shutdown stage algos cannot create, cancel or update children). A new IAlgoServices method, is_shutting_down(), can be used to determine if an algo is shutting down.


User Visible Changes

  • Fixed an issue in the ladder where in some cases the mini order book could not be brought up from a badge
  • Fixed a rare race condition that could lead to erroneous limit enforcement
  • Fixed an issue with the margin limits where an error could occur if an account name with more than 12 chars was used


User Visible Changes

  • Fixed an issue in the ladder where an error could occur when trying to change ladder settings for the first time


User Visible Changes

  • In the ladder made last trade more distinctive when overlaid on the volume column
  • In the ladder, corrected display of volume tool tip
  • In the ladder, changed the consolidation of last trade to consider only the price ignoring aggressor changes
  • Added an option for the Top Algo to delete itself if within N ticks from top of book
  • Address a rare issue that could lead to an error report on UI exit
  • Added margin risk limits
  • Added the "Offset" algo. Offset prices a child algo at a parameterizable distance from the top of the book
  • Avoided switching the current account and order type on open ladders when limits are changed

Internal Changes

  • Ensure that admin logins are always allowed to login, regardless of keycode status.


User Visible Changes

  • Added loss limit risk check
  • Made algos, synthetics and user names private so that multiple users can share a single system privately.
  • Allowed the mini order book defaults for column widths to be changed from the mini order book
  • Allowed the mini order book to shrink to the minimum size that will be needed to display the selected columns
  • Improved accuracy of the directional arrow when displaying last trades in the volume column


User Visible Settings

  • In the ladder, changed the last trade column to accumulate successive trades at the same price
  • Fixed a bug in the order book where the right side ladder would display the top level order's security rather then current row's
  • Added OK, Cancel buttons to the security picker for ladder profiles or sounds
  • Added ladder settings for the mini order book
  • Added a safety check to guard against unintentional market crosses
  • Improved the Queue Holder mode in the spreader:
    • Added a Show Quantity, allowing the spreader to keep queue position of the trailing orders as Fills (of size Show Qty) happen
    • Improved spreader performance when in Queue Holder mode

Internal changes

  • Suppressed order callbacks for completed/canceled orders. This should eliminate some bogus error logs by spreader orders.
  • Addressed a potential concurrency issues with service initialization.


User Visible Changes

  • Introduced multiple settings profiles for the ladder
    • This allows multiple standard configuration for the ladder, optionally with security specific variations
  • Made Cover order more independent from its hedging children:
    • Cover continues to operate even if an hedging child is canceled
    • When a cover is canceled it will detach from any running hedging children, instead of canceling them
  • Changed Lean, Join and Cover algos to hide themselves in the ladder once they have completed their work
  • Changed manual fills to appear in day PnL rather than in the SOD records
  • Add buy/sell coloring to fill rows in fills window
  • Streamlined the mini order book:
    • Display of the mini order book popup is quicker
    • Only exchange orders are displayed
    • Update buttons are only displayed for orders that are under control of an algo with the update applying to the entire algo, not just the exchange order
    • We can now select multiple rows to attach, detach, update or cancel multiple orders in a batch
    • A checkbox column has been added to make clearer which rows are selected

API Changes

  • Enhanced the API to allow algos to implement custom cancel handling
  • Allowed algos to control their visibility in the ladder through the API

Internal Changes

  • Added system requirements to Spark documentation
  • Implemented keycodes
  • Temporarily rejected stop and stop limit orders, pending bug fixes


User Visible Changes

  • Made our orders easier to spot in MBO display
  • Changed middle-click on center column to recenter ladder and introduced Alt middle-click on center to bring up the MBO popup
  • Fixed Net/Absolute radio button in risk admin UI
  • Fixed double counting of spread legs in limits
  • Removed expired fills from the system
  • Improved handling of orders with undiscovered securities
  • Added feedback to the ladder when the user attempts to middle click on bid/ask columns using an order that does not have parameters
  • Fixed display of algo studio algo types in order book
  • Hid net change setting in synthetic ladders
  • Fixed a number of problems with filtering on the Fills form
  • On the Lean algo, OnToward and Away are now calculated with respect to the opposite inside market at time of the order launch
  • Iceberg Spreaders with queue holders are not erroneously cancelled after the first fill
  • Added security symbol column to fills window
  • Re-organized ladder settings dialog to make it clearer and easier to use


User Visible Changes

  • Fixed handling of cancel button in security picker


User Visible Changes

  • Fixed a simulator bug in the handling of 0 sized orders


User Visible Changes

  • Fixed order book form exception when display a spreader order for which the legs were not present yet


User Visible Changes

  • Added PIQ to GLBX Iceberg orders
  • Corrected handling of stop limit orders


User Visible Changes

  • Added support for the GLBX Iceberg order type
  • Allowed quick algo param edits by middle-clicking on either the bid/ask columns or a "favorite" button
  • Added support for manual fills, either entered manually or imported from file. Manual fills are used only for P&L purposes, they have no impact on limits
  • Allowed the LTQ and VAP values to be overlaid on the same ladder column
  • Added day position information to the ladder
  • Added PIQ to the mini order book
  • Fixed a rare bug that could lead to server failure when requesting market data
  • Fixed a bug that could cause incorrect price displays for certain types of synthetic securities


User Visible Changes

  • Fixed a bug in the handling of rejected QHO orders
  • Implemented stricter position limit enforcement
  • Fixed a bug that could cause server failure when trying to attach to already attached orders


User Visible Changes

  • Fixed performance regression in order manager

Internal changes

  • Improved market data diagnostics for bad configurations
  • Changed market data default buffer size


Internal changes

  • Improved backwards compatibility in UI settings


User Visible Changes

  • Middle click the ladder price column to show the orders for that price level
  • Middle click the bid or ask column in the ladder no longer sends an order

Internal changes

  • Improved market by order performance under heavy load
  • Fixed a concurrency bug in SIM


User Visible Changes

  • Support for attaching and detaching algos to existing orders
  • Support for display and update of all parameters in running algos
  • Streamlining of order badge decorations in ladder
  • New order search/filtering algorithm for order book
  • Simpler representation of complex algo chains in order book and mini order book
  • Visual and usability improvements to mini order book
  • Streamlining of algo parameter dialog in ladder
  • New spreader queue holder behavior
  • Visual improvements to the order book
  • New server side API
  • Improved admin UI performance
  • Optimized PIQ rendering

Internal changes

  • Exchange simulator no longer requires daily sequence number reset
  • Improved MD resilience to corrupted shared memory
  • Native orders can now buffer updates/cancels when disconnected or pending first acknowledgment
  • Improved settings manager tool output
  • Added diagnostics in the event MD memory corruption is detected
  • Added systems tests for join,lean, iceberg and spreader orders
  • Made exchange order recovery more resilient in the presence of database loss


User Visible Changes

Exchange simulator

  • Exchange simulator now now produce position in queue data


User Visible Changes

New Features

  • You can now view your order's position in queue in the ladder

Bug Fixes

  • Fix a bug in the order popup in the ladder which could lead to a crash.


User Visible Changes

  • Fix for stunnel connections on Windows 7


User Visible Changes

  • Fixed a bug where it was possible to crash the UI by entering an order through the order ticket if Enter was used to dismiss the dialog.
  • Fixed a spreader reporting bug which could cause the server to crash if an algo was used to control certain types of synthetics
  • Improved user message when the UI fails to login
  • Integrated stunnel into UI to make VPN setup unnecessary in unsecured environments.


User Visible Changes

  • New videos have been added to the manual describing the Algo Studio and Spreader
  • Fixed a bug that occasionally would cause windows to be position outside the visible screen on startup
  • Fixed a bug in the order book form that would occasionally cause the Recreate Order option to be unavailable
  • Added a confirmation step to Cancel All, Cancel Buys and Cancel Sells commands
  • Fixed Aggressor coloring and ladder high/low coloring in the SIM execution gateway
  • Added initial support for ICE market data
  • In an effort to streamline the PnL report we've made the following changes:
    • The PnL report will by default filter for Futures contracts only
    • If you wish to see Spread contracts again you may change Security Type column filter
    • The PnL report will now only show rows in which there is a position (net and/or day)
    • The Exchange, Start PnL, Total Net Pos, and Total Net PnL columns are now hidden by default
    • These columns can be restored by toggling their visibility within the PnL's Settings form
    • A new Traded Today column has been added to the PnL
      • Filtering on this column will allow a user to restrict the report to only show today's position

Internal changes

  • Improved organization of the shell notification architecture
  • Added logging to help troubleshoot shell exit hang


User Visible Changes

  • Fixed a bug that could cause limits to be erroneously enforced
  • Improved algo documentation
  • Changed how the spreader uses net change
  • Simplified trigger algo user interface

Internal changes

  • Defaulted to not recording sim market data
  • Improved documentation build
  • Added additional performance tracing


  • Fixed Market View 'stale working orders' bug


  • Avoided logging when warming up cache


  • Fixed sounds startup issue


  • Added better logging to AlgoDefinitionService


  • Fixed missing securities in the Fills and P&L windows.


User Visible Changes

New Features

  • This release introduces a major new feature, the Algo Studio, a set of tools allowing traders to create their own algos by composing existing algos to express unique strategies.

User Interface Improvements

  • Removed security key field from most grids
  • Removed trade key field from time and sales grid
  • Fixed the "Since Open" time filter to use the exchange open time rather than 8:30 AM
  • Fixed the floating order book so that rows are no longer highlighted after an order is modified
  • Relocated quantity and price columns in floating order book immediately after the cancel column; users now can move the mouse a much shorter distance when modifying their orders
  • The escape key now closes the floating order book

Bug Fixes

  • Fixed the "Since Open" time filter to use the exchange open time rather than 8:30 AM
  • Fixed a bug in the order book where sometimes parent orders would not update their last message column.


  • Added OCO Algo
    • An OCO order creates a relationship between a child order and a 'stop' or 'other' order such that when one of these is cancelled, both cancel, or when one is filled, the other order's size is debited in the amount of the fill. Composing this order with Cover simulates scalping functionality


  • Improved SDK documentation and usability
  • Dynamic orders are now properly identified in the order book


  • Information on the Spark API has been added to the Spark manual
  • The documentation has been updated and reorganized to make information easier to find

Internal Changes

  • Improved robustness of limit system test
  • Fixed a bug in handling of built-in bts to user that could lead to failure to login as bts in old systems
  • Improved market data subsystem to support security definition updates
  • Fixed a startup race in market data that could lead to data corruption on startup
  • Increased default order price precision to 8 digits as required by some CME products


New Features

  • Floating Order Book
    • The floating order book provides a quick view of orders occupying a price level in the ladder
    • Launch the Floating Order Book by middle-clicking a ladder badge
    • Cancel orders by clicking on the red X in the Cancel column
    • Quantity and Price modification
      • Clicking on a row will select it, providing the option for changing your price and quantity
      • Enter in a new value or use the up/down buttons to set a desired value
      • Press the green checkbox to finalize your change and update the order


  • Improved SDK documentation and usability

User Interface Improvements

  • The following spreader quoting parameters have been deprecated:
    • Hidden parameter
    • Price Type setting of the Conditional parameter

Bug Fixes

  • Fixed a limit enforcement problem that could lead to 0 sized orders being sent to the exchange


Bug Fixes

  • Removed duplicate entries in performance log



  • Added ticker events to the order API

Performance Improvements

  • Significantly improved hedging speed

Bug Fixes

  • Fixed a visual oddity in the order book UI when using High DPI displays



  • Additional trade details for CME ticker


Bug Fixes

  • Corrected FIX tag 1028, ManualOrderIndicator, when orders are triggered by algos


Ladder Usability Improvements

  • The ladder can now be zoomed in/out according to a user's preference
  • The zoom slider can be enabled from Ladder Form -> Settings button -> Left Pane tab -> check Zoom Slider checkbox
  • The zoom functionality can also be performed via hotkey and mouse wheel combinations
    • Zoom In = CTRL + Mouse wheel up

    • Zoom Out = CTRL + Mouse wheel down

    • Reset zoom = CTRL + Mouse wheel click or double click on the zoom slider

Exchange simulator

  • Improved the exchange simulator to track real market data more closely

Bug Fixes

  • Fixed a UI crash in some cases when attempting to sort the order book by time


  • Fixed entitlement validation for ICS spreads
  • Tuned performance logging


Performance Improvements

  • Reduced performance logging activity


Ladder Usability Improvements

  • Controls found in Left Pane of the ladder can now be hidden via the checkboxes found under Ladder Form -> Settings button -> Left Pane tab
  • The Left Pane is now scrollable with the mouse wheel when there isn't enough vertical space to accommodate the entire form
  • The Left Pane can now grown and shrunk horizontally via the splitter between the left pane and the main ladder area

Performance Improvements

  • Requoting and hedging latency has been reduced by up to 30%

Software Development Kit (SDK) Improvements

  • The API now enforces authentication

Bug Fixes

  • The Market View form now honors filters when new securities are added


User Interface Improvements

  • When creating a synthetic from the Market View window, securities are now added to the Create Synthetic dialog in the same sort order as they appear in grid

Bug Fixes

  • Shell no longer crashes when removing a security from the synthetics window
  • It is now possible to create a new synthetic using the same name as a previously deleted synthetic

SDK Improvements

  • Improved Client and Server SDK clarity and documentation

Performance Improvements

  • Synthetic calculation speed was improved by 400%.

Risk / Entitlement System

  • Risk Admin UI
    • Spark users now have separate Trading, RiskAdmin, and/or MDAdmin permissions
    • Spark users can now only add other users or accounts if permissioned to do so.
  • Market Data Entitlement
    • Automated market data reporting



  • Tabs now shrink and expand to make better use of horizontal space

Bug Fixes

  • Fixed a bug that could cause excessive CPU usage when a connection broke
  • Fixed a layout bug in hedging/requoting performance reports
  • Fixed account name mismatching bug for old fills

Absolute Position limits

  • Positions can now be netted or absolute for purposes of limit enforcing


Speed Enhancements

  • Improved requoting and hedging performance
  • Improved order book form performance

Server Side SDK

  • Added a beta version of the server side SDK

Front End

  • Added status bars to all UI grids


  • Added reporting of hedging and requoting performance


Speed Enhancements

  • Further speed enhancements

Conditional (new quoting parameter)

  • Reduces re-quoting updates by only quoting if N ticks away from the opposite inside market.
  • Quotes are canceled when it gets further away.
  • "Price Type" dictates if this logic applies to the quoting market or to the synthetic spread market.


Net Change pricing

  • The ability to price synthetics based off of net change


Speed Enhancements

  • Further speed enhancements

Separation of implied and direct market data

  • Viewing within a market view will now show 3 columns
    • Direct
    • Implied
    • Merged
  • Ability to configure the market data size in a ladder as the following
    • Direct
    • Implied
    • Merged

Synthetic creation option to choose Merged or Direct

  • The ability to choose Merged or Direct per leg when creating a synthetic

Volume at price

  • Within a ladder, you can now see a volume at price graph
  • This is configurable from a ladder's settings as well

Customized settings in all windows

  • All windows now contain a settings page where grid settings (font color, size, etc) are applied
  • These settings can be saved on a per-window basis or as a Default for newly-launched windows

1.3.1 Through 1.3.4

Speed Enhancements

  • Further speed enhancements


Market View

  • Synthetic future leg working orders are now shown

Order Book

  • Many visual facets of the Order Book grid can now be customized
    • The Order Book settings page can be accessed from the gears icon in the Order Book toolbar or from the right-click menu
  • The Expand/Collapse All button has been separated into two different buttons on the toolbar

Sound Alerts

  • Sounds alerts can now be configured for various order events
  • Configure sounds under the Sound/Notification Triggers on the Order Book settings page


  • Newly launched fill windows will filter out start-of-day records by default


  • Prices are now formatted with penny precision
  • Day PnL has been added to the Totals footer at the bottom of the window


  • Order badges now have been improved to communicate a variety of order state
    • Background color now indicates order side
    • Child orders will display a one-character abbreviation to their parent order enclosed in a rectangle; the rectangle will have a fill color matching the parent order
    • Border color around badge will match the associated algo color
    • Exchange orders will present with a solid dot in the badge's top-right corner
    • When multiple orders reside at the same level, a solid triangle will be present in badge's bottom-right corner; all other badge decorations will not be visible in this state
    • Hedge orders will present with a vertical line inside the badge's left border
  • Trigger orders, once triggered, will no longer be shown in the ladder
  • Session High and Low visual indicators have been added to the Price column
  • Session range is now indicated in the Price column
  • A button reflecting position has been added above the quantity field
    • This button reflects the position for the currently selected account
    • Pressing the button will copy the position size to the quantity field
  • Order quantity button size values are now customizable
    • Default size preset values can now be changed, as well as added or removed
    • This can be configured per ladder instance (i.e. per security) by making use of the Custom tab
  • Synthetic ladders that were saved as part of a workspace are now restored on startup


  • Hedge Ratio parameter has been renamed to Lean Qty Factor
  • Spreader now includes a Hidden mode parameter
    • A quoting leg can be hidden, ie an order will not be sent out until the market crosses the computed quoting price. When that happens, the quote is sent out as an IOC order.


  • Trigger orders now can contain a Trigger Exit parameter based on time or price; once the exit condition has been met the Trigger order will cancel
  • IOC/FAK order type added
  • Cover order type added
  • Canceling a synthetic order no longer cancels any working hedge orders


  • A manual page has been added to the launcher Help menu
  • Various help buttons and tooltips were added throughout the application
  • Various cash per point values updated
  • Time-based grid filters now have tick up/down buttons
  • Numerous performance improvements and stability enhancements
  • Automated position and Order Book maintenance during daily recycle
    • Individual fills will be compacted into the Start of Day position records
    • Orders from the day before the recycle will be deleted



  • Order Book: Orders in Error status can now be recreated
  • Order Book: Orders containing child orders will now be collapsed by default.
  • Order Book: Expand / Collapse All button added to the right-click menu and window action pane, denoted by ▲ icon
  • Order Book: Symbol column added to allow for filtering based on group symbol
  • Time filters now have a quick Set Last Hour hyperlink which will set the Period Begin filter to (Now - 1 hour)


  • Update CME market data handler for price precision extension.


  • Enabled wild cards in risk management UI
  • Fixed spreader order updates


  • Fixed spread leg price fill
  • Fixed HO cash per point value


  • Fixed occasional crash when filtering fills
  • Fixed several cash per point multipliers
  • Colored time of sales row with aggressor side
  • Iceberg orders now cancel (rather than an error) when a child is canceled


  • Added per user self match protection, location and self match protection FIX tag settings
  • Implemented a new "Trigger Order" algo
  • Corrected tick formatting for a number of products
  • Added the ability to recreate canceled orders
  • Added leg fills to facilitate futures based PnL
  • PnL report now has PnL columns calculated based on your Start of Day, current day, and total position
  • Start, Day and Total PnL columns are painted with a red or green background color based on if the pnl value is negative or positive respectively
  • Corrected cash per point values, used in pnl calculations, for a number of products
  • PnL report will now remember any customizations you make to filtering and/or sorting criteria

Have a Question?


318 W Adams St
Suite 1724
Chicago, IL 60606
Telephone: (919) 913-0850

Chapel Hill

194 Finley Golf Course Road
Suite 100
Chapel Hill, NC 27517

Follow Us

Twitter: @bts_software
LinkedIn: Blue Trading Systems
Facebook: Blue Trading Systems