public RobotContext(TradeParams tradeParams, StatesFactory factory, TradeAdvisor advisor, List<Candle> history = null)
        {
            Logger.Debug("I'm started");
            candles = history ?? new List<Candle>();	//IMPROVE историю хранить не нужно (отправлять за историей к Advisor)
            Advisor = advisor;
            Factory = factory;

            StopLossSize = tradeParams.StopLoss;
            TrailingStopLoss = (int) (StopLossSize * tradeParams.TrailingStopPercent);
            BreakevenSize = (int) (StopLossSize * tradeParams.BreakevenPercent);
            PegtopSize = tradeParams.PegtopSize;
            EndTime = tradeParams.EndTime;

            CurrentState = DefaultState;
            ExtremumsRepository = ((SearchState) CurrentState).ExtremumsRepo;
        }
		private void InitFactory(XElement types)
		{
			var xElement = types.Element("Trade");
			if (xElement == null)
				throw new Exception("Can't find Trade state type");

			var tradeType = xElement.Value.ToLower();
			StatesFactory.TradeStateTypes tsType;
			switch (tradeType)
			{
				case "breakeven":
					tsType = StatesFactory.TradeStateTypes.Breakeven;
					break;
				case "trailing":
					tsType = StatesFactory.TradeStateTypes.Trailing;
					break;
				default:
					tsType = StatesFactory.TradeStateTypes.Basic;
					break;
			}
			Factory = new StatesFactory(tsType);
		}