public FirmData(IDataContext dataContext, IMarketDataProvider marketDataProvider, ITradeFactory tradeFactory) { this._marketDataProvider = marketDataProvider; this._tradeFactory = tradeFactory; this._summary = new DataTable { TableName = nameof(FirmData), Columns = { { "PortfolioId", typeof(string) }, { "PortfolioName", typeof(string) }, { "Pnl", typeof(decimal) } } }; this._summary.PrimaryKey = new[] { this._summary.Columns[0] }; this._tickers = dataContext.Securities.Select(security => security.Ticker).OrderBy(ticker => ticker).ToArray(); foreach (Portfolio portfolio in dataContext.Portfolios.OrderBy(portfolio => portfolio.Id)) { PortfolioData portfolioData = new PortfolioData(portfolio, dataContext); decimal portfolioPnl = 0m; decimal[] pnl = new decimal[this._tickers.Length]; DataTable dataTable = portfolioData.GetData(); for (int index = 0; index < this._tickers.Length; index++) { string ticker = this._tickers[index]; DataRow dataRow = dataTable.Rows.Find(ticker); if (dataRow == null) { continue; } portfolioPnl += (pnl[index] = dataRow.Field <decimal>("Pnl")); } DataRow summaryRow = this._summary.NewRow(); summaryRow.SetField("PortfolioId", portfolio.Id); summaryRow.SetField("PortfolioName", portfolio.Name); summaryRow.SetField("Pnl", portfolioPnl); this._summary.Rows.Add(summaryRow); this._pnls.Add(portfolio.Id, pnl); portfolioData.DataChanged += this.PortfolioData_DataChanged; this._portfolios.Add(portfolioData); } this._tradeFactory.TradesCreated += this.TradeFactory_TradesCreated; this._marketDataProvider.PricesChanged += this.MarketDataProvider_PricesChanged; this._timer = new Timer(this.Timer_Elapsed, null, 5000, 4000); }
public Context(ITradeFactory tradeFactory) { _tradeFactory = tradeFactory; }
public TradeRepository(IBlotterServiceClient blotterServiceClient, ITradeFactory tradeFactory) { _blotterServiceClient = blotterServiceClient; _tradeFactory = tradeFactory; }
public ExecutionRepository(IExecutionServiceClient executionServiceClient, ITradeFactory tradeFactory, IConcurrencyService concurrencyService) { _executionServiceClient = executionServiceClient; _tradeFactory = tradeFactory; _concurrencyService = concurrencyService; }