﻿<?xml version="1.0" encoding="utf-8"?>
<StrategyTemplate>
  <StrategyType>NinjaTrader.NinjaScript.Strategies.ATCHMachineLearningPredictor</StrategyType>
  <OptimizerType>NinjaTrader.NinjaScript.Optimizers.DefaultOptimizer</OptimizerType>
  <OptimizerParameters>
    <ArrayOfParameterWrapper xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <ParameterWrapper>
        <DisplayName>IsStrategyGenerator</DisplayName>
        <Name>IsStrategyGenerator</Name>
        <Value xsi:type="xsd:boolean">false</Value>
      </ParameterWrapper>
      <ParameterWrapper>
        <DisplayName>Keep best # results</DisplayName>
        <Name>KeepBestResults</Name>
        <Value xsi:type="xsd:int">10</Value>
      </ParameterWrapper>
      <ParameterWrapper>
        <DisplayName>LogTypeName</DisplayName>
        <Name>LogTypeName</Name>
        <Value xsi:type="xsd:string">Optimizer</Value>
      </ParameterWrapper>
      <ParameterWrapper>
        <DisplayName>Visible</DisplayName>
        <Name>IsVisible</Name>
        <Value xsi:type="xsd:boolean">true</Value>
      </ParameterWrapper>
      <ParameterWrapper>
        <DisplayName>Name</DisplayName>
        <Name>Name</Name>
        <Value xsi:type="xsd:string">Default</Value>
      </ParameterWrapper>
    </ArrayOfParameterWrapper>
  </OptimizerParameters>
  <OptimizationFitness>NinjaTrader.NinjaScript.OptimizationFitnesses.MaxProfitFactor</OptimizationFitness>
  <OptimizationParameters>
    <ArrayOfParameter xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:boolean">true</Max>
        <Min xsi:type="xsd:boolean">true</Min>
        <Name>IsBacktest</Name>
        <ParameterTypeSerializable>System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>True</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>DailyTakeProfitTarget</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>0</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>DayStopLoss</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>0</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>MaxDailyWinningTradeCount</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>0</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>MaxDailyLosingTradeCount</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>0</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">4</Max>
        <Min xsi:type="xsd:int">4</Min>
        <Name>PredictionHorizon</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>4</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:double">10</Max>
        <Min xsi:type="xsd:double">10</Min>
        <Name>PredictionThresholdPoints</Name>
        <ParameterTypeSerializable>System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>10</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable>
          <string>EST</string>
        </EnumValuesSerializable>
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>CurrentTimeZone</Name>
        <ParameterTypeSerializable>AutomatedTradingCH.NT8.MachineLearningPredictorStrategy.TimeZoneEnum, NinjaTrader.Custom, Version=8.1.7.0, Culture=neutral, PublicKeyToken=null</ParameterTypeSerializable>
        <ValueSerializable>EST</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable>
          <string>RiskAdjusted</string>
        </EnumValuesSerializable>
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>CurrentQuantityStrategy</Name>
        <ParameterTypeSerializable>AutomatedTradingCH.NT8.MachineLearningPredictorStrategy.QuantityStrategy, NinjaTrader.Custom, Version=8.1.7.0, Culture=neutral, PublicKeyToken=null</ParameterTypeSerializable>
        <ValueSerializable>RiskAdjusted</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">50</Max>
        <Min xsi:type="xsd:int">50</Min>
        <Name>MaxQuantity</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>50</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">1</Max>
        <Min xsi:type="xsd:int">1</Min>
        <Name>InitQuantity</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>1</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:boolean">true</Max>
        <Min xsi:type="xsd:boolean">true</Min>
        <Name>SuperTrendEntryFilter</Name>
        <ParameterTypeSerializable>System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>True</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable>
          <string>None</string>
        </EnumValuesSerializable>
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>CurrentOrderManagementStrategy</Name>
        <ParameterTypeSerializable>AutomatedTradingCH.NT8.MachineLearningPredictorStrategy.OrderManagementStrategy, NinjaTrader.Custom, Version=8.1.7.0, Culture=neutral, PublicKeyToken=null</ParameterTypeSerializable>
        <ValueSerializable>None</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable>
          <string>LastPriceSwing</string>
        </EnumValuesSerializable>
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>CurrentStopLossStrategy</Name>
        <ParameterTypeSerializable>AutomatedTradingCH.NT8.MachineLearningPredictorStrategy.StopLossStrategy, NinjaTrader.Custom, Version=8.1.7.0, Culture=neutral, PublicKeyToken=null</ParameterTypeSerializable>
        <ValueSerializable>LastPriceSwing</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">6</Max>
        <Min xsi:type="xsd:int">6</Min>
        <Name>SwingPeriod</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>6</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable>
          <string>PredictedPoints</string>
        </EnumValuesSerializable>
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>CurrentTakeProfitStrategy</Name>
        <ParameterTypeSerializable>AutomatedTradingCH.NT8.MachineLearningPredictorStrategy.TakeProfitStrategy, NinjaTrader.Custom, Version=8.1.7.0, Culture=neutral, PublicKeyToken=null</ParameterTypeSerializable>
        <ValueSerializable>PredictedPoints</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:double">0</Max>
        <Min xsi:type="xsd:double">0</Min>
        <Name>CurrentCustomWinLossRatio</Name>
        <ParameterTypeSerializable>System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>0</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">250</Max>
        <Min xsi:type="xsd:int">250</Min>
        <Name>MaxCurrencyAtRisk</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>250</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">270</Max>
        <Min xsi:type="xsd:int">270</Min>
        <Name>MaxAllowedCurrentAtRisk</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>270</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">10</Max>
        <Min xsi:type="xsd:int">10</Min>
        <Name>StopLossPoints</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>10</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>StopLossOffsetPoints</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>0</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name>TakeProfitCurrency</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>0</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">10</Max>
        <Min xsi:type="xsd:int">10</Min>
        <Name>TakeProfitPoints</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>10</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">42</Max>
        <Min xsi:type="xsd:int">42</Min>
        <Name>SuperTrendLength</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>42</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">42</Max>
        <Min xsi:type="xsd:int">42</Min>
        <Name>SuperTrendSmooth</Name>
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>42</ValueSerializable>
      </Parameter>
      <Parameter>
        <EnumValuesSerializable />
        <Increment>1</Increment>
        <Max xsi:type="xsd:double">2.618</Max>
        <Min xsi:type="xsd:double">2.618</Min>
        <Name>SuperTrendMultiplier</Name>
        <ParameterTypeSerializable>System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>2,618</ValueSerializable>
      </Parameter>
    </ArrayOfParameter>
  </OptimizationParameters>
  <Strategy>
    <ATCHMachineLearningPredictor xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <IsVisible>true</IsVisible>
      <calculate2>OnEachTick</calculate2>
      <AreLinesConfigurable>true</AreLinesConfigurable>
      <ArePlotsConfigurable>true</ArePlotsConfigurable>
      <BarsPeriodSerializable>
        <BarsPeriodTypeSerialize>4</BarsPeriodTypeSerialize>
        <BaseBarsPeriodType>Minute</BaseBarsPeriodType>
        <BaseBarsPeriodValue>1</BaseBarsPeriodValue>
        <VolumetricDeltaType>BidAsk</VolumetricDeltaType>
        <MarketDataType>Last</MarketDataType>
        <PointAndFigurePriceType>Close</PointAndFigurePriceType>
        <ReversalType>Tick</ReversalType>
        <Value>1</Value>
        <Value2>1</Value2>
      </BarsPeriodSerializable>
      <BarsToLoad>0</BarsToLoad>
      <Calculate>OnEachTick</Calculate>
      <Displacement>0</Displacement>
      <DisplayInDataBox>true</DisplayInDataBox>
      <From>2026-01-01T00:00:00</From>
      <IsAutoScale>true</IsAutoScale>
      <Lines />
      <MaximumBarsLookBack>TwoHundredFiftySix</MaximumBarsLookBack>
      <Name>ATCHMachineLearningPredictor</Name>
      <Panel>-1</Panel>
      <Plots />
      <ScaleJustification>Right</ScaleJustification>
      <ShowTransparentPlotsInDataBox>false</ShowTransparentPlotsInDataBox>
      <To>2026-04-11T00:00:00</To>
      <IsDataSeriesRequired>true</IsDataSeriesRequired>
      <IsOverlay>true</IsOverlay>
      <SelectedValueSeries>0</SelectedValueSeries>
      <Gtd>1800-01-01T00:00:00</Gtd>
      <Template />
      <TimeInForce>Gtc</TimeInForce>
      <BarsPeriodParameter>
        <Increment>1</Increment>
        <Max xsi:type="xsd:int">0</Max>
        <Min xsi:type="xsd:int">0</Min>
        <Name />
        <ParameterTypeSerializable>System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ParameterTypeSerializable>
        <ValueSerializable>0</ValueSerializable>
      </BarsPeriodParameter>
      <BarsRequiredToTrade>5</BarsRequiredToTrade>
      <Category>NinjaScript</Category>
      <ConnectionLossHandling>KeepRunning</ConnectionLossHandling>
      <DaysToLoad>5</DaysToLoad>
      <DefaultQuantity>1</DefaultQuantity>
      <DisconnectDelaySeconds>10</DisconnectDelaySeconds>
      <EntriesPerDirection>1</EntriesPerDirection>
      <EntryHandling>AllEntries</EntryHandling>
      <ExitOnSessionCloseSeconds>30</ExitOnSessionCloseSeconds>
      <IncludeCommission>false</IncludeCommission>
      <InstrumentOrInstrumentList>MES 06-26</InstrumentOrInstrumentList>
      <IsAggregated>false</IsAggregated>
      <IsExitOnSessionCloseStrategy>true</IsExitOnSessionCloseStrategy>
      <IsFillLimitOnTouch>false</IsFillLimitOnTouch>
      <IsOptimizeDataSeries>false</IsOptimizeDataSeries>
      <IsStableSession>true</IsStableSession>
      <IsTickReplay>true</IsTickReplay>
      <IsTradingHoursBreakLineVisible>true</IsTradingHoursBreakLineVisible>
      <IsWaitUntilFlat>false</IsWaitUntilFlat>
      <NumberRestartAttempts>4</NumberRestartAttempts>
      <OptimizationPeriod>10</OptimizationPeriod>
      <OrderFillResolution>Standard</OrderFillResolution>
      <OrderFillResolutionType>Tick</OrderFillResolutionType>
      <OrderFillResolutionValue>1</OrderFillResolutionValue>
      <RestartsWithinMinutes>5</RestartsWithinMinutes>
      <SetOrderQuantity>Strategy</SetOrderQuantity>
      <Slippage>0</Slippage>
      <StartBehavior>WaitUntilFlat</StartBehavior>
      <StopTargetHandling>PerEntryExecution</StopTargetHandling>
      <SupportsOptimizationGraph>true</SupportsOptimizationGraph>
      <TestPeriod>28</TestPeriod>
      <TradingHoursSerializable />
      <DrawOnPricePanel>false</DrawOnPricePanel>
      <ZOrder>-2147483648</ZOrder>
      <IsBacktest>true</IsBacktest>
      <DailyTakeProfitTarget>0</DailyTakeProfitTarget>
      <DayStopLoss>0</DayStopLoss>
      <MaxDailyWinningTradeCount>0</MaxDailyWinningTradeCount>
      <MaxDailyLosingTradeCount>0</MaxDailyLosingTradeCount>
      <PredictionThresholdPoints>10</PredictionThresholdPoints>
      <ModelFullPath>ATCHMLModel_MES_Minute1_5_20_20_20260410.zip</ModelFullPath>
      <CurrentTimeZone>EST</CurrentTimeZone>
      <TradeTimeStr>06:00-16:00</TradeTimeStr>
      <OrderLabel>ATCHMachineLearningStrategy</OrderLabel>
      <CurrentQuantityStrategy>RiskAdjusted</CurrentQuantityStrategy>
      <MaxQuantity>50</MaxQuantity>
      <InitQuantity>1</InitQuantity>
      <SuperTrendEntryFilter>true</SuperTrendEntryFilter>
      <CurrentOrderManagementStrategy>None</CurrentOrderManagementStrategy>
      <CurrentATMStrategyName />
      <CurrentStopLossStrategy>PredictionTargetOpposite</CurrentStopLossStrategy>
      <SwingPeriod>10</SwingPeriod>
      <CurrentTakeProfitStrategy>PredictedPoints</CurrentTakeProfitStrategy>
      <CurrentCustomWinLossRatio>0</CurrentCustomWinLossRatio>
      <MaxCurrencyAtRisk>400</MaxCurrencyAtRisk>
      <MaxAllowedCurrentAtRisk>420</MaxAllowedCurrentAtRisk>
      <StopLossPoints>10</StopLossPoints>
      <StopLossOffsetPoints>0</StopLossOffsetPoints>
      <TakeProfitCurrency>0</TakeProfitCurrency>
      <TakeProfitPoints>10</TakeProfitPoints>
      <CurrentOppositeSignalStrategy>DoNothing</CurrentOppositeSignalStrategy>
      <SuperTrendMode>ATR</SuperTrendMode>
      <SuperTrendLength>42</SuperTrendLength>
      <SuperTrendMaType>HMA</SuperTrendMaType>
      <SuperTrendSmooth>42</SuperTrendSmooth>
      <SuperTrendMultiplier>2.618</SuperTrendMultiplier>
    </ATCHMachineLearningPredictor>
  </Strategy>
</StrategyTemplate>