FixPortalDocsSimulator
Browse documentation

Writing an ATDL strategy

A FIXatdl document describes the algorithm parameters, the controls presented to a trader, and the FIX tags sent to the broker. Keep parameter identity separate from labels and layout.

Required document shape

The simulator validates a FIXatdl 1.1 Strategies document before it accepts an upload. The root needs strategyIdentifierTag; every Strategy needs name, version, and wireValue; and every strategy needs a lay:StrategyLayout containing a lay:StrategyPanel.

Use lay:Control with an xsi:type for a layout control. Do not use a control type such as lay:SingleSpinner as an element name. The minimal fixture below uses the same lay:Control convention as the simulator's parser fixture.

<Strategies xmlns="http://www.fixprotocol.org/FIXatdl-1-1/Core"
            xmlns:lay="http://www.fixprotocol.org/FIXatdl-1-1/Layout"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            strategyIdentifierTag="5001">
  <Strategy name="Example" version="1" wireValue="EXAMPLE" uiRep="Example strategy">
    <Parameter name="Duration" xsi:type="Int_t" fixTag="7001" use="required" />
    <lay:StrategyLayout>
      <lay:StrategyPanel title="Execution">
        <lay:Control ID="duration" xsi:type="lay:TextField_t"
                     parameterRef="Duration" label="Duration (mins)" />
      </lay:StrategyPanel>
    </lay:StrategyLayout>
  </Strategy>
</Strategies>

The simulator's installed parser and schema validator accept this shape. Add namespace declarations for every prefix used by the complete document.

Parameters and controls

Give the strategy and parameters stable identifiers. A parameter reference is used by controls and rules, so changing it is a compatibility change even if the visible label remains the same.

Declare the parameter type, requiredness, FIX tag, constraints, and enum values required by the broker contract. Bind each editable control to one parameter. Layout labels and panels can change without changing the parameter identifier or FIX mapping.

State rules

State rules may enable, disable, show, hide, or validate controls based on other values. Test each branch, including the serialization policy for hidden values: omit, retain, or reset them according to the broker contract.

Review checklist

  • Every parameter reference resolves.
  • Every emitted FIX tag and type matches the broker specification.
  • Defaults satisfy validation.
  • Enum wire values are not confused with display labels.
  • Numeric scale and percentage representation are explicit.
  • State-rule branches are reachable.
  • Strategy and parameter identifiers remain compatible with existing consumers.

Use ATDL to inspect the document and its rendered form before uploading it to the library.

Updated 2026-09-08 · Edit on GitHub