Example #1
0
 private RobotFarm()
 {
     configFilePath = ExecutablePath.ExecPath + "\\farmsets.xml";
     timerThread = new Thread(TimerThreadFunction);
     portfolioTradeSettings = new AutoTradeSettings();
     packerPool = new CandlePackerPool();
 }
        public void TestMakeCandles()
        {
            var pool = new CandlePackerPool();

            var quoteNames = new[] {"EURUSD", "GBPUSD"};

            CandleDataBidAsk[] candles = null;
            for (var date = DateTime.Now.Date; date < DateTime.Now.Date.AddDays(1).AddSeconds(1); date = date.AddSeconds(22))
            {
                candles = pool.MakeCandles(new[]
                    {
                        new QuoteData(1, 1.0001f, date),
                        new QuoteData(2, 2.0001f, date),
                    }, ref quoteNames);
                Assert.IsNotNull(candles, "CandlePackerPool.MakeCandles - должен таки вернуть свечи");
                Assert.AreEqual(candles.Length, 2, "CandlePackerPool.MakeCandles - должен таки вернуть 2 свечи");
            }
            var candle = candles[0];
            Assert.Less((DateTime.Now.Date.AddDays(1) - candle.timeClose).TotalSeconds, 30,
                "CandlePackerPool.MakeCandles - должен закончиться на последней свече за день");

            // добавить левый тикер
            quoteNames = new[] { "EURUSD", "IDDQD" };
            candles = pool.MakeCandles(new[]
                    {
                        new QuoteData(1, 1.0001f, DateTime.Now),
                        new QuoteData(2, 2.0001f, DateTime.Now),
                    }, ref quoteNames);
            Assert.AreEqual(1, candles.Length, "CandlePackerPool.MakeCandles - должен пропустить левый тикер (свечу)");
            Assert.AreEqual(1, quoteNames.Length, "CandlePackerPool.MakeCandles - должен пропустить левый тикер");
            Assert.IsNotNull(candles[0], "CandlePackerPool.MakeCandles - оставшаяся свеча не должна пропасть");
        }
Example #3
0
 public RobotFarm(UpdateTickersCacheForRobotsExDel updateTickersCacheForRobots)
 {
     packerPool = new CandlePackerPool();
     this.updateTickersCacheForRobots = updateTickersCacheForRobots;
     startRoutine.RunWorkerCompleted += StartRoutineCompleted;
     startRoutine.DoWork += StartRoutineDoWork;
     processQuoteRoutine.DoWork += ProcessQuoteRoutineDoWork;
     try
     {
         robots = LoadRobots();
     }
     catch (Exception ex)
     {
         Logger.Error("Ошибка загрузки роботов", ex);
     }
 }