void TestKtbSkelProcess_Exiting_Constructor_Raw(ProcessController_KtbSkel controller)
        {
            RawMarketData spotRmd = RmdManager.Ins().KtbSpot.GetData(controller.Parent.SpotCode);
            RawMarketData futureRmd = RmdManager.Ins().Future.GetData(controller.Parent.FutureCode);

            spotRmd = spotRmd.Clone() as RawMarketData;
            futureRmd = futureRmd.Clone() as RawMarketData;

            spotRmd.BidPrice1 = 8888F;
            spotRmd.AskPrice1 = 8889F;

            futureRmd.BidPrice1 = 107.01F;
            futureRmd.AskPrice1 = 107.02F;

            IInOutPolicy exitPolicy = new OutPolicy();
            ProcessState_EnterExit process = new ProcessState_EnterExit(
                1.0F,
                controller,
                10,
                spotRmd,
                futureRmd,
                exitPolicy,
                false);

            ProcessState_EnterExit_Accessor acc = new ProcessState_EnterExit_Accessor(new PrivateObject(process));
            Assert.AreEqual(acc._enterExitPolicy.GetInOutType(), InOutType.OutType);
        }
        IProcessState_KtbSkel CheckAnd_Out(double indicator, RawMarketData spotRmd, RawMarketData futureRmd)
        {
            Position_KtbSkel position = _stack.Peek();

            if (position == null)
            {
                return this;
            }

            if (_monitorExit.IsExitChance(position, spotRmd, futureRmd))
            {
                long exitNotional = GetTargetNotional_Out(
                    indicator, position.SignedSpotCount, spotRmd, futureRmd);

                if (exitNotional >= 10)
                {
                    //Exit
                    IInOutPolicy outPolicy = new OutPolicy();
                    logger.Info("KtbSkel State from default --> exiting.");
                    return new ProcessState_EnterExit(
                        indicator,
                        _parent,
                        exitNotional,
                        spotRmd,
                        futureRmd,
                        outPolicy,
                        !_unittestVersion);
                }
            }
            return this;
        }