Ejemplo n.º 1
0
 private RobotFarm()
 {
     configFilePath         = ExecutablePath.ExecPath + "\\farmsets.xml";
     timerThread            = new Thread(TimerThreadFunction);
     portfolioTradeSettings = new AutoTradeSettings();
     packerPool             = new CandlePackerPool();
 }
Ejemplo n.º 2
0
        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 - оставшаяся свеча не должна пропасть");
        }
Ejemplo n.º 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);
     }
 }