using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using MarketData.Utils;
using MarketData.Numerical;

namespace MarketData.MarketDataModel
{
  public class DividendLoadCollection : List<DividendLoadElement>
  {
    public DividendLoadCollection()
    {
    }
    public DividendLoadCollection(List<DividendLoadElement> elements)
    {
      foreach(DividendLoadElement dividendLoadElement in elements)Add(dividendLoadElement);
    }
    //public DividendLoadCollection RemoveOutliers(int standardDeviations=4)
    //{
    //  double[] values = (from DividendLoadElement element in this select element.DividendLoadPcnt).ToArray();
    //  double valuesStd=Numerics.Volatility(ref values)*standardDeviations;
    //  DividendLoadCollection dividendLoadCollection=new DividendLoadCollection((from DividendLoadElement element in this where element.DividendLoadPcnt <=valuesStd select element).ToList());
    //  if(0==dividendLoadCollection.Count)return this;
    //  else return dividendLoadCollection;
    //}
  }
  public class DividendLoadElement
  {
    public String Symbol{get;set;}
    public int Year{get;set;}
    public double EPS{get;set;}
    public double CashAmount{get;set;}
    public int Payments{get;set;}
    public double DividendLoadPcnt{get;set;}
  }
}
