Exemplo n.º 1
0
        public void CreateTimeSeriesSubscriptionTest()
        {
            var symbol = "SYMA";
            var s      = DXEndpoint.Create().Feed.CreateTimeSeriesSubscription <IDxCandle>();

            s.AddSymbols(symbol);
            TestListener eventListener = new TestListener();

            s.AddEventListener(eventListener);

            var playedCandle = new PlayedCandle(symbol, Tools.DateToUnixTime(DateTime.Now), 123, 100, 12.34, 56.78, 9.0, 43.21, 1000, 999, 1001, 1002, 1, 777, 888, EventFlag.RemoveSymbol);

            EventPlayer <IDxCandle> eventPlayer = new EventPlayer <IDxCandle>(s as DXFeedSubscription <IDxCandle>);

            eventPlayer.PlayEvents(symbol, playedCandle);
            Assert.AreEqual(eventListener.GetEventCount <IDxCandle>(symbol), 1);
            IDxCandle receivedCandle = eventListener.GetLastEvent <IDxCandle>().Event;

            Assert.AreEqual(symbol, receivedCandle.EventSymbol.ToString());
            CompareCandles(playedCandle, receivedCandle);

            //thread-safety case
            DXEndpoint.Create();
            Parallel.For(ParallelFrom, ParallelTo, i =>
            {
                Assert.DoesNotThrow(() =>
                {
                    DXEndpoint.GetInstance().Feed.CreateTimeSeriesSubscription <IDxCandle>();
                });
            });
        }
Exemplo n.º 2
0
        public void CreateSubscriptionTest()
        {
            var symbol = "SYMA";
            var s      = DXEndpoint.Create().Feed.CreateSubscription <IDxOrder>();

            s.AddSymbols(symbol);
            TestListener eventListener = new TestListener();

            s.AddEventListener(eventListener);

            var playedOrder = new PlayedOrder(symbol, 0, 0x4e54560000000006, 0, 0, 0, 0, 100, 25, Scope.Order, Side.Buy, 'A', OrderSource.NTV, "AAAA");

            EventPlayer <IDxOrder> eventPlayer = new EventPlayer <IDxOrder>(s as DXFeedSubscription <IDxOrder>);

            eventPlayer.PlayEvents(symbol, playedOrder);
            Assert.AreEqual(eventListener.GetEventCount <IDxOrder>(symbol), 1);

            IDxOrder receivedOrder = eventListener.GetLastEvent <IDxOrder>().Event;

            Assert.AreEqual(symbol, receivedOrder.EventSymbol);
            CompareOrders(playedOrder, receivedOrder);

            //try to create subscription on closed endpoint
            DXEndpoint.GetInstance().Close();
            Assert.Catch(typeof(InvalidOperationException), () =>
            {
                DXFeed.GetInstance().CreateSubscription <IDxOrder>();
            });

            //thread-safety case
            DXEndpoint.Create();
            Parallel.For(ParallelFrom, ParallelTo, i =>
            {
                Assert.DoesNotThrow(() =>
                {
                    DXFeed.GetInstance().CreateSubscription <IDxOrder>();
                });
            });
        }
        public void ResetFromTimeStampTest()
        {
            string       symbol        = "SYMA";
            TestListener eventListener = new TestListener();
            var          s             = DXEndpoint.Create().Feed.CreateTimeSeriesSubscription <IDxCandle>();

            s.OnSubscriptionClosed += OnSubscriptionClosed;
            s.OnSymbolsAdded       += OnSymbolsAdded;
            s.OnSymbolsRemoved     += OnSymbolsRemoved;
            s.AddEventListener(eventListener);
            s.AddSymbols(symbol);
            Assert.AreEqual(long.MaxValue, s.FromTimeStamp);

            //try to change FromTimeStamp property
            isFiresOnSubscriptionClosed = false;
            isFiresOnSymbolsAdded       = false;
            isFiresOnSymbolsRemoved     = false;
            long fromTime = Tools.DateToUnixTime(DateTime.Now.AddMonths(-1));

            s.FromTimeStamp = fromTime;
            Assert.AreEqual(fromTime, s.FromTimeStamp);
            Assert.True(s.GetSymbols().SetEquals(new object[] { symbol }));
            Assert.True(s.EventTypes.SetEquals(new Type[] { typeof(IDxCandle) }));
            Assert.False(isFiresOnSubscriptionClosed);
            Assert.False(isFiresOnSymbolsAdded);
            Assert.False(isFiresOnSymbolsRemoved);

            var playedCandle = new PlayedCandle(symbol, Tools.DateToUnixTime(DateTime.Now), 123, 100, 12.34, 56.78, 9.0, 43.21, 1000, 999, 1001, 1002, 1, 777, 888, EventFlag.RemoveSymbol);

            EventPlayer <IDxCandle> eventPlayer = new EventPlayer <IDxCandle>(s as DXFeedSubscription <IDxCandle>);

            eventPlayer.PlayEvents(symbol, playedCandle);
            Assert.AreEqual(eventListener.GetEventCount <IDxCandle>(symbol), 1);
            IDxCandle receivedCandle = eventListener.GetLastEvent <IDxCandle>().Event;

            Assert.AreEqual(symbol, receivedCandle.EventSymbol.ToString());
            DXFeedTest.CompareCandles(playedCandle, receivedCandle);
        }
Exemplo n.º 4
0
        public void TestAddSymbol()
        {
            TestListener listener = new TestListener(eventsTimeout, eventsSleepTime, IsConnected);
            EventType    events   = EventType.Order;

            using (var con = new NativeConnection(address, OnDisconnect))
            {
                Interlocked.Exchange(ref isConnected, 1);
                using (IDxSubscription s = con.CreateSubscription(events, listener))
                {
                    s.AddSymbol("AAPL");

                    listener.WaitEvents <IDxOrder>();

                    TestListener.ReceivedEvent <IDxOrder> e = listener.GetLastEvent <IDxOrder>();
                    Assert.AreEqual("AAPL", e.Symbol);

                    s.AddSymbol("IBM");
                    listener.ClearEvents <IDxOrder>();
                    listener.WaitEvents <IDxOrder>("AAPL", "IBM");
                }
            }
        }