Esempio n. 1
0
        public void Operate()
        {
            ITradingRecord record = new BaseTradingRecord();

            record.Operate(1);
            Assert.IsTrue(record.GetCurrentTrade().IsOpened());
            Assert.AreEqual(0, record.GetTradeCount());
            Assert.IsNull(record.GetLastTrade());
            Assert.AreEqual(Order.buyAt(1, Decimals.NaN, Decimals.NaN), record.GetLastOrder());
            Assert.AreEqual(Order.buyAt(1, Decimals.NaN, Decimals.NaN), record.GetLastOrder(OrderType.BUY));
            Assert.IsNull(record.GetLastOrder(OrderType.SELL));
            Assert.AreEqual(Order.buyAt(1, Decimals.NaN, Decimals.NaN), record.GetLastEntry());
            Assert.IsNull(record.GetLastExit());

            record.Operate(3);
            Assert.IsTrue(record.GetCurrentTrade().IsNew());
            Assert.AreEqual(1, record.GetTradeCount());
            Assert.AreEqual(new Trade(Order.buyAt(1, Decimals.NaN, Decimals.NaN), Order.sellAt(3, Decimals.NaN, Decimals.NaN)), record.GetLastTrade());
            Assert.AreEqual(Order.sellAt(3, Decimals.NaN, Decimals.NaN), record.GetLastOrder());
            Assert.AreEqual(Order.buyAt(1, Decimals.NaN, Decimals.NaN), record.GetLastOrder(OrderType.BUY));
            Assert.AreEqual(Order.sellAt(3, Decimals.NaN, Decimals.NaN), record.GetLastOrder(OrderType.SELL));
            Assert.AreEqual(Order.buyAt(1, Decimals.NaN, Decimals.NaN), record.GetLastEntry());
            Assert.AreEqual(Order.sellAt(3, Decimals.NaN, Decimals.NaN), record.GetLastExit());

            record.Operate(5);
            Assert.IsTrue(record.GetCurrentTrade().IsOpened());
            Assert.AreEqual(1, record.GetTradeCount());
            Assert.AreEqual(new Trade(Order.buyAt(1, Decimals.NaN, Decimals.NaN), Order.sellAt(3, Decimals.NaN, Decimals.NaN)), record.GetLastTrade());
            Assert.AreEqual(Order.buyAt(5, Decimals.NaN, Decimals.NaN), record.GetLastOrder());
            Assert.AreEqual(Order.buyAt(5, Decimals.NaN, Decimals.NaN), record.GetLastOrder(OrderType.BUY));
            Assert.AreEqual(Order.sellAt(3, Decimals.NaN, Decimals.NaN), record.GetLastOrder(OrderType.SELL));
            Assert.AreEqual(Order.buyAt(5, Decimals.NaN, Decimals.NaN), record.GetLastEntry());
            Assert.AreEqual(Order.sellAt(3, Decimals.NaN, Decimals.NaN), record.GetLastExit());
        }