public Task <bool> DeleteBestNetworkDTO(BestNetworkDTO bestNetwork) { return(Task.Run( () => { try { var table = _db.GetCollection <BestNetworkDTO>(DbCollectionStringBestNetwork); table.Delete(x => x.StockId == bestNetwork.StockId); return true; } catch (Exception ex) { _loggingService.Warn($"{nameof(DeleteBestNetworkDTO)}: {ex}"); return false; } })); }
public Task <BestNetworkDTO> GetBestNetworkDTOFromId(int id) { return(Task.Run(() => { BestNetworkDTO bestNetworkDto = null; if (_db.CollectionExists(DbCollectionStringBestNetwork)) { try { bestNetworkDto = _db.GetCollection <BestNetworkDTO>(DbCollectionStringBestNetwork).FindById(id); } catch (Exception ex) { _loggingService.Warn($"{nameof(GetBestNetworkDTOFromId)}: {ex}"); } } return bestNetworkDto; })); }
public TrainingSession(StockPortfolio portfolio, Stock stock, BestNetworkDTO dto, NeuralStockSettings settings) { _statisticsService = ApplicationHelper.CurrentCompositionContainer.GetExportedValue <IStatisticsService>(); Portfolio = portfolio; Stock = stock; TrainSamplePercentage = settings.PercentageTraining; NumberAnns = settings.NumberANNs; NumberHiddenLayers = settings.NumberHiddenLayers; NumberNeuronsPerHiddenLayer = settings.NumberNeuronsHiddenLayer; NumberDaysBetweenTransactions = settings.NumberDaysBetweenTransactions; BuyLevel = dto.BuyLevel; SellLevel = dto.SellLevel; var strategy = new StrategyI(StrategySettings.FromJson(dto.StrategySettings), settings) { TrainingMeansInput = dto.TrainingMeansInput?.ToArray(), TrainingStdDevsInput = dto.TrainingStdDevsInput?.ToArray(), TrainingMeansOutput = dto.TrainingMeansOutput?.ToArray(), TrainingStdDevsOutput = dto.TrainingStdDevsOutput?.ToArray() }; var tmpFileName = Path.GetTempFileName(); File.WriteAllBytes(tmpFileName, dto.BestNeuralNet); var net = new NeuralNet(tmpFileName); _cachedPredictions.Clear(); SplitTrainTestData(); var trainingTestingData = PrepareAnnData(strategy, false); var prediction = Predict(trainingTestingData, net, false); var profitLossCalculator = new ProfitLossCalculator(Portfolio.Reset(), this, prediction.Item1); _cachedPredictions.Add(new Prediction(profitLossCalculator, strategy, net, prediction.Item2, prediction.Item3)); }