<?xml version="1.0" encoding="utf-8"?>

<Strategy xmlns="http://www.fixprotocol.org/FIXatdl-1-1/Core"
    xmlns:val="http://www.fixprotocol.org/FIXatdl-1-1/Validation"
    xmlns:lay="http://www.fixprotocol.org/FIXatdl-1-1/Layout"
    xmlns:flow="http://www.fixprotocol.org/FIXatdl-1-1/Flow"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.fixprotocol.org/FIXatdl-1-1/Core tt-fixatdl-core-1-1.xsd"
    name="TT_BRACKET" uiRep="TT Bracket" version="15.114.14" providerID="TT" entryFile="algo.so">

    <HideFromUIComponents>
        <UIComponent>Dashboard</UIComponent>
    </HideFromUIComponents>

    <Parameter name="__instr_id" xsi:type="String_t" refValue="OrderInstrumentID" required="true" dir="In" updateable="false"/>

    <Parameter name="__order_quantity" xsi:type="Qty_t" refValue="OrderQty" required="true" dir="In" updateable="true"/>

    <Parameter name="__price" xsi:type="Price_t" refValue="OrderPrice"  required="true" dir="In" updateable="true"/>

    <Parameter name="__side" xsi:type="Int_t" refValue="OrderSide"  required="true" dir="In" updateable="false"/>

    <Parameter name="__account" xsi:type="String_t" refValue="OrderAccount"  required="true" dir="In" updateable="false"/>

    <Parameter name="ParentTIF" xsi:type="Int_t" initValue="eGTC" required="true" dir="In" updateable="false" orderEntryFixtag="16950">
        <EnumPair enumID="eGTC" wireValue="2"/>
        <EnumPair enumID="eDay" wireValue="1"/>
        <EnumPair enumID="eTime" wireValue="7"/>
    </Parameter>

    <Parameter name="ChildTIF" xsi:type="Int_t" refValue="OrderTif" required="true" dir="In" updateable="false" orderEntryFixtag="16903"/>

    <!-- Trigger -->
    <Parameter name="TriggerType" xsi:type="Int_t" initValue="eStop" required="false" dir="In" updateable="false" orderEntryFixtag="16920">
        <EnumPair enumID="eStop" wireValue="1"/>
        <EnumPair enumID="eIT" wireValue="2"/>
    </Parameter>

    <Parameter name="__trigger_price" xsi:type="Price_t" required="false" dir="In" updateable="true"/>

    <Parameter name="TriggerPriceType" xsi:type="Int_t" initValue="eLtp" required="false" dir="In" updateable="false" orderEntryFixtag="16918">
        <EnumPair enumID="eLtp" wireValue="3"/>
        <EnumPair enumID="eBid" wireValue="1"/>
        <EnumPair enumID="eAsk" wireValue="2"/>
        <EnumPair enumID="eSameSide" wireValue="6"/>
        <EnumPair enumID="eOppositeSide" wireValue="7"/>
    </Parameter>

    <Parameter name="IsTrlTrg" xsi:type="Boolean_t" initValue="false"  required="false" dir="In" updateable="false" orderEntryFixtag="16908"/>

    <Parameter name="TriggerTicksAway" xsi:type="Int_t" initValue="3" minValue="1" maxValue="99"  required="false" dir="In" updateable="true" orderEntryFixtag="16919"/>

    <!-- With a Tick -->
    <Parameter name="WithATickType" xsi:type="Int_t" initValue="eQty" required="false" dir="In" updateable="false" orderEntryFixtag="16921">
        <EnumPair enumID="eQty" wireValue="1"/>
        <EnumPair enumID="ePercent" wireValue="2"/>
    </Parameter>

    <Parameter name="WithATick" xsi:type="Qty_t" minValue="0.00000001" initValue="1" required="false" dir="In" updateable="true" orderEntryFixtag="16922"/>

    <!-- Date and Time -->
    <Parameter name="STime" xsi:type="UTCTimestamp_t" required="false" dir="In" updateable="true" orderEntryFixtag="168"/>

    <Parameter name="ETime" xsi:type="UTCTimestamp_t" required="false" dir="In" updateable="true" orderEntryFixtag="126"/>

    <Parameter name="ETimeAct" xsi:type="Int_t" required="false" dir="In" updateable="false" orderEntryFixtag="16906">
        <EnumPair enumID="eCancel" wireValue="1"/>
    </Parameter>

    <Parameter name="BracketOrderType" xsi:type="Int_t" initValue="eLimit" required="true" dir="In" updateable="false" orderEntryFixtag="16901">
        <EnumPair enumID="eLimit" wireValue="0"/>
        <EnumPair enumID="eStopLimit" wireValue="1"/>
        <EnumPair enumID="eStopMarket" wireValue="2"/>
    </Parameter>

    <Parameter name="ProfitTarget" xsi:type="Int_t" initValue="5" minValue="1" required="true" dir="In" updateable="false" orderEntryFixtag="16914"/>
    <Parameter name="StopTarget" xsi:type="Int_t" initValue="5" minValue="1" required="true" dir="In" updateable="false" orderEntryFixtag="16917"/>
    <Parameter name="StopOrderType" xsi:type="Int_t" initValue="eStopLimit" required="true" dir="In" updateable="false" orderEntryFixtag="16916">
        <EnumPair enumID="eStopLimit" wireValue="1"/>
        <EnumPair enumID="eStopMarket" wireValue="2"/>
        <EnumPair enumID="eTTStop" wireValue="3"/>
    </Parameter>
    <Parameter name="BracketStopLimitOffset" xsi:type="Int_t" initValue="1" minValue="-999" maxValue="999" required="true" dir="In" updateable="false" orderEntryFixtag="16902"/>
    <Parameter name="StopLimitOffset" xsi:type="Int_t" initValue="1" minValue="-999" maxValue="999" required="true" dir="In" updateable="false" orderEntryFixtag="16915"/>

     <!-- SUB-SECTION  TTStop Params -->
    <Parameter name="TTStopTriggerPriceType" xsi:type="Int_t" initValue="eLtp" required="true" dir="In" updateable="false" orderEntryFixtag="16923">
        <EnumPair enumID="eLtp" wireValue="3"/>
        <EnumPair enumID="eBid" wireValue="1"/>
        <EnumPair enumID="eAsk" wireValue="2"/>
        <EnumPair enumID="eSameSide" wireValue="6"/>
        <EnumPair enumID="eOppositeSide" wireValue="7"/>
    </Parameter>

    <Parameter name="TTStopIsTrlTrg" xsi:type="Boolean_t" initValue="false" required="false" dir="In" updateable="false"  orderEntryFixtag="16924"/>

    <Parameter name="TTStopTriggerTicksAway" xsi:type="Int_t" initValue="3" minValue="1" maxValue="99" required="false" dir="In" updateable="true" orderEntryFixtag="16925"/>

    <Parameter name="TTStopTriggerQtyType" xsi:type="Int_t" initValue="eQty" required="false" dir="In" updateable="false" orderEntryFixtag="16934">
        <EnumPair enumID="eQty" wireValue="1"/>
        <EnumPair enumID="ePercentage" wireValue="2"/>
    </Parameter>

    <Parameter name="TTStopTriggerQtyCompare" xsi:type="Int_t" initValue="eGTE" required="false" dir="In" updateable="false" orderEntryFixtag="16935">
        <EnumPair enumID="eLTE" wireValue="3"/>
        <EnumPair enumID="eGTE" wireValue="5"/>
    </Parameter>

    <Parameter name="TTStopTriggerQty" xsi:type="Qty_t" minValue="0.00000001" initValue="1" required="false" dir="In" updateable="true" orderEntryFixtag="16936"/>

    <Parameter name="TTStopSecondConditionIsOn" xsi:type="Boolean_t" initValue="false" required="false" dir="In" updateable="false" orderEntryFixtag="16951"/>

    <Parameter name="TTStopSecondTriggerPriceType" xsi:type="Int_t" initValue="eLtp" required="true" dir="In" updateable="false" orderEntryFixtag="16952">
        <EnumPair enumID="eLtp" wireValue="3"/>
        <EnumPair enumID="eBid" wireValue="1"/>
        <EnumPair enumID="eAsk" wireValue="2"/>
        <EnumPair enumID="eSameSide" wireValue="6"/>
        <EnumPair enumID="eOppositeSide" wireValue="7"/>
    </Parameter>

    <Parameter name="TTStopSecondTriggerTicksAway" xsi:type="Int_t" initValue="3" minValue="1" maxValue="99" required="false" dir="In" updateable="true" orderEntryFixtag="16954"/>

    <Parameter name="TTStopSecondTriggerQtyType" xsi:type="Int_t" initValue="eQty" required="false" dir="In" updateable="false" orderEntryFixtag="16955">
        <EnumPair enumID="eQty" wireValue="1"/>
        <EnumPair enumID="ePercentage" wireValue="2"/>
    </Parameter>

    <Parameter name="TTStopSecondTriggerQtyCompare" xsi:type="Int_t" initValue="eGTE" required="false" dir="In" updateable="false" orderEntryFixtag="16956">
        <EnumPair enumID="eLTE" wireValue="3"/>
        <EnumPair enumID="eGTE" wireValue="5"/>
    </Parameter>

    <Parameter name="TTStopSecondTriggerQty" xsi:type="Qty_t" minValue="0.00000001" initValue="1" required="false" dir="In" updateable="true" orderEntryFixtag="16957"/>

    <Parameter name="TTStopTriggerLTPReset" xsi:type="Boolean_t" initValue="false" required="false" dir="In" updateable="false" orderEntryFixtag="16926"/>

    <Parameter name="TTStopTriggeredOrderType" xsi:type="Int_t" initValue="eLimit" required="true" dir="In" updateable="false" orderEntryFixtag="16938">
        <EnumPair enumID="eMkt" wireValue="1"/>
        <EnumPair enumID="eLimit" wireValue="2"/>
        <EnumPair enumID="eMLM" wireValue="21"/>
    </Parameter>

    <Parameter name="TTStopTriggeredOrderPrice" xsi:type="Price_t" required="false" dir="In" updateable="true" orderEntryFixtag="16939"/>

    <Parameter name="TTStopPayup" xsi:type="Int_t" minValue="-999" maxValue="999" initValue="1" required="false" dir="In" updateable="true" orderEntryFixtag="16941"/>

    <Parameter name="TTStopLimitPriceType" xsi:type="Int_t" initValue="eTrigger" required="false" dir="In" updateable="false" orderEntryFixtag="16927">
        <EnumPair enumID="eLtp" wireValue="3"/>
        <EnumPair enumID="eBid" wireValue="1"/>
        <EnumPair enumID="eAsk" wireValue="2"/>
        <EnumPair enumID="eTrigger" wireValue="4"/>
        <EnumPair enumID="eSameSide" wireValue="6"/>
        <EnumPair enumID="eOppositeSide" wireValue="7"/>
    </Parameter>

    <Parameter name="TTStopWithATickType" xsi:type="Int_t" initValue="eQty" required="false" dir="In" updateable="false" orderEntryFixtag="16928">
        <EnumPair enumID="eQty" wireValue="1"/>
        <EnumPair enumID="ePercent" wireValue="2"/>
    </Parameter>

    <Parameter name="TTStopWithATick" xsi:type="Qty_t" minValue="0.00000001" initValue="1" required="false" dir="In" updateable="true" orderEntryFixtag="16929"/>

    <Parameter name="TTStopNoImplies" xsi:type="Boolean_t" initValue="false" required="false" dir="In" updateable="false" orderEntryFixtag="16965"/>

    <Parameter name="AutoResubExpiredGTD" xsi:type="Boolean_t" initValue="false"  required="false" dir="In" updateable="false" orderEntryFixtag="16949"/>

    <Parameter name="WaitingOption" xsi:type="Int_t" initValue="eNow" required="true" dir="In" updateable="false" orderEntryFixtag="16961">
        <EnumPair enumID="eNow"        wireValue="0"/>
        <EnumPair enumID="eTime"       wireValue="1"/>
        <EnumPair enumID="ePreOpen" wireValue="2"/>
        <EnumPair enumID="eOpen"      wireValue="3"/>
    </Parameter>

    <Parameter name="TTStopChildTIFOverride" xsi:type="Int_t" initValue="eDay" required="false" dir="In" updateable="false" orderEntryFixtag="16962">
        <EnumPair enumID="eDay" wireValue="1"/>
        <EnumPair enumID="eGTC" wireValue="2"/>
        <EnumPair enumID="eFOK" wireValue="5"/>
        <EnumPair enumID="eIOC" wireValue="4"/>
    </Parameter>

    <lay:StrategyLayout>
        <lay:StrategyPanel class="main-panel" orientation="VERTICAL">
            <lay:Control ID="OrderDetailsLabel" label="Order details" class="atdl-panel-title" xsi:type="lay:Label_t"/>
            <lay:StrategyPanel orientation="VERTICAL">
                <lay:Control ID="BracketOrderType_ctrl" label="Initial order type" parameterRef="BracketOrderType"
                    xsi:type="lay:DropDownList_t">
                    <lay:ListItem enumID="eLimit" uiRep="Limit"/>
                    <lay:ListItem enumID="eStopLimit" uiRep="Stop Limit"/>
                    <lay:ListItem enumID="eStopMarket" uiRep="Stop Market"/>
                </lay:Control>
                <lay:StrategyPanel name="BracketPayupInput" orientation="HORIZONTAL" indent="true">
                    <flow:StateRule visible="true">
                        <val:Edit field="BracketOrderType_ctrl" operator="EQ" value="eStopLimit"/>
                    </flow:StateRule>
                    <lay:Control ID="BracketStopLimitOffset_ctrl" label="Payup ticks" parameterRef="BracketStopLimitOffset"
                        xsi:type="lay:SingleSpinner_t">
                    </lay:Control>
                </lay:StrategyPanel>
            </lay:StrategyPanel>
            <lay:StrategyPanel orientation="VERTICAL">
                <lay:Control ID="ProfitTarget_ctrl" label="Profit target" parameterRef="ProfitTarget"
                    xsi:type="lay:SingleSpinner_t">
                </lay:Control>
                <lay:Control ID="StopTarget_ctrl" label="Stop loss" parameterRef="StopTarget"
                    xsi:type="lay:SingleSpinner_t">
                </lay:Control>
            </lay:StrategyPanel>

            <lay:StrategyPanel orientation="VERTICAL" indent="true">
                <lay:StrategyPanel orientation="VERTICAL">
                    <lay:Control ID="StopOrderType_ctrl" label="Stop order type" parameterRef="StopOrderType"
                        xsi:type="lay:DropDownList_t">
                        <lay:ListItem enumID="eStopLimit" uiRep="Stop Limit"/>
                        <lay:ListItem enumID="eStopMarket" uiRep="Stop Market"/>
                        <lay:ListItem enumID="eTTStop"        uiRep="TT Stop"/>
                    </lay:Control>
                    <lay:StrategyPanel name="PayupTicksPanel" orientation="HORIZONTAL" indent="true">
                        <flow:StateRule visible="true">
                            <val:Edit field="StopOrderType_ctrl" operator="EQ" value="eStopLimit"/>
                        </flow:StateRule>
                        <lay:Control ID="StopLimitOffset_ctrl" label="Payup ticks" parameterRef="StopLimitOffset"
                            xsi:type="lay:SingleSpinner_t">
                        </lay:Control>
                    </lay:StrategyPanel>
                </lay:StrategyPanel>

                <lay:StrategyPanel orientation="VERTICAL" indent="true">
                    <!-- TT Stop with a Tick (DISTINCT from the parent With a Tick), only one will be visible -->
                    <lay:StrategyPanel name="TTStopWithATickPanel" orientation="HORIZONTAL">
                        <flow:StateRule visible="true">
                            <val:Edit field="StopOrderType_ctrl" operator="EQ" value="eTTStop"/>
                        </flow:StateRule>
                        <lay:StrategyPanel orientation="HORIZONTAL">
                            <lay:Control ID="TTStopHasWAT_ctrl" label="With a Tick" initValue="false" xsi:type="lay:CheckBox_t"> </lay:Control>
                        </lay:StrategyPanel>
                        <lay:StrategyPanel name="TTStopWatContainer" orientation="HORIZONTAL">
                            <flow:StateRule visible="true">
                                <val:Edit field="TTStopHasWAT_ctrl" operator="EQ" value="true"/>
                            </flow:StateRule>
                            <lay:Control ID="TTStopWAT_ctrl" parameterRef="TTStopWithATick" xsi:type="lay:SingleSpinner_t">
                            </lay:Control>
                            <lay:Control ID="TTStopWATType_ctrl" parameterRef="TTStopWithATickType" xsi:type="lay:DropDownList_t" initValue="eQty">
                                <lay:ListItem enumID="eQty" uiRep="Qty"/>
                                <lay:ListItem enumID="ePercent" uiRep="%"/>
                            </lay:Control>
                        </lay:StrategyPanel>
                    </lay:StrategyPanel>

                    <!-- Parent With a Tick -->
                    <lay:StrategyPanel name="WithATickPanel" orientation="HORIZONTAL">
                        <flow:StateRule visible="true">
                            <val:Edit field="StopOrderType_ctrl" operator="EQ" value="eStopLimit"/>
                        </flow:StateRule>

                        <lay:StrategyPanel orientation="HORIZONTAL">
                            <lay:Control ID="IsWithATick_ctrl" label="With a Tick" initValue="false"
                                xsi:type="lay:CheckBox_t"> </lay:Control>
                        </lay:StrategyPanel>
                        <lay:Control ID="WithATick_ctrl" parameterRef="WithATick"
                            xsi:type="lay:SingleSpinner_t">
                            <flow:StateRule visible="true">
                                <val:Edit field="IsWithATick_ctrl" operator="EQ" value="true"/>
                            </flow:StateRule>
                        </lay:Control>
                        <lay:Control ID="WithATickType_ctrl" parameterRef="WithATickType"
                            xsi:type="lay:DropDownList_t" initValue="eQty">
                            <flow:StateRule visible="true">
                                <val:Edit field="IsWithATick_ctrl" operator="EQ" value="true"/>
                            </flow:StateRule>
                            <lay:ListItem enumID="eQty" uiRep="Qty"/>
                            <lay:ListItem enumID="ePercent" uiRep="%"/>
                        </lay:Control>
                    </lay:StrategyPanel>
                </lay:StrategyPanel>
            </lay:StrategyPanel>
            <lay:Control ID="AutoResub"
                label="Auto-Resubmit Upon GTD Expiry"
                initValue="false"
                parameterRef="AutoResubExpiredGTD"
                xsi:type="lay:CheckBox_t" />
        </lay:StrategyPanel>

        <lay:StrategyPanel name="TTStopSettingsPanel" orientation="VERTICAL">
            <flow:StateRule visible="true">
                <val:Edit field="StopOrderType_ctrl" operator="EQ" value="eTTStop"/>
            </flow:StateRule>
            <lay:Control ID="TTStopSectionLabel_ctrl" label="TT Stop settings" class="atdl-panel-title" xsi:type="lay:Label_t"/>
            <!-- TT Stop Limit Panel (dynamically exposed if Stop Order Type == TT Stop) -->
            <!-- TT Stop: Trigger price type -->
            <lay:StrategyPanel orientation="HORIZONTAL">
                <lay:Control ID="TTStopTriggerPriceType_ctrl_label" xsi:type="lay:Label_t" label="Price Type"/>
                <lay:Control ID="TTStopTriggerPriceType_ctrl" parameterRef="TTStopTriggerPriceType" xsi:type="lay:DropDownList_t">
                    <lay:ListItem enumID="eLtp" uiRep="LTP"/>
                    <lay:ListItem enumID="eBid" uiRep="Bid"/>
                    <lay:ListItem enumID="eAsk" uiRep="Ask"/>
                    <lay:ListItem enumID="eSameSide" uiRep="Same Side"/>
                    <lay:ListItem enumID="eOppositeSide" uiRep="Opposite Side"/>
                </lay:Control>
                <lay:Control ID="TTStopTriggerLTPReset_ctrl" parameterRef="TTStopTriggerLTPReset" column="4" label="Reset" xsi:type="lay:CheckBox_t">
                    <flow:StateRule visible="true">
                        <val:Edit field="TTStopTriggerPriceType_ctrl" operator="EQ" value="eLtp"/>
                    </flow:StateRule>
                </lay:Control>
            </lay:StrategyPanel>

            <!-- TT Stop: Optional qty trigger condition -->
            <lay:StrategyPanel name="TTStopTriggerQtyPanel" orientation="HORIZONTAL">
                <flow:StateRule enabled="true">
                    <val:Edit field="TTStopTrailStopAllowed" operator="NE" value="true"/>
                </flow:StateRule>

                <lay:Control ID="TTStopTriggerQtyType_ctrl" parameterRef="TTStopTriggerQtyType" xsi:type="lay:DropDownList_t">
                    <lay:ListItem enumID="eQty" uiRep="Qty"/>
                    <lay:ListItem enumID="ePercentage" uiRep="%"/>
                </lay:Control>

                <lay:Control ID="TTStopTriggerQtyCompare_ctrl" parameterRef="TTStopTriggerQtyCompare" xsi:type="lay:DropDownList_t">
                    <lay:ListItem enumID="eLTE" uiRep="&lt;="/>
                    <lay:ListItem enumID="eGTE" uiRep="&gt;="/>
                </lay:Control>

                <lay:Control ID="TTStopTriggerQty_ctrl" parameterRef="TTStopTriggerQty" xsi:type="lay:SingleSpinner_t"/>
            </lay:StrategyPanel>

            <!-- TT Stop: Trailing options -->
            <lay:StrategyPanel name="TTStopTrailPanel" orientation="HORIZONTAL">
                <lay:Control ID="TTStopTrailStopAllowed" parameterRef="TTStopIsTrlTrg" label="Trail (ticks)" xsi:type="lay:CheckBox_t"/>
                <lay:Control ID="TTStopTrailStop_ctrl" parameterRef="TTStopTriggerTicksAway" xsi:type="lay:SingleSpinner_t">
                    <flow:StateRule visible="true">
                        <val:Edit field="TTStopTrailStopAllowed" operator="EQ" value="true"/>
                    </flow:StateRule>
                </lay:Control>
            </lay:StrategyPanel>

            <lay:Control ID="NoImplies_ctrl" parameterRef="TTStopNoImplies" label="Exclude Implied Prices"
                         xsi:type="lay:CheckBox_t"/>

            <lay:Control ID="TTStopSecondConditionOn" parameterRef="TTStopSecondConditionIsOn" label="Second Condition" xsi:type="lay:CheckBox_t"/>
            <lay:StrategyPanel name="TTStopSecondConditionalControlPanel" orientation="VERTICAL" indent="true">
                <flow:StateRule visible="true">
                    <val:Edit field="TTStopSecondConditionOn" operator="NE" value="false"/>
                </flow:StateRule>
                <lay:StrategyPanel name="TTStopSecondCond" orientation="HORIZONTAL">
                    <lay:Control ID="TTStopSecondTriggerPriceType_ctrl_label" xsi:type="lay:Label_t" label="PriceType"/>
                    <lay:Control ID="TTStopSecondTriggerPriceType_ctrl" parameterRef="TTStopSecondTriggerPriceType"
                                 xsi:type="lay:DropDownList_t">
                        <lay:ListItem enumID="eLtp" uiRep="LTP"/>
                        <lay:ListItem enumID="eBid" uiRep="Bid"/>
                        <lay:ListItem enumID="eAsk" uiRep="Ask"/>
                        <lay:ListItem enumID="eSameSide" uiRep="Same Side"/>
                        <lay:ListItem enumID="eOppositeSide" uiRep="Opposite Side"/>
                    </lay:Control>
                </lay:StrategyPanel>

                <!-- conditional qty trigger -->
                <lay:StrategyPanel name="TTStopSecondTriggerQtyPanel" orientation="HORIZONTAL">
                    <lay:Control ID="TTStopSecondTriggerQtyType_ctrl" parameterRef="TTStopSecondTriggerQtyType" xsi:type="lay:DropDownList_t">
                        <lay:ListItem enumID="eQty" uiRep="Qty"/>
                        <lay:ListItem enumID="ePercentage" uiRep="%"/>
                    </lay:Control>

                    <lay:Control ID="TTStopSecondTriggerQtyCompare_ctrl" parameterRef="TTStopSecondTriggerQtyCompare"
                                 xsi:type="lay:DropDownList_t">
                        <lay:ListItem enumID="eLTE" uiRep="&lt;="/>
                        <lay:ListItem enumID="eGTE" uiRep="&gt;="/>
                    </lay:Control>

                    <lay:Control ID="TTStopSecondTriggerQty_ctrl" parameterRef="TTStopSecondTriggerQty" xsi:type="lay:SingleSpinner_t"/>
                </lay:StrategyPanel>
            </lay:StrategyPanel>

            <!-- TT Stop: Triggered order type -->
            <lay:StrategyPanel name="TTStopOrderTypePanel" orientation="HORIZONTAL">
                <lay:Control ID="TTStopExchOrderType_ctrl_label" xsi:type="lay:Label_t" label="On trigger, submit"/>
                <lay:Control ID="TTStopExchOrderType_ctrl" parameterRef="TTStopTriggeredOrderType" xsi:type="lay:DropDownList_t">
                    <lay:ListItem enumID="eMkt" uiRep="Market order"/>
                    <lay:ListItem enumID="eLimit" uiRep="Limit order"/>
                    <lay:ListItem enumID="eMLM" uiRep="MLM order"/>
                </lay:Control>
                <lay:Control ID="TTStopChildTIFOverride_ctrl" parameterRef="TTStopChildTIFOverride" xsi:type="lay:DropDownList_t">
                    <lay:ListItem enumID="eDay" uiRep="Day"/>
                    <lay:ListItem enumID="eGTC" uiRep="GTC"/>
                    <lay:ListItem enumID="eFOK" uiRep="FOK"/>
                    <lay:ListItem enumID="eIOC" uiRep="IOC"/>
                </lay:Control>
            </lay:StrategyPanel>

            <!-- TT Stop: Triggered order price (relevant only for Limit or MLM type) -->
            <lay:StrategyPanel name="TTStopLimitPriceTypePanel" orientation="HORIZONTAL">
                <flow:StateRule visible="true">
                    <val:Edit field="TTStopExchOrderType_ctrl" operator="NE" value="eMkt"/>
                </flow:StateRule>

                <!-- Fixed Price or Relative Price  -->
                <lay:StrategyPanel>
                    <lay:Control ID="TTStopLimitPriceType_ctrl" xsi:type="lay:DropDownList_t">
                        <lay:ListItem enumID="eOffset" uiRep="Payup"/>
                        <lay:ListItem enumID="ePrice" uiRep="Limit Price"/>
                    </lay:Control>
                </lay:StrategyPanel>

                <lay:StrategyPanel name="TTStopLimitPricePanel" orientation="VERTICAL">
                    <!-- Fixed price -->
                    <lay:StrategyPanel name="TTStopLimitPricePanel_1" orientation="HORIZONTAL">
                        <flow:StateRule visible="true">
                            <val:Edit field="TTStopLimitPriceType_ctrl" operator="EQ" value="ePrice"/>
                        </flow:StateRule>
                        <lay:Control ID="TTStopLimitPrice_ctrl" parameterRef="TTStopTriggeredOrderPrice" xsi:type="lay:SingleSpinner_t"> </lay:Control>
                    </lay:StrategyPanel>
                    <!-- Relative price -->
                    <lay:StrategyPanel name="TTStopLimitOffsetPanel" orientation="HORIZONTAL">
                        <flow:StateRule visible="true">
                            <val:Edit field="TTStopLimitPriceType_ctrl" operator="EQ" value="eOffset"/>
                        </flow:StateRule>
                        <lay:Control ID="TTStopLimitPriceOffset_ctrl" parameterRef="TTStopPayup" xsi:type="lay:SingleSpinner_t"> </lay:Control>
                        <lay:Control ID="TTStopLimitPriceOffsetType_ctrl" parameterRef="TTStopLimitPriceType" xsi:type="lay:DropDownList_t">
                            <lay:ListItem enumID="eLtp" uiRep="LTP"/>
                            <lay:ListItem enumID="eBid" uiRep="Bid"/>
                            <lay:ListItem enumID="eAsk" uiRep="Ask"/>
                            <lay:ListItem enumID="eTrigger" uiRep="Trigger"/>
                            <lay:ListItem enumID="eSameSide" uiRep="Same Side"/>
                            <lay:ListItem enumID="eOppositeSide" uiRep="Opposite Side"/>
                        </lay:Control>
                    </lay:StrategyPanel>
                </lay:StrategyPanel>
            </lay:StrategyPanel>
        </lay:StrategyPanel>
        
        <!-- Start and End Time -->
        <lay:StrategyPanel>
            <lay:Control ID="TimingSectionLabel_ctrl" class="atdl-panel-title" label="Precondition details" xsi:type="lay:Label_t"/>
            <!-- Trigger -->
            <lay:StrategyPanel orientation="HORIZONTAL">
                <lay:Control ID="Trigger" label="Trigger" initValue="false"
                    xsi:type="lay:CheckBox_t"> </lay:Control>
                <lay:Control ID="TriggerOrderType_ctrl" parameterRef="TriggerType"
                    xsi:type="lay:DropDownList_t">
                    <flow:StateRule visible="true">
                        <val:Edit field="Trigger" operator="EQ" value="true"/>
                    </flow:StateRule>
                    <lay:ListItem enumID="eStop" uiRep="Stop"/>
                    <lay:ListItem enumID="eIT" uiRep="If Touched"/>
                </lay:Control>
            </lay:StrategyPanel>
            <lay:StrategyPanel name="TriggerPanel" indent="true">
                <flow:StateRule visible="true">
                    <val:Edit field="Trigger" operator="EQ" value="true"/>
                </flow:StateRule>
                <!-- Trigger price -->
                <lay:StrategyPanel name="TriggerPricePanel" orientation="HORIZONTAL">
                    <lay:Control ID="TriggerPriceLabel_ctrl" label="Trigger price"
                                 xsi:type="lay:Label_t"/>
                    <lay:Control ID="TriggerPrice_ctrl" parameterRef="__trigger_price"
                        xsi:type="lay:SingleSpinner_t">
                        <flow:StateRule visible="true">
                            <val:Edit field="TrailStopAllowed" operator="EQ" value="false"/>
                        </flow:StateRule>
                    </lay:Control>
                    <lay:Control ID="TriggerPriceType_ctrl" parameterRef="TriggerPriceType"
                        xsi:type="lay:DropDownList_t">
                        <lay:ListItem enumID="eLtp" uiRep="LTP"/>
                        <lay:ListItem enumID="eBid" uiRep="Bid"/>
                        <lay:ListItem enumID="eAsk" uiRep="Ask"/>
                        <lay:ListItem enumID="eSameSide" uiRep="Same Side"/>
                        <lay:ListItem enumID="eOppositeSide" uiRep="Opposite Side"/>
                    </lay:Control>
                </lay:StrategyPanel>
                <!-- Trailing -->
                <lay:StrategyPanel name="TrailStopPanel" orientation="HORIZONTAL">
                    <lay:Control ID="TrailStopAllowed" parameterRef="IsTrlTrg" label="Trail (ticks)"
                                 xsi:type="lay:CheckBox_t"> </lay:Control>
                    <lay:Control ID="TrailStop_ctrl" parameterRef="TriggerTicksAway"
                                 xsi:type="lay:SingleSpinner_t">
                        <flow:StateRule visible="true">
                            <val:Edit field="TrailStopAllowed" operator="EQ" value="true"/>
                        </flow:StateRule>
                    </lay:Control>
                </lay:StrategyPanel>
            </lay:StrategyPanel>
            <lay:StrategyPanel orientation="HORIZONTAL">
                <lay:Control ID="Start_label" label="Start"
                             xsi:type="lay:Label_t"/>
                <lay:Control ID="Start" xsi:type="lay:DropDownList_t" parameterRef="WaitingOption" column="3" initValue="eNow">
                    <lay:ListItem enumID="eNow" uiRep="Now"/>
                    <lay:ListItem enumID="eTime" uiRep="Time"/>
                    <lay:ListItem enumID="ePreOpen" uiRep="Pre-Open"/>
                    <lay:ListItem enumID="eOpen" uiRep="Open"/>
                </lay:Control>
                <lay:Control ID="StartTime_ctrl" parameterRef="STime" xsi:type="lay:Clock_t"
                             initValueMode="1">
                    <flow:StateRule visible="true">
                        <val:Edit field="Start" operator="EQ" value="eTime"/>
                    </flow:StateRule>
                </lay:Control>
            </lay:StrategyPanel>

            <lay:StrategyPanel orientation="HORIZONTAL">
                <lay:Control ID="End_label" label="End"
                             xsi:type="lay:Label_t"/>
                <lay:Control ID="End" xsi:type="lay:DropDownList_t" column="3" parameterRef="ParentTIF" initValue="eGTC">
                    <lay:ListItem enumID="eGTC" uiRep="GTC"/>
                    <lay:ListItem enumID="eTime" uiRep="Time"/>
                    <lay:ListItem enumID="eDay" uiRep="Day"/>
                </lay:Control>
                <lay:Control ID="EndTime_ctrl" parameterRef="ETime" xsi:type="lay:Clock_t"
                             initValueMode="1">
                    <flow:StateRule visible="true">
                        <val:Edit field="End" operator="EQ" value="eTime"/>
                    </flow:StateRule>
                </lay:Control>
            </lay:StrategyPanel>

            <lay:StrategyPanel name="EndTimeActionPanel" orientation="HORIZONTAL">
                <flow:StateRule visible="true">
                    <val:Edit field="End" operator="EQ" value="eTime"/>
                </flow:StateRule>
                <lay:Control ID="EndTimeAction_ctrl" parameterRef="ETimeAct"
                             label="At End Action" xsi:type="lay:DropDownList_t" initValue="eCancel">
                    <lay:ListItem enumID="eCancel" uiRep="Cancel"/>
                </lay:Control>
            </lay:StrategyPanel>
        </lay:StrategyPanel>
    </lay:StrategyLayout>

    <val:StrategyEdit errorMessage="Order Quantity must be greater than 0">
        <val:Edit logicOperator="AND">
            <val:Edit field="__order_quantity" operator="NE" value=""/>
            <val:Edit field="__order_quantity" operator="GT" value="0"/>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Trigger Price must be set">
        <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="TriggerPriceType" operator="NE" value=""/>
                <val:Edit field="TriggerType" operator="NE" value=""/>
                <val:Edit field="__trigger_price" operator="NE" value=""/>
            </val:Edit>
            <val:Edit logicOperator="AND">
                <val:Edit field="TriggerPriceType" operator="EQ" value=""/>
                <val:Edit field="TriggerType" operator="EQ" value=""/>
            </val:Edit>
            <val:Edit field="IsTrlTrg" operator="EQ" value="true"/>
        </val:Edit>
    </val:StrategyEdit>

    <!-- Try to handle the ItsTrlTry undefined issue                      -->
    <!-- Note: IsTrlTry is defined only under Trigger is defined          -->
    <val:StrategyEdit errorMessage="Trail (ticks) must be between 1 and 500.">
        <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="IsTrlTrg" operator="EQ" value="true"/>
                <val:Edit field="TriggerPriceType" operator="NE" value=""/>
                <val:Edit field="TriggerType" operator="NE" value=""/>
                <val:Edit field="TriggerTicksAway" operator="GE" value="1"/>
                <val:Edit field="TriggerTicksAway" operator="LE" value="500"/>
            </val:Edit>
            <val:Edit logicOperator="AND">
                <val:Edit field="IsTrlTrg" operator="EQ" value=""/>
                <val:Edit field="TriggerPriceType" operator="EQ" value=""/>
                <val:Edit field="TriggerType" operator="EQ" value=""/>
            </val:Edit>
            <val:Edit logicOperator="AND">
                <val:Edit field="IsTrlTrg" operator="EQ" value="false"/>
                <val:Edit field="TriggerPriceType" operator="NE" value=""/>
                <val:Edit field="TriggerType" operator="NE" value=""/>
            </val:Edit>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="With a Tick quantity must be greater than 0">
        <val:Edit logicOperator="OR">
            <val:Edit field="WithATickType" operator="NE" value="1"/>
            <val:Edit logicOperator="AND">
                <val:Edit field="WithATickType" operator="EQ" value="1"/>
                <val:Edit field="WithATick" operator="NE" value=""/>
                <val:Edit field="WithATick" operator="GT" value="0"/>
            </val:Edit>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="With a Tick percentage must be positive">
        <val:Edit logicOperator="OR">
            <val:Edit field="WithATickType" operator="NE" value="2"/>
            <val:Edit logicOperator="AND">
                <val:Edit field="WithATickType" operator="EQ" value="2"/>
                <val:Edit field="WithATick" operator="NE" value=""/>
                <val:Edit field="WithATick" operator="GT" value="0"/>
            </val:Edit>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Start Time must precede End Time.">
        <val:Edit logicOperator="OR">
            <val:Edit field="STime" operator="EQ" value=""/>
            <val:Edit field="ETime" operator="EQ" value=""/>
            <val:Edit field="STime" operator="LT" field2="ETime"/>
        </val:Edit>
    </val:StrategyEdit>

    <!-- Child TT Stop input validations -->
    <!-- Note: TT Stop fields will have empty values if the stop order type is NOT TT Stop, and the TT Stop panel is hidden -->

   <val:StrategyEdit errorMessage="Child TT Stop: Trail (ticks) must be between 1 and 500.">
       <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="TTStopIsTrlTrg" operator="EQ" value="true"/>
                <val:Edit field="TTStopTriggerTicksAway" operator="GE" value="1"/>
                <val:Edit field="TTStopTriggerTicksAway" operator="LE" value="500"/>
            </val:Edit>
            <val:Edit field="TTStopIsTrlTrg" operator="EQ" value="false"/>
            <val:Edit field="TTStopIsTrlTrg" operator="EQ" value=""/>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Child TT Stop: Limit Offset must be between -999 and 999.">
        <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="TTStopLimitPriceType" operator="NE" value=""/>
                <val:Edit field="TTStopPayup" operator="GE" value="-999"/>
                <val:Edit field="TTStopPayup" operator="LE" value="999"/>
                <val:Edit field="TTStopPayup" operator="NE" value=""/>
            </val:Edit>
            <val:Edit field="TTStopTriggeredOrderType" operator="EQ" value="1"/>
            <val:Edit field="TTStopTriggeredOrderType" operator="EQ" value=""/>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Child TT Stop: Order Price must be set">
        <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="TTStopTriggeredOrderType" operator="NE" value="1"/>
                <val:Edit field="TTStopLimitPriceType" operator="EQ" value=""/>
                <val:Edit field="TTStopTriggeredOrderPrice" operator="NE" value=""/>
            </val:Edit>
            <val:Edit logicOperator="AND">
                <val:Edit field="TTStopTriggeredOrderType" operator="NE" value="1"/>
                <val:Edit field="TTStopLimitPriceType" operator="NE" value=""/>
                <val:Edit field="TTStopTriggeredOrderPrice" operator="EQ" value=""/>
            </val:Edit>
            <val:Edit field="TTStopTriggeredOrderType" operator="EQ" value="1"/>
            <val:Edit field="TTStopTriggeredOrderType" operator="EQ" value=""/>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Child TT Stop: Trigger quantity on percentage must use >=">
        <val:Edit logicOperator="OR">
            <val:Edit field="TTStopTriggerQtyType" operator="EQ" value=""/>
            <val:Edit field="TTStopTriggerQtyType" operator="NE" value="2"/>
            <val:Edit logicOperator="AND">
                <val:Edit field="TTStopTriggerQtyType" operator="EQ" value="2"/>
                <val:Edit field="TTStopTriggerQtyCompare" operator="EQ" value="5"/>
            </val:Edit>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Child TT Stop: Child time in force is not compatible with parent day order">
        <val:Edit logicOperator="OR">
            <val:Edit field="TTStopChildTIFOverride" operator="EQ" value=""/>
            <val:Edit field="ParentTIF" operator="EQ" value="7"/>
            <val:Edit field="ParentTIF" operator="EQ" value="2"/>
            <val:Edit logicOperator="AND">
                <val:Edit field="ParentTIF" operator="EQ" value="1"/>
                <val:Edit logicOperator="OR">
                    <val:Edit field="TTStopChildTIFOverride" operator="EQ" value="1"/>
                    <val:Edit field="TTStopChildTIFOverride" operator="EQ" value="4"/>
                    <val:Edit field="TTStopChildTIFOverride" operator="EQ" value="5"/>
                </val:Edit>
            </val:Edit>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Child time in force is not compatible with parent day order">
        <val:Edit logicOperator="OR">
            <val:Edit field="ParentTIF" operator="EQ" value="7"/>
            <val:Edit field="ParentTIF" operator="EQ" value="2"/>
            <val:Edit logicOperator="AND">
                <val:Edit field="ParentTIF" operator="EQ" value="1"/>
                <val:Edit logicOperator="OR">
                    <val:Edit field="ChildTIF" operator="EQ" value="1"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="4"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="5"/>
                </val:Edit>
            </val:Edit>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Unsupported Trigger Type Combination">
        <val:Edit logicOperator="OR">
            <val:Edit field="StopOrderType" operator="NE" value="3"/>
            <val:Edit logicOperator="AND">
                <val:Edit field="StopOrderType" operator="EQ" value="3"/>
                <val:Edit logicOperator="OR">
                    <val:Edit field="TTStopSecondConditionIsOn" operator="EQ" value="false"/>
                    <val:Edit logicOperator="AND">
                        <val:Edit field="TTStopSecondConditionIsOn" operator="EQ" value="true"/>
                        <val:Edit logicOperator="OR">
                            <val:Edit logicOperator="AND">
                                <val:Edit field="TTStopTriggerPriceType" operator="EQ" value="3"/>
                                <val:Edit field="TTStopSecondTriggerPriceType" operator="NE" value="3"/>
                            </val:Edit>
                            <val:Edit logicOperator="AND">
                                <val:Edit field="TTStopTriggerPriceType" operator="NE" value="3"/>
                                <val:Edit field="TTStopSecondTriggerPriceType" operator="EQ" value="3"/>
                            </val:Edit>
                        </val:Edit>
                    </val:Edit>
                </val:Edit>
            </val:Edit>
        </val:Edit>
    </val:StrategyEdit>

</Strategy>
