protected List <PredictionOfCurrencyLearnResult> FitSimpleNeuralNetwork(bool saveLearnResult = false) { InitData(); InitSimpleNeuralNetwork(); var result = new List <PredictionOfCurrencyLearnResult>(); for (var i = 0; i < DataManager.LearnData.Data.Count - 1; i++) { var input = DataManager.LearnData[i].Vector; var ideal = (Vector) new double[] { DataManager.LearnData[i + 1].Vector.Values.Last() }; var ideal1 = (Vector) new double[] { DataManager.LearnData[i + 1].Vector.Values.Last() }; var(output, error) = SimpleNeuralNetwork.Learn(input, ideal); result.Add(new PredictionOfCurrencyLearnResult { Date = DataManager.LearnData.Data[i].Date, Error = error, Output = DataManager.ConvertOutput(SimpleNeuralNetwork.ConvertOutput(output)), Ideal = DataManager.ConvertOutput(ideal1), Input = DataManager.ConvertInput(input), }); } SimpleNeuralNetwork.Save(NeuralNetworkName); if (saveLearnResult) { SaveLearnProgress(result); } return(result); }