<?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_Stop" uiRep="TT Stop" version="15.130.15" 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="__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="ChildTIF" xsi:type="Int_t" refValue="OrderTif" required="true" dir="In" updateable="false" orderEntryFixtag="16903"/>

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

    <!-- Take trigger price from external limit price -->
    <Parameter name="__trigger_price" xsi:type="Price_t" refValue="OrderPrice" required="false" dir="In" updateable="true"/>

    <!-- trigger -->
    <Parameter name="TriggerPriceType" xsi:type="Int_t" initValue="eLtp" required="true" 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"/>

    <!-- secondary qty trigger -->

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

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

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

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

    <Parameter name="SecondTriggerPriceType" xsi:type="Int_t" initValue="eLtp" required="false" dir="In" updateable="false" orderEntryFixtag="16972">
        <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="SecondTriggerTicksAway" xsi:type="Int_t" initValue="3" minValue="1" maxValue="99" required="false" dir="In" updateable="true" orderEntryFixtag="16967"/>

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

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

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

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

    <!-- Order type -->
    <Parameter name="__type" xsi:type="Int_t" initValue="eLimit" required="true" dir="In" updateable="true">
        <EnumPair enumID="eMkt" wireValue="1"/>
        <EnumPair enumID="eLimit" wireValue="2"/>
        <EnumPair enumID="eMLM" wireValue="21"/>
    </Parameter>

    <!-- Limit/Relative Price -->
    <Parameter name="__price" xsi:type="Price_t" required="true" dir="In" updateable="true"/>

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

    <Parameter name="LimitPriceType" xsi:type="Int_t" initValue="eTrigger" required="false" dir="In" updateable="true" orderEntryFixtag="16911">
        <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>

    <!-- 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"/>
        <EnumPair enumID="eETAGoToMkt" wireValue="2"/>
    </Parameter>

  <Parameter name="ETAGoToMktTicksEnabled" xsi:type="Boolean_t" required="false" dir="In" updateable="true" initValue="false"/>
  <Parameter name="ETAGoToMktTicks"
               xsi:type="Int_t"
               initValue="10" minValue="0" maxValue="100"
               required="false" dir="In" updateable="true" orderEntryFixtag="16960"/>

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

    <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>

    <lay:StrategyLayout>
        <!-- Trigger details -->
        <lay:StrategyPanel name="TriggerDetailsPanel" orientation="VERTICAL" class="main-panel">
            <lay:Control ID="TriggerDetails_label" xsi:type="lay:Label_t" label="Trigger Details" class="atdl-panel-title"/>
            <lay:StrategyPanel orientation="HORIZONTAL">
                <lay:Control ID="TriggerPriceType_ctrl_label" xsi:type="lay:Label_t" label="Price Type"/>
                <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>
                <!-- reset on revert -->
                <lay:Control ID="TriggerLTPReset_ctrl" column="4" parameterRef="TriggerLTPReset"
                             label="Reset" xsi:type="lay:CheckBox_t">
                    <flow:StateRule visible="true">
                        <val:Edit field="TriggerPriceType_ctrl" operator="EQ" value="eLtp"/>
                    </flow:StateRule>
                </lay:Control>
            </lay:StrategyPanel>

            <!-- secondary qty trigger -->
            <lay:StrategyPanel name="TriggerQtyPanel" orientation="HORIZONTAL">
                <flow:StateRule enabled="true">
                    <val:Edit field="TrailStopAllowed" operator="NE" value="true"/>
                </flow:StateRule>

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

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

                <lay:Control ID="TriggerQty_ctrl" parameterRef="TriggerQty" xsi:type="lay:SingleSpinner_t"/>
            </lay:StrategyPanel>

            <!-- trail -->
            <lay:StrategyPanel name="TrailPanel" orientation="HORIZONTAL">
                <lay:Control ID="TrailStopAllowed" parameterRef="IsTrlTrg" label="Trail (ticks)"
                             xsi:type="lay:CheckBox_t"/>

                <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>

            <!-- Exclude implied -->
            <lay:Control ID="NoImplies_ctrl" parameterRef="NoImplies" label="Exclude Implied Prices"
                         xsi:type="lay:CheckBox_t"/>

            <lay:Control ID="SecondConditionOn_ctrl" parameterRef="SecondConditionIsOn" label="Second Condition" xsi:type="lay:CheckBox_t"/>

            <lay:StrategyPanel name="SecondConditionalControlPanel" orientation="VERTICAL" indent="true">
                <flow:StateRule visible="true">
                    <val:Edit field="SecondConditionOn_ctrl" operator="NE" value="false"/>
                </flow:StateRule>
                <lay:StrategyPanel name="SecondCond" orientation="HORIZONTAL">
                    <lay:Control ID="SecondTriggerPriceType_ctrl_label" xsi:type="lay:Label_t" label="PriceType"/>
                    <lay:Control ID="SecondTriggerPriceType_ctrl" parameterRef="SecondTriggerPriceType"
                                 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="SecondTriggerQtyPanel" orientation="HORIZONTAL">
                    <lay:Control ID="SecondTriggerQtyType_ctrl" parameterRef="SecondTriggerQtyType" xsi:type="lay:DropDownList_t">
                        <lay:ListItem enumID="eQty" uiRep="Qty"/>
                        <lay:ListItem enumID="ePercentage" uiRep="%"/>
                    </lay:Control>
                    <lay:Control ID="SecondTriggerQtyCompare_ctrl" parameterRef="SecondTriggerQtyCompare"
                                 xsi:type="lay:DropDownList_t">
                        <lay:ListItem enumID="eLTE" uiRep="&lt;="/>
                        <lay:ListItem enumID="eGTE" uiRep="&gt;="/>
                    </lay:Control>
                    <lay:Control ID="SecondTriggerQty_ctrl" parameterRef="SecondTriggerQty" xsi:type="lay:SingleSpinner_t"/>
                </lay:StrategyPanel>
            </lay:StrategyPanel>
        </lay:StrategyPanel>

        <lay:StrategyPanel name="OrderDetailsPanel" orientation="VERTICAL">
            <lay:Control ID="OrderDetails_label" xsi:type="lay:Label_t" label="Order Details" class="atdl-panel-title"/>
            <!-- Order type -->
            <lay:StrategyPanel orientation="HORIZONTAL">
                <lay:Control ID="ExchOrderType_ctrl_label"
                             xsi:type="lay:Label_t" label="On trigger, submit"/>
                <lay:Control ID="ExchOrderType_ctrl" parameterRef="__type"
                             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:StrategyPanel>

            <!-- Limit / MLM order price settings -->
            <lay:StrategyPanel name="LimitPriceTypePanel" orientation="HORIZONTAL">
                <flow:StateRule visible="true">
                    <val:Edit field="ExchOrderType_ctrl" operator="NE" value="eMkt"/>
                </flow:StateRule>

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

                <lay:StrategyPanel orientation="VERTICAL">
                    <!-- Fixed price -->
                    <lay:Control ID="LimitPrice_ctrl" parameterRef="__price"
                        xsi:type="lay:SingleSpinner_t">
                        <flow:StateRule visible="true">
                            <val:Edit field="LimitPriceType_ctrl" operator="EQ" value="ePrice"/>
                        </flow:StateRule>
                    </lay:Control>

                    <!-- Relative price -->
                    <lay:StrategyPanel name="LimitOffsetPanel" orientation="HORIZONTAL">
                        <flow:StateRule visible="true">
                            <val:Edit field="LimitPriceType_ctrl" operator="EQ" value="eOffset"/>
                        </flow:StateRule>
                        <lay:Control ID="LimitPriceOffset_ctrl" parameterRef="Payup"
                            xsi:type="lay:SingleSpinner_t"> </lay:Control>
                        <lay:Control ID="LimitPriceOffsetType_ctrl"
                            parameterRef="LimitPriceType" 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>

            <!-- With a Tick -->
            <lay:StrategyPanel name="WithATickPanel" orientation="HORIZONTAL">
                <flow:StateRule visible="true">
                    <val:Edit field="ExchOrderType_ctrl" operator="NE" value="eMkt"/>
                </flow:StateRule>

                <lay:Control ID="IsWithATick_ctrl" label="With a Tick" initValue="false"
                    xsi:type="lay:CheckBox_t"> </lay:Control>

                <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:Control ID="AutoResub"
                         label="Auto-Resubmit Upon GTD Expiry"
                         initValue="false"
                         parameterRef="AutoResubExpiredGTD"
                    xsi:type="lay:CheckBox_t" />
        </lay:StrategyPanel>

        <!-- Start and End Time -->
        <lay:StrategyPanel name="TimeAndDatePanel" orientation="VERTICAL">
            <lay:Control ID="TimingDetails_label" xsi:type="lay:Label_t" label="Precondition Details" class="atdl-panel-title"/>
            <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:ListItem enumID="eGTCP" uiRep="GTC+"/>
                    <lay:ListItem enumID="eDayP" 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">
                <!-- EndTimeActions -->
                <lay:StrategyPanel orientation="HORIZONTAL" indent="true">
                    <lay:Control ID="EndTimeAction_ctrl" parameterRef="ETimeAct"
                                    xsi:type="lay:DropDownList_t"
                                    initValue="eCancel"
                                    label="At End Action">
                        <lay:ListItem enumID="eCancel" uiRep="Cancel"/>
                        <lay:ListItem enumID="eETAGoToMkt" uiRep="GoToMarket"/>
                        <flow:StateRule visible="true">
                            <val:Edit field="End" operator="EQ" value="eTime"/>
                        </flow:StateRule>
                    </lay:Control>
                </lay:StrategyPanel>
                
                <!-- ETA GTM ticks -->
                <lay:StrategyPanel name="ETAGTMPanel" orientation="HORIZONTAL" indent="true">
                    <flow:StateRule visible="true">
                        <val:Edit logicOperator="AND">
                            <val:Edit field="End" operator="EQ" value="eTime"/>
                            <val:Edit field="EndTimeAction_ctrl" operator="EQ" value="eETAGoToMkt"/>
                        </val:Edit>
                    </flow:StateRule>
                  <lay:Control ID="etagtmTicksEnabled_ctrl" parameterRef="ETAGoToMktTicksEnabled" xsi:type="lay:CheckBox_t"
                               label="Mkt Order Lmt" initValue="false"/>
                  <lay:Control ID="etagtmTicks_ctrl" parameterRef="ETAGoToMktTicks" xsi:type="lay:SingleSpinner_t">
                    <flow:StateRule enabled="true">
                      <val:Edit field="etagtmTicksEnabled_ctrl" operator="EQ" value="true"/>
                    </flow:StateRule>
                  </lay:Control>
                  <lay:Control ID="ETAGTMTicks_label" xsi:type="lay:Label_t" label="ticks"/>
                </lay:StrategyPanel>
            </lay:StrategyPanel>

            <!-- HKExSSEAlgoHandling parameter : if End is eNULL, then this will be visible, which will never be the case,
            this is just the hack to hide this field from TTW for hkex requirement, if you want to make it visible just remove state_rule-->
            <lay:StrategyPanel name="HKExSSEAlgoHandlingPanel" orientation="HORIZONTAL">
                <lay:Control ID="HKExSSEAlgoHandling_ctrl" parameterRef="HKExSSEAlgoHandling" initValue="false" label="HKEX Sse Algo Handling" xsi:type="lay:CheckBox_t">
                    <flow:StateRule visible="true">
                        <val:Edit field="End" operator="EQ" value="eNULL"/>
                    </flow:StateRule>
                </lay:Control>
            </lay:StrategyPanel>
        </lay:StrategyPanel>
    </lay:StrategyLayout>

    <!-- Additional StrategyLayout Type -->
    <lay:StrategyLayout type="Slim">
      <lay:StrategyPanel orientation="HORIZONTAL">
        <lay:Control ID="LimitPriceOffset_ctrl_slim_label" xsi:type="lay:Label_t" label="Payup"/>
        <lay:Control ID="LimitPriceOffset_ctrl_slim" controlRef="LimitPriceOffset_ctrl" xsi:type="lay:control_ref_t"></lay:Control>
      </lay:StrategyPanel>
      <lay:StrategyPanel orientation="HORIZONTAL">
       <lay:Control ID="TriggerPriceType_ctrl_slim" controlRef="TriggerPriceType_ctrl" xsi:type="lay:control_ref_t"></lay:Control>
       <lay:Control ID="TriggerQty_ctrl_slim" controlRef="TriggerQty_ctrl" xsi:type="lay:control_ref_t"></lay:Control>
      </lay:StrategyPanel>
    </lay:StrategyLayout>

    <!-- INPUT VALIDATIONS -->
    <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="TriggerTicksAway" operator="GE" value="1"/>
                <val:Edit field="TriggerTicksAway" operator="LE" value="500"/>
            </val:Edit>
            <val:Edit field="IsTrlTrg" operator="EQ" value="false"/>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Payup must be between -999 and 999.">
        <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="LimitPriceType" operator="NE" value=""/>
                <val:Edit field="Payup" operator="GE" value="-999"/>
                <val:Edit field="Payup" operator="LE" value="999"/>
                <val:Edit field="Payup" operator="NE" value=""/>
            </val:Edit>
            <val:Edit field="__type" operator="EQ" value="1"/>
            <val:Edit field="LimitPriceType" operator="EQ" value=""/>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Order Price must be set">
        <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="__type" operator="NE" value="1"/>
                <val:Edit field="LimitPriceType" operator="EQ" value=""/>
                <val:Edit field="__price" operator="NE" value=""/>
            </val:Edit>
            <val:Edit logicOperator="AND">
                <val:Edit field="__type" operator="NE" value="1"/>
                <val:Edit field="LimitPriceType" operator="NE" value=""/>
                <val:Edit field="__price" operator="EQ" value=""/>
            </val:Edit>
            <val:Edit field="__type" operator="EQ" value="1"/>
        </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="Trigger quantity on percentage must use >=">
        <val:Edit logicOperator="OR">
            <val:Edit field="TriggerQtyType" operator="NE" value="2"/>
            <val:Edit logicOperator="AND">
                <val:Edit field="TriggerQtyType" operator="EQ" value="2"/>
                <val:Edit field="TriggerQtyCompare" operator="EQ" value="5"/>
            </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>

    <val:StrategyEdit errorMessage="Child time in force is not compatible with parent time in force">
        <val:Edit logicOperator="OR">
            <val:Edit field="ParentTIF" operator="EQ" value="7"/>
            <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 logicOperator="AND">
                <val:Edit field="ParentTIF" operator="EQ" value="2"/>
                <val:Edit logicOperator="OR">
                    <val:Edit field="ChildTIF" operator="EQ" value="1"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="2"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="4"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="5"/>
                </val:Edit>
            </val:Edit>
            <val:Edit logicOperator="AND">
                <val:Edit field="ParentTIF" operator="EQ" value="15"/>
                <val:Edit logicOperator="OR">
                    <val:Edit field="ChildTIF" operator="EQ" value="3"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="4"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="15"/>
                </val:Edit>
            </val:Edit>
            <val:Edit logicOperator="AND">
                <val:Edit field="ParentTIF" operator="EQ" value="16"/>
                <val:Edit logicOperator="OR">
                    <val:Edit field="ChildTIF" operator="EQ" value="3"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="4"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="15"/>
                    <val:Edit field="ChildTIF" operator="EQ" value="16"/>
                </val:Edit>
            </val:Edit>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Unsupported Trigger Type Combination">
        <val:Edit logicOperator="OR">
            <val:Edit field="SecondConditionIsOn" operator="EQ" value="false"/>
            <val:Edit logicOperator="AND">
                <val:Edit field="SecondConditionIsOn" operator="EQ" value="true"/>
                <val:Edit logicOperator="OR">
                    <val:Edit logicOperator="AND">
                        <val:Edit field="TriggerPriceType" operator="EQ" value="3"/>
                        <val:Edit field="SecondTriggerPriceType" operator="NE" value="3"/>
                    </val:Edit>
                    <val:Edit logicOperator="AND">
                        <val:Edit field="TriggerPriceType" operator="NE" value="3"/>
                        <val:Edit field="SecondTriggerPriceType" operator="EQ" value="3"/>
                    </val:Edit>
                </val:Edit>
            </val:Edit>
        </val:Edit>
    </val:StrategyEdit>

</Strategy>
