private void optimizeInternally(List <string> indicatorsToTry, IndicatorSelector selector) { while (ended == false) { try { //generator.getGeneratedIndicator(Convert.ToInt32(outcomeTimeframe / 1000 / 15), Convert.ToInt32(outcomeTimeframe * 100 / 1000)); int index = getNextIndex(); if (index >= indicatorsToTry.Count) { break; } WalkerIndicator wi = IndicatorGenerator.getIndicatorByString(indicatorsToTry[index]); LearningIndicator li = new LearningIndicator(wi, priceData, outcomeCodeData, outcomeData, outcomeTimeframe, outcomeCodePercent, minPercentThreshold, learningIndicatorSteps, true); selector.pushIndicatorStatistics(li); } catch (TooLittleValidDataException e) { //Logger.log("E:" + e.Message); } catch (TooLittleStatesException e) { //Logger.log("E:" + e.Message); } catch (Exception e) { Logger.log("FATAL:" + e.Message); } } ended = true; }