Beispiel #1
0
        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;
                }
            }));
        }
Beispiel #2
0
        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));
        }