Release notes and migration
An extension built against one version of the ATAS SDK keeps working in later versions of the platform as long as
the members it uses still exist. When a member is removed or its signature changes, the extension still loads, but
the method that uses the member fails at run time with MissingMethodException (or TypeLoadException for a
changed base type). Rebuilding against the assemblies of the new version turns that into a compile error you can fix.
This page lists such changes by platform version. It does not list additions: new members appear in the API reference. Build against the assemblies of the oldest platform version your users run, usually the stable one (Project setup).
The versions are platform lines: 8.0.15 is every 8.0.15.x build, of the classic ATAS and of ATAS X. The tables
describe the classic API (net10.0-windows), the one an extension is built against; ATAS X loads the same DLL after
converting its Windows types (ATAS X and macOS).
8.0.16 (in development)
Changes since the latest 8.0.15.
Indicators
| Change | What to do |
|---|---|
ExtendedIndicator.DenyCalculationTimeFrameChange and the virtual OnDenyCalculationTimeFrameChangeChanged are removed. Calculation on another timeframe is now opt-in: it is off unless the indicator enables it. |
An indicator that can be calculated on a higher timeframe sets SupportsCalculationTimeFrame to true in its constructor. An indicator that used to deny the change needs nothing. |
Heatmap indicators
| Change | What to do |
|---|---|
HeatmapIndicatorVisualStyle has a new TextColor parameter, second in the list. Positional arguments after Color now land on the wrong parameter. |
Pass the optional parameters by name: new HeatmapIndicatorVisualStyle(Color: "#2196F3", Thickness: 2). |
Built-in indicators
| Change | What to do |
|---|---|
The volume thresholds of BarsPattern, BarVolumeFilter, ClusterSearch, Delta and DOM are VolumeFilter instead of Filter: a threshold can be set in money. |
Code that reads these settings of a built-in indicator uses VolumeFilter. |
The LevelSettings constructor of OHLC Plus has new parameters (the text color). |
Rebuild; pass the optional parameters by name. |
Connectors
- IMarketDepthHistoryProvider.GetMarketDepthHistoryAsync has a
new
granularitySecondsparameter before the cancellation token. ConnectionStateEventArgshas a new optionalerrorconstructor parameter.- The market depth managers (
IDomManagerand its implementations):All,AsksandBidsreturn allocation-free views instead ofIEnumerable<T>(they still supportforeach),SyncRootis aSystem.Threading.Lock, andCloneStateis removed.
Outside the documented API
Public types that the API reference does not describe changed as well: the SessionServer namespace of
ATAS.DataFeedsCore is removed, SubscriptionManager.Get returns a struct, the network pipeline types of
Utils.Common.Network.Pipelines changed, the heatmap recording helpers of OFT.Rendering changed their signatures,
and the ATM strategy extensions GetStopLoss/GetTakeProfit with a PriceUnitTypes argument are removed.
From 7.0.9 (stable) to 8.x
The stable 7.0.9 targets .NET 8 (net8.0-windows), the 8.x platform .NET 10 (net10.0-windows). Rebuild the
extension against the assemblies of the version you target.
Indicators
| Change | What to do |
|---|---|
CumulativeTradesRequest.GetDataForParticularDate is read-only. |
Create the request for one date with the CumulativeTradesRequest(DateTime date) constructor. |
IIndicatorDataProvider.AddAlert(soundFile, instrument, message, background, foreground) is replaced by an overload with an optional time. |
Rebuild. Calls through the indicator's own AddAlert are not affected. |
Built-in BarTimer: the Location enum has a new first value, Price, so the numeric values of the others moved by one; Size, OffsetX, OffsetY, BackGroundColor and TextColor changed type. Built-in ActiveVolume: Filter changed type. |
Code that uses these settings of the built-in indicators: use the names, not the numbers, of Location, and rebuild. |
Rendering
RenderContext.Flushis removed (it wasprotected internal; only a custom render context is affected).GDIPlusExtensions.ToPenis removed.
Connectors
- The connector settings base types
BaseConnectorSettings<T>(namespaceOFT.Core),BaseMarketDataOnlyConnectorSettings<T>andBasketConnectorSettings<,>are no longer in ATAS.DataFeedsCore, and theBasketConnectorconstructor changed. Order.ExtendedOptionsJsonis removed: use the typed Order.ExtendedOptions (orExtendedOptionsFlags).- The trading statistics groups return parameters, not numbers:
Long,ShortandTotalofIStatisticsParameterGroupare IStatisticsParameter with aValue. SimpleMessageQueueandMultiConnectorMessageQueuehave another base type, andRebateResult.WrongBrokerandWrongBrokerRefCodeare removed.- Connector and statistics interfaces gained members (for example
IDataFeedConnector.IsSupportedCfd): a class that implements them has to add the new members.
Outside the documented API
The network sessions and serializers of Utils.Common.Network moved from byte[] to other buffer types,
AsyncQueue.Pause/Continue and BaseThreadQueue.TryProcessHeartbeat are removed, and so are
StringExtensions.IsAlphaVersion/IsBetaVersion.