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); }