public static IStockPortfolioStrategy CreateStrategy(string name, List<StockSerie> stockSeries, StockPortofolio portfolio, StockDictionary stockDictionary)
 {
     IStockPortfolioStrategy strategy = null;
      if (strategyList == null)
      {
     GetStrategyList();
      }
      if (strategyList.Contains(name))
      {
     PortfolioStrategyManager sm = new PortfolioStrategyManager();
     strategy = (IStockPortfolioStrategy)sm.GetType().Assembly.CreateInstance("StockAnalyzer.StockPortfolioStrategy." + name);
     strategy.Initialise(stockSeries, portfolio, stockDictionary);
      }
      return strategy;
 }
 public static List<string> GetStrategyList()
 {
     if (strategyList == null)
      {
     strategyList = new List<string>();
     PortfolioStrategyManager sm = new PortfolioStrategyManager();
     foreach (Type t in sm.GetType().Assembly.GetTypes().Where(t => t.GetInterface("IStockPortfolioStrategy") != null))
     {
        if (t.Name != "StockPortfolioStrategyBase")
        {
           strategyList.Add(t.Name);
        }
     }
      }
      strategyList.Sort();
      return strategyList;
 }