public void WhenNoPositionSetHistoricalBarsThrowsException()
        {
            var manager = new StopManager();
            var bars    = new BarCollection();

            Assert.Throws <InvalidOperationException>(() => manager.SetHistoricalBars(bars));
        }
        public void WhenNoPositionSetGetStopThrowsException()
        {
            var manager = new StopManager();
            var bars    = new BarCollection();

            Assert.Throws <InvalidOperationException>(() => manager.GetStop(DateTime.Today));
        }
        public void StopPriceSetCorrectlyForShort()
        {
            // Arrange
            const double StopPercentage = 10;
            const double Low            = 9.80;

            var manager = new StopManager();
            var bars    = new BarCollection
            {
                {
                    DateTime.Today,
                    new Bar(DateTime.Today, 10, 10.20, Low, 10)
                }
            };

            manager.Position = new Position
            {
                Direction    = Direction.Sell,
                EntryPrice   = 10,
                ExitStrategy = new AggressiveExitStrategy()
            };

            manager.SetHistoricalBars(bars);

            // Act
            var stop = manager.GetStop(DateTime.Today);

            // Assert
            Assert.IsType <TrailingStop>(stop);
            Assert.Equal(Low + Low * StopPercentage / 100, stop.Price);
        }
Beispiel #4
0
        // return:
        //      -1  出错
        //      0   配置文件不存在
        //      1   成功
        public int Initial(string strCfgFilename,
                           StopManager stopManager,
                           out string strError)
        {
            strError = "";

            this.dom = new XmlDocument();
            try
            {
                this.dom.Load(strCfgFilename);
                this.CfgFilename = strCfgFilename;
            }
            catch (FileNotFoundException /*ex*/)
            {
                strError = "配置文件 '" + strCfgFilename + "' 不存在";
                this.dom.LoadXml("<root />");   // 便于后面建立新内容
                this.CfgFilename = strCfgFilename;
                return(0);
            }
            catch (Exception ex)
            {
                strError = "配置文件 '" + strCfgFilename + "' 装载到XMLDOM时出错: " + ex.Message;
                return(-1);
            }

            this.stopManager = stopManager;

            return(1);
        }
Beispiel #5
0
 public HomeController(
     LineManager lineManager,
     StopManager stopManager,
     DepartureManager departureManager,
     SettingsManager settingsManager)
 {
     _lineManager      = lineManager;
     _stopManager      = stopManager;
     _departureManager = departureManager;
     _settingsManager  = settingsManager;
 }
Beispiel #6
0
 public EditorController(
     LineManager lineManager,
     StopManager stopManager,
     DepartureManager departureManager,
     EditorManager editorManager,
     SettingsManager settingsManager)
 {
     _lineManager      = lineManager;
     _stopManager      = stopManager;
     _departureManager = departureManager;
     _editorManager    = editorManager;
     _settingsManager  = settingsManager;
 }
Beispiel #7
0
        // return:
        //      -1  出错
        //      0   配置文件不存在
        //      1   成功
        public int Initial(string strCfgFilename,
            StopManager stopManager,
            out string strError)
        {
            strError = "";

            this.dom = new XmlDocument();
            try
            {
                this.dom.Load(strCfgFilename);
                this.CfgFilename = strCfgFilename;
            }
            catch (FileNotFoundException /*ex*/)
            {
                strError = "配置文件 '" + strCfgFilename + "' 不存在";
                this.dom.LoadXml("<root />");   // 便于后面建立新内容
                this.CfgFilename = strCfgFilename;
                return 0;
            }
            catch (Exception ex)
            {
                strError = "配置文件 '" + strCfgFilename + "' 装载到XMLDOM时出错: " + ex.Message;
                return -1;
            }

            this.stopManager = stopManager;

            return 1;
        }