
FIXatdl is a comprehensive trading solution that simplifies the process of trading and streamlining data flows. It's designed to help firms manage their trading operations more efficiently.
FIXatdl is built on top of the FIX protocol, which is widely used in the financial industry. By leveraging this existing infrastructure, FIXatdl can easily integrate with existing systems.
The FIXatdl standard is supported by a wide range of financial institutions, including banks and broker-dealers. This support ensures that FIXatdl can be used across the industry.
Related reading: Standard Payment Terms by Industry
Document Structure
A FIXatdl document is structured into four main sections: Meta-data, Parameters, StrategyLayout, and StrategyEdit. Each section plays a crucial role in defining the strategy.
The Meta-data section defines which geographical regions, markets (exchanges), and asset classes the strategy is applicable to. This section is essential in determining the scope of the strategy.
The Parameters section lists out each of the parameters used by the strategy, their data types, constraints, and how they should be represented in the resulting FIX message. This section is critical in defining the inputs and outputs of the strategy.
On a similar theme: Otc Market Data Package
The StrategyLayout section defines the user interface controls to be used for this strategy, how they should be laid out on the screen, and how they map to the parameters described in the previous section. This section ensures that the user interface is intuitive and easy to use.
The StrategyEdit section describes the validation rules to be applied, typically cross-field validations. This section helps ensure that the strategy is executed correctly and efficiently.
The FIXatdl document must validate against the set of XSD schema provided by FPL, which are organized into four categories: Core, Layout, Validation, and Flow.
Structure of
The FIXatdl document structure is based on XML, allowing for easy parsing and processing by computers.
This structure contains a series of elements that define the trading strategy, including its parameters, order types, and algorithmic logic.
Each element in the FIXatdl document has a specific role and follows a specific syntax.
The element is used to define the overall strategy, while the element is used to define the parameters of the strategy.
The element specifies the type of order to be used in the strategy, and the element defines the algorithmic logic of the strategy.
The FIXatdl document can contain multiple elements, including the strategy, parameters, order types, and algorithmic logic, which are all defined using specific elements and syntax.
A different take: Order Management System
Document Structure

A FIXatdl document is structured into four main sections: Meta-data, Parameters, StrategyLayout, and StrategyEdit. These sections work together to define the strategy and its user interface.
The Meta-data section defines which geographical regions, markets, and asset classes the strategy is applicable to. This information is crucial for determining the strategy's scope and limitations.
The Parameters section lists out each of the parameters used by the strategy, including their data types, constraints, and how they should be represented in the resulting FIX message. This section is where you define the strategy's variables and their allowed values.
The StrategyLayout section defines the user interface controls to be used for this strategy, how they should be laid out on the screen, and how they map to the parameters described in the previous section. This section is where you design the user interface for the strategy.
The StrategyEdit section describes the validation rules to be applied, typically cross-field validations. This section is where you define the rules that ensure the strategy's parameters are valid and consistent.
For your interest: Lseg Market Data

Here are the four categories of XSD schema provided by FPL that FIXatdl documents should validate against:
Adoption
FIXatdl adoption has been impressive, with many firms already on board. RealTick Execution Management System, by Eze Software Group, is one example of a firm using the 1.1 standard.
SimCorp Dimension's Order Manager Module is another notable example of a firm supporting FIXatdl. Itiviti's Algorithm Management System, UL AMS, is also version 1.1 compliant.
The Portware Execution Management System and RapidAddition's FIXatdl editor are other examples of firms using the standard. Assimilate Technology's Visual FIX product and Cornerstone Technology's FIXatdl Jump-Start packaged consulting service are also notable examples.
There are also open source Java and .NET implementations, atdl4j and Atdl4net respectively, which are both Version 1.1 compliant. This shows that FIXatdl is not just a proprietary standard, but also has a community-driven aspect to it.
Here are some examples of firms supporting FIXatdl:
- RealTick Execution Management System, by Eze Software Group
- SimCorp Dimension's Order Manager Module
- Itiviti, with their Algorithm Management System, UL AMS
- The Portware Execution Management System
- RapidAddition, with their FIXatdl editor
- Assimilate Technology, with their Visual FIX product
- Cornerstone Technology, with their FIXatdl Jump-Start packaged consulting service, public FIXatdl training workshops and free FIXatdl validation service, AtdlTools
Other UI Standards
The choice of user interface standard for FIXatdl is an interesting one. FIXatdl does not use off-the-shelf user interface standards like Mozilla's XUL or Microsoft's Windows Presentation Foundation.
The authors of the specification chose not to adopt a single platform to maintain complete platform independence, which is a key benefit of FIXatdl. This decision may have limitations, as these platforms offer more sophisticated features.
While the current specification provides an acceptable degree of control over user interface layout, it may not match the level of sophistication offered by other platforms. Further refinement of this part of the specification is likely needed as FIXatdl adoption grows.
It's worth noting that the specification's design choice is a deliberate attempt to avoid platform restrictions. The trade-off between platform independence and the level of sophistication offered by other platforms remains to be seen.
Suggestion: Banking as a Service Baas
Definitions
FIXatdl is a standardized way to define algorithmic trading strategies and parameters. It uses XML elements to describe the attributes of each element, which can be extended for Parameter and Control elements.
The parameters in FIXatdl are used to customize the trading strategy and can include things like order quantity, order price, and time-in-force. Each parameter is defined using the element, which includes attributes for the parameter name, type, and default value.
Here are the different types of parameters in FIXatdl: TypeDescriptionIntegerUsed to specify the order quantityDecimalUsed to specify the order priceStringUsed to specify other types of parametersBooleanUsed to indicate whether a certain condition should be metEnumeratedUsed to limit the legal values to a set of enumerated values
Parameters in FIXatdl can be of different types and can have different attributes such as minimum and maximum values, and corresponding FIX tag numbers.
Expand your knowledge: TD Trump Deutschland
Hierarchy
The hierarchy of elements in FIXatdl is quite complex, but it's essential to understand it to work with the technology. At the root level, the algorithm provider must specify which tag to use to identify individual strategies.
A Strategies element must be provided to start the document, and it can have multiple Strategy elements, each with a unique name. The Strategies element is the top-level element in the hierarchy.
Broaden your view: Quantitative Hedge Fund Strategies
Each strategy can have any number of parameters or validation rules, which are defined via Parameter and StrategyEdit elements, respectively. A strategy can have only one section where the layout of the controls is defined, via the StrategyLayout element.
The Parameter element has child elements, but their hierarchy is complex and not fully described in the article. The StrategyLayout element is responsible for binding GUI controls to parameters and describing their arrangement on the order-entry screen.
The StrategyEdit element is used to describe validation rules, and each StrategyEdit element must contain a single Edit element to describe a particular condition that must be met in order to pass validation.
For your interest: How to Place a Sell Stop Order on Mt4
Atdl Development
Developing ATDL schemas is a collaborative effort that involves several teams working together. Algo developers, FIX specialists, client support, and product teams all play a crucial role in defining the parameters, UI layouts, validation logic, and FIX mappings.
Defining parameters is a key part of ATDL development. This includes specifying inputs like limit price, urgency, duration, or style. For example, the "POV" strategy in the ATDL schema defines two parameters: "PctVol" (percentage of volume) and "FC" (force completion).
UI layouts are also defined in ATDL development. This includes specifying control types like checkboxes, enums, and date pickers. The "POV" strategy defines two controls: a single spinner for "PctVol" and a checkbox for "FC".
Validation logic is another important aspect of ATDL development. This includes specifying range limits, dependencies, and required fields. For example, the "POV" strategy requires both "PctVol" and "FC" parameters to be specified.
FIX mappings are used to link UI inputs to specific FIX tags. The "POV" strategy maps the "PctVol" parameter to FIX tag 27002 and the "FC" parameter to FIX tag 27003.
Here are some key elements of ATDL development:
- Defining parameters, such as limit price, urgency, duration, or style
- Defining UI layouts, including control types (checkbox, enum, date picker)
- Defining validation logic, including range limits, dependencies, and required fields
- Defining FIX mappings, linking UI inputs to specific FIX tags (e.g., 44 for price)
Definitions
In FIXatdl, parameters are used to customize trading strategies. Each parameter is defined using the element, which includes attributes for the parameter name, type, and default value.
A parameter's type determines how it's interpreted by the trading algorithm. For example, an integer parameter might be used to specify the order quantity, while a boolean parameter might be used to indicate whether a certain condition should be met.
For your interest: Determine Credit Card Type from Number

Parameters can have different types, including integer, decimal, string, boolean, and enumerated. The type of the parameter determines how it's interpreted by the trading algorithm.
To describe parameters, FIXatdl provides the Parameter element. Parameter elements are identified by their “name” attribute. There is no limit to the number of parameters a strategy may have as long as each is uniquely identified at the strategy level.
The following attributes are used to describe parameters:
- name: the parameter's name
- xsi:type: the parameter's type, which must be one of the datatypes specified by the FIX Protocol
- fixTag: the FIX tag number associated with the parameter
- use: whether the parameter is required or optional
- minValue and maxValue: the minimum and maximum values that the recipient of an order message is expecting
The following table illustrates the possible values for the tag957Support attribute:
Note that the tag957Support attribute indicates whether the algorithmic order provider supports receipt of parameters via the StrategyParametersGrp component. If it's set to true, the provider can receive parameters via this method. If it's set to false, the provider must use user-defined tags (UDFs) to receive parameters.
Readers also liked: Sentinel One Stock Symbol
Parameter Description
Parameters in FIXatdl are strictly described by the target firm who will receive them, and are communicated via an XML file to various senders.
These parameters are identified by their unique "name" attribute, and there is no limit to the number of parameters a strategy may have as long as each is uniquely identified at the strategy level.
Each parameter has a specific type, such as integer or string, and may have a maximum and minimum value, as seen in the example of the "SampleRate" parameter which can be an integer type with a minimum value of 0 and a maximum value of 100.
The usage of a parameter can be either optional or required, and is specified in the FIXatdl code, for example, the "SampleRate" parameter is optional.
Parameters can also have a corresponding FIX tag number, which is used to identify the parameter in a FIX message, such as the "SampleRate" parameter which corresponds to tag 28000.
For certain parameters, it may be necessary to limit the legal values to a set of enumerated values, which is done by adding child EnumPair elements to the Parameter element, as seen in the example of the "Aggression" parameter which has three possible values: "L", "M", or "H".
Discover more: Bank Card Number Example
Strategy Trading Landscape
The strategy trading landscape is a complex and ever-evolving space, where traders, brokers, and exchanges must communicate effectively to execute trades efficiently. FIXatdl plays a crucial role in standardizing the way trading strategies are defined and communicated.
With FIXatdl, traders can define complex trading strategies that take into account a wide range of variables, such as time, price, and volume. This allows for more informed and efficient trading decisions.
The FIXatdl language includes a set of elements that help define and communicate trading strategies. These elements include the strategy identifier tag, which is used to identify the chosen strategy, and the version identifier tag, which is used to identify the version of the chosen strategy.
Here are some key attributes of the Strategies element in FIXatdl:
By using FIXatdl, traders and brokers can communicate more effectively and efficiently, reducing the need for manual intervention and increasing the speed and efficiency of trading.
Validation and Rules
Validation and rules are crucial components of FIXatdl. FIXatdl defines filtering of strategies based on regions, asset classes, and markets.
Validation rules allow references to parameter values in the evaluation of its Boolean expression. This includes multileg orders, where the values of leg parameters need to be supported in the validation rules. An additional attribute Edit/@legNo is used to indicate a leg number.
For example, a rule for validating a Pairs trade can confirm, without knowing the sequence of the legs, that one leg is a Buy and the other is a Sell. This is achieved by referencing parameter values in the validation rule.
The following table lists the fields of an order which may be referenced in a validation rule:
Validation Rules with FIX Fields
In FIXatdl, several references are made to standard FIX fields, which are used to build validation or flow rules.
The FIXatdl specification states that within an Edit element, attributes field and field2 must refer to either a pre-declared parameter name or a standard FIX tag name.
Recommended read: Aliexpress Selection Standard Tracking
This means that OMS platforms should make standard FIX tags accessible and allow them to be referenced by validation rules.
Some OMS platforms support referencing standard FIX fields, but not all do, and the fields they make accessible are not consistent.
For a small number of fields, referencing standard FIX fields can work, but it's not a reliable solution.
Here is a list of fields of an order that may be referenced in a validation rule:
Validation of Leg Parameters
Validation of Leg Parameters is crucial in ensuring that orders are executed correctly. This involves checking the values of leg parameters in multileg orders.
The validation rules in FIXatdl allow references to parameter values in the evaluation of its Boolean expression. For multileg orders, the values of leg parameters need to be supported in the validation rules.
An additional attribute, Edit/@legNo, is used to indicate a leg number. This is provided to support the validation of leg parameters in multileg orders.

The following example shows a rule for validating a Pairs trade, confirming that one leg is a Buy and the other is a Sell. Without knowing the sequence of the legs, this rule is able to determine the correct leg parameters.
Here's a list of the parameters that can be referenced in a validation rule:
By using the Edit/@legNo attribute, you can create validation rules that accurately check the values of leg parameters in multileg orders. This ensures that orders are executed correctly and reduces the risk of errors.
Vendor and Integration
Different GUI layouts can be defined based on set types of vendor configurations or service levels, allowing for filtering of strategies in a way similar to Regions.
This flexibility is made possible by an XML element defined at the Strategy level, which enables vendors to tailor their strategies to specific needs.
The FIX protocol, leveraged by ATDL, reduces the need for custom development on the client side, making integration across EMS/OMS platforms seamless.
VendorConfig Element attributes include legParameters, which indicates whether a strategy definition is tailored for vendors supporting leg-level parameters, and tag66Support, which indicates support for a common ID in ListID(66).
This common standard enables seamless integration across various EMS/OMS platforms, including Bloomberg EMSX and FlexTrade.
Reduced Integration Overhead
Reduced integration overhead is a significant advantage of using certain technologies. It allows for seamless integration across EMS/OMS platforms like Bloomberg EMSX.
This is because they adhere to a common standard, such as the FIX protocol. By leveraging this standard, they reduce the need for custom development on the client side.
For example, ATDL supports integration with various EMS/OMS platforms.
Discover more: First Direct Standard Variable Rate
Vendor Configurations
Vendor configurations play a crucial role in defining different GUI layouts based on set types of vendor configurations or service levels. This allows for tailored strategies to be created for specific vendors or service levels.
One way to define vendor configurations is through an XML element at the Strategy level, which enables filtering of strategies similar to the Regions element. This XML element allows for the identification of whether an OMS (Order Management System) allows leg parameters or not.
For another approach, see: Banking as a Service Baas
Some vendors' systems support leg parameters, where leg parameters can take different values from leg to leg, while others do not. For vendors that do not support leg parameters, all leg parameters must be repeated with the same value in each leg.
Here's a breakdown of the VendorConfig element attributes:
By understanding and utilizing these vendor configurations, you can create more effective strategies for your vendors or service levels.
Oms Hooks
OMS Hooks allow for a FIXatdl instance to have a direct connection to the OMS, giving it access to environment variables and order parameters not defined in the XML.
This connection enables the FIXatdl instance to use these variables in validation rules or filtering, making the integration process more efficient and accurate.
A FIXatdl instance with OMS Hooks can tap into the OMS's capabilities, streamlining the order interface description and reducing the complexity of the integration process.
By leveraging OMS Hooks, vendors can provide more robust and reliable integration solutions, meeting the needs of their clients and solidifying their position in the market.
You might like: Stock Order Book
Integration with Other Tech

As the financial industry continues to evolve, FIXatdl is poised to play a crucial role in facilitating integration with other technologies.
Machine learning algorithms are increasingly being used in trading to predict market movements and optimize trading strategies, and FIXatdl could play a key role in defining and communicating these machine learning-based strategies.
Blockchain technology is also gaining traction in the financial industry, with potential applications in areas like settlement and clearing. FIXatdl could be used to define and communicate trading strategies that take advantage of these blockchain-based systems.
The integration of FIXatdl with other technologies has the potential to significantly enhance trading efficiency and reduce costs.
Curious to learn more? Check out: Industry Classification Benchmark
Market and Security
In FIXatdl, markets are a crucial element in defining the scope of a trade. The Market Element is used to specify whether a market should be included or excluded from an encompassing list.
The Market Element has two required attributes: @inclusion and @MICCode. The @inclusion attribute is a string that indicates whether the market should be included or excluded, with valid values being the actual values not specified in the provided text.
A market or exchange is identified by its unique ISO 10383 Market Identifier Code (MIC), which is represented by the @MICCode attribute. This code is a string that uniquely identifies a market or exchange.
Market

The Market element is a crucial part of the market and security landscape, and it's essential to understand its attributes.
The Market element has a required attribute called @inclusion, which indicates whether the market should be included or excluded from an encompassing list.
The valid values for @inclusion are not explicitly stated in the provided snippet, but it's implied that it has specific options.
The Market element also has another required attribute called @MICCode, which represents a market or exchange using the ISO 10383 Market Identifier Code (MIC).
Security Type
In the world of markets and securities, understanding the basics of security types is crucial. The SecurityType Element is a fundamental concept that helps determine whether a security should be included or excluded from a list.
The SecurityType Element has two required attributes: inclusion and name. The inclusion attribute indicates whether the security type should be included or excluded, with valid values being a string.
The name attribute, also a string, indicates the type of security. It's essential to note that valid values for the name attribute are equivalent to FIX SecurityType(167) values.
Worth a look: Credit Card Numbers with Security Code
Featured Images: pexels.com


