コード例 #1
0
        private SortedDictionary<float, StockPersonality> EvalPersonalityList(StockSerie stockSerie, List<StockPersonality> personalityList)
        {
            SortedDictionary<float, StockPersonality> returnDico = new SortedDictionary<float, StockPersonality>();

            float returnValue;
            foreach (StockPersonality stockPersonality in personalityList)
            {
                stockSerie.StockAnalysis.StockPersonality = stockPersonality;
                stockSerie.AddSerie(StockDataType.SAREX_FOLLOWER_CUSTOM, null);
                stockSerie.AddSerie(StockIndicatorType.BUY_SELL_RATE, null);

                returnValue = stockSerie.CalculateSarReturn(StockDataType.SAREX_FOLLOWER_CUSTOM);
                if (returnValue >0 && !returnDico.ContainsKey(returnValue))
                {
                    returnDico.Add(returnValue, stockPersonality);
                }
            }

            return returnDico;
        }
コード例 #2
0
        private void UpdateBestForValue(StockSerie stockSerie, FloatPropertyRange range, bool refreshGUI,
            ref float bestReturn, ref StockPersonality bestPersonality, float currentValue)
        {
            stockSerie.StockAnalysis.StockPersonality.SetFloatPropertyValue(range, currentValue);
            stockSerie.ResetSAREX();

            float currentReturn = stockSerie.CalculateSarReturn(StockDataType.SAREX_FOLLOWER_CUSTOM);

            if ( currentReturn > bestReturn)
            {
                bestPersonality = stockSerie.StockAnalysis.StockPersonality.Clone();
                bestReturn = currentReturn;

                // Refresh GUI
                if (refreshGUI)
                {
                    this.simulationParameterControl.Personality = bestPersonality;
                }
            }
            if (!this.allStocksCheckBox.Checked)
            {
                if (this.progressBar.Value < this.progressBar.Maximum)
                {
                    this.progressBar.Value++;
                }
                else
                {
                    this.progressBar.Value = 0;
                }
            }
        }