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