<?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_Iceberg" uiRep="TT Iceberg" version="15.125.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="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="eDayP" wireValue="15"/>
        <EnumPair enumID="eGTCP" wireValue="16"/>
        <EnumPair enumID="eTimeP" wireValue="17"/>
    </Parameter>

    <!-- Icebergs are alywas limit orders-->
    <Parameter name="__type" xsi:type="Int_t" constValue="2" required="true" dir="In" updateable="false"/>

    <!-- display (disclosed) qty -->
    <Parameter name="DiscVal" xsi:type="Qty_t" minValue="0.00000001" initValue="1" required="true" dir="In" updateable="true" orderEntryFixtag="16904"/>

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

    <!-- Variance -->
    <Parameter name="Variance"
               xsi:type="Int_t"
               initValue="0" minValue="0" maxValue="100"
               required="false" dir="In" updateable="false" orderEntryFixtag="16958"/>

    <!-- Custom Slice Schedule -->
    <Parameter name="CustomSliceSched"
               xsi:type="String_t"
               initValue=""
               required="false" dir="In" updateable="true"/>

    <!-- Relative price -->
    <Parameter name="LimitTicksAway" xsi:type="Int_t" minValue="-999" maxValue="999" initValue="1" required="false" dir="In" updateable="true" orderEntryFixtag="16912"/>

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

    <!-- 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"/>
        <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="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="true" 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>
        <!-- Iceberg details (disclosed qty and relative price) -->
        <lay:StrategyPanel class="main-panel">
            <lay:Control ID="IcebergDetails_label" xsi:type="lay:Label_t" label="Iceberg Details" class="atdl-panel-title"> </lay:Control>
            <!-- Disclosed qty -->
            <lay:StrategyPanel orientation="HORIZONTAL">
                <lay:Control ID="DisplayQty_ctrl_label"
                    xsi:type="lay:Label_t" label="Display"> </lay:Control>
                <lay:Control ID="DisplayQty_ctrl" parameterRef="DiscVal"
                    xsi:type="lay:SingleSpinner_t" initValue="1"> </lay:Control>
                <lay:Control ID="DisplayQtyType_ctrl" parameterRef="DiscValType"
                             xsi:type="lay:DropDownList_t" initValue="eQty">
                    <lay:ListItem enumID="eQty" uiRep="Qty"/>
                    <lay:ListItem enumID="ePercent" uiRep="%"/>
                </lay:Control>
            </lay:StrategyPanel>
            <!-- Variance -->
            <lay:StrategyPanel orientation="HORIZONTAL">
                <lay:Control ID="VariancePreFix_ctrl_label"
                    xsi:type="lay:Label_t" label="Variance%">
                </lay:Control>
                <lay:Control ID="Variance_ctrl" parameterRef="Variance"
                    xsi:type="lay:SingleSpinner_t" initValue="0">
                </lay:Control>
                <lay:Control ID="CustomSliceSched_ctrl" parameterRef="CustomSliceSched"
                    xsi:type="lay:PreviewPaneBtn_t">
                </lay:Control>
            </lay:StrategyPanel>
            <!-- Relative price -->

            <lay:StrategyPanel name="LimitPriceOffsetPanel" orientation="HORIZONTAL">
                <lay:Control ID="LimitPriceOffsetAllowed" label="Offset" initValue="false"
                    xsi:type="lay:CheckBox_t"> </lay:Control>
                <lay:Control ID="LimitPriceOffset_ctrl" parameterRef="LimitTicksAway"
                    xsi:type="lay:SingleSpinner_t">
                    <flow:StateRule visible="true">
                        <val:Edit field="LimitPriceOffsetAllowed" operator="EQ" value="true"/>
                    </flow:StateRule>
                </lay:Control>
                <lay:Control ID="LimitPriceOffsetType_ctrl" parameterRef="LimitPriceType"
                    xsi:type="lay:DropDownList_t">
                    <flow:StateRule visible="true">
                        <val:Edit field="LimitPriceOffsetAllowed" operator="EQ" value="true"/>
                    </flow:StateRule>
                    <lay:ListItem enumID="eLtp" uiRep="LTP"/>
                    <lay:ListItem enumID="eBid" uiRep="Bid"/>
                    <lay:ListItem enumID="eAsk" uiRep="Ask"/>
                    <lay:ListItem enumID="eDRO" uiRep="PrevSlice"/>
                    <lay:ListItem enumID="eSameSide" uiRep="Same Side"/>
                    <lay:ListItem enumID="eOppositeSide" uiRep="Opposite Side"/>
                </lay:Control>
            </lay:StrategyPanel>
            <!-- With a Tick -->
            <lay:StrategyPanel name="WithATickPanel" orientation="HORIZONTAL">
                <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>
            <lay:Control ID="TimingDetails_label" xsi:type="lay:Label_t" label="Precondition Details" class="atdl-panel-title"/>
            <!-- 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 name="TimeAndDatePanel">
                <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: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="Display quantity must be greater than 0">
        <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="DiscValType" operator="EQ" value="1"/>
                <val:Edit field="DiscVal" operator="NE" value=""/>
                <val:Edit field="DiscVal" operator="GT" value="0.0"/>
            </val:Edit>
            <val:Edit field="DiscValType" operator="EQ" value="2"/>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Display percentage must be between 0 and 99">
        <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="DiscValType" operator="EQ" value="2"/>
                <val:Edit field="DiscVal" operator="GT" value="0.0"/>
                <val:Edit field="DiscVal" operator="LE" value="99"/>
            </val:Edit>
            <val:Edit field="DiscValType" operator="EQ" value="1"/>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Variance percentage must be between 0 and 99">
        <val:Edit logicOperator="AND">
            <val:Edit field="Variance" operator="GE" value="0"/>
            <val:Edit field="Variance" operator="LE" value="99"/>
        </val:Edit>
    </val:StrategyEdit>

    <val:StrategyEdit errorMessage="Limit Offset must be between -999 and 999">
        <val:Edit logicOperator="OR">
            <val:Edit logicOperator="AND">
                <val:Edit field="LimitPriceType" operator="NE" value=""/>
                <val:Edit field="LimitTicksAway" operator="NE" value=""/>
                <val:Edit field="LimitTicksAway" operator="LE" value="999"/>
                <val:Edit field="LimitTicksAway" operator="GE" value="-999"/>
            </val:Edit>
            <val:Edit logicOperator="AND">
                <val:Edit field="LimitPriceType" operator="EQ" value=""/>
                <val:Edit field="LimitTicksAway" operator="EQ" 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="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="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>

</Strategy>



