/// <summary> /// Get stock data for single symbol /// </summary> /// <param name="stockSymbol">Stock symbol to get data for</param> /// <param name="lookBack">Number of units to look back</param> /// <returns>Tuple with training data and test data in that order</returns> public async Task <IList <StockInput> > GetStockData(string stockSymbol, TradingFrequency aggUnits, int lookBack = 1000) { var stockData = await _alpacaDataClient.GetBarSetAsync(new BarSetRequest(stockSymbol, (TimeFrame)aggUnits) { Limit = lookBack }); return(GetStockInputs(stockSymbol, stockData[stockSymbol])); }
public StrategyHandler( ILogger <StrategyHandler> logger, IAlpacaClient alpacaClient, ITrackingRepository trackingRepository, IStrategy strategy, TradingFrequency frequency, decimal percentageOfEquityToAllocate, string stockSymbol) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _alpacaClient = alpacaClient ?? throw new ArgumentException(nameof(alpacaClient)); _trackingRepository = trackingRepository ?? throw new ArgumentException(nameof(trackingRepository)); _strategy = strategy ?? throw new ArgumentException(nameof(strategy)); _tradingFrequency = frequency; _percentageOfEquityToAllocate = percentageOfEquityToAllocate; _stockSymbol = stockSymbol; HistoricalData = new List <StockInput>(); }