示例#1
0
        public void PriceBar_Write_Works()
        {
            //Arrange
            var priceBars = new PriceBars(10);
            var priceBar1 = new PriceBar(DateTime.Now.Ticks, 1, 2, 3, 4);
            var priceBar2 = new PriceBar();

            priceBar2.Write(DateTime.Now.Ticks, 1, 2, 3, 4);

            //Act
            priceBars.Write(priceBar1.Timestamp, priceBar1.Open, priceBar1.High, priceBar1.Low, priceBar1.Close);
            priceBars.Write(priceBar2.Timestamp, priceBar2.Open, priceBar2.High, priceBar2.Low, priceBar2.Close);
            priceBars.Write(priceBar1.Timestamp, priceBar1.Open, priceBar1.High, priceBar1.Low, priceBar1.Close);

            //Assert
            Assert.AreEqual(3, priceBars.Length);
            Assert.AreEqual(priceBars.Current.Timestamp, priceBar1.Timestamp);
            Assert.AreEqual(priceBars.Current.Open, priceBar1.Open);
            Assert.AreEqual(priceBars.Current.High, priceBar1.High);
            Assert.AreEqual(priceBars.Current.Low, priceBar1.Low);
            Assert.AreEqual(priceBars.Current.Close, priceBar1.Close);
            Assert.AreEqual(priceBars.Current.Volume, 0);

            Assert.AreEqual(priceBars.Previous.Timestamp, priceBar2.Timestamp);
            Assert.AreEqual(priceBars.Previous.Open, priceBar2.Open);
            Assert.AreEqual(priceBars.Previous.High, priceBar2.High);
            Assert.AreEqual(priceBars.Previous.Low, priceBar2.Low);
            Assert.AreEqual(priceBars.Previous.Close, priceBar2.Close);
            Assert.AreEqual(priceBars.Previous.Volume, 0);
        }
示例#2
0
        public void AddPrice(float open, float high, float low, float close, float volume = 0)
        {
            PriceBar priceBar = new PriceBar();

            priceBar.Write(_timeStamper.Next, open, high, low, close, volume);
            _priceBars.Add(priceBar);
        }
示例#3
0
        public void HeikenAshiBar_Write_Works()
        {
            //Arrange
            var haBars = new HeikenAshiBars(10);

            haBars.BarUpdated += delegate(IHeikenAshiBar current) { };
            var priceBar1 = new PriceBar(DateTime.Now.Ticks, 1, 2, 3, 4);
            var priceBar2 = new PriceBar(DateTime.Now.Ticks, 2, 3, 4, 0);
            var priceBar3 = new PriceBar();

            priceBar3.Write(DateTime.Now.Ticks, 1, 2, 3, 4);

            //Act
            haBars.Write(priceBar2);
            haBars.Write(priceBar1);
            haBars.Write(priceBar3);
            haBars.Write(priceBar1.Timestamp, priceBar1.Open, priceBar1.High, priceBar1.Low, priceBar1.Close);

            //Assert
            Assert.AreEqual(4, haBars.Length);
            Assert.AreEqual(haBars.Current.Timestamp, priceBar1.Timestamp);
            Assert.AreEqual(haBars.Previous.Timestamp, priceBar3.Timestamp);
        }
示例#4
0
        public void CandlestickBar_Write_Works()
        {
            //Arrange
            var CandlestickBars = new CandlestickBars(1000);

            CandlestickBars.BarUpdated += delegate(ICandlestickBar current) { };
            var priceBar1 = new PriceBar(DateTime.Now.Ticks, 2, 3, 4, 0);
            var priceBar2 = new PriceBar();
            var priceBar3 = new PriceBar(DateTime.Now.Ticks, 1, 2, 3, 4);

            priceBar2.Write(DateTime.Now.Ticks, priceBar3.Open, priceBar3.High, priceBar3.Low, priceBar3.Close);

            //Act
            CandlestickBars.Write(priceBar1);
            CandlestickBars.Write(priceBar3);
            CandlestickBars.Write(priceBar2);
            CandlestickBars.Write(priceBar3.Timestamp, priceBar3.Open, priceBar3.High, priceBar3.Low, priceBar3.Close);

            //Assert
            Assert.AreEqual(4, CandlestickBars.Length);
            Assert.AreEqual(CandlestickBars.Current.Timestamp, priceBar3.Timestamp);
            Assert.AreEqual(CandlestickBars.Previous.Timestamp, priceBar2.Timestamp);
        }