public RebalancementModel Jour0(DataFeed feedJour0, int periodeRebalancement) { RebalancementModel couverture = new RebalancementModel(option, dateDebut, (double)feedJour0.PriceList["1"], dataFeedProvider.NumberOfDaysPerYear, periodeRebalancement); couverture.NbActifSsJacents = couverture.NbActifSsJacents; couverture.ValeurPortefeuille = couverture.prixOption(); couverture.Liquidite = couverture.Liquidite; return(couverture); }
public RebalancementModel(IOption option, DateTime date, double spotPrice, int nbJourParAn, int periodeRebalancement, RebalancementModel ancienJour) { this.option = option; this.date = date; this.spotPrice = spotPrice; this.nbJourParAn = nbJourParAn; this.periodeRebalancement = periodeRebalancement; this.ancienJour = ancienJour; nbActifSsJacents = NbActifSsJacents; valeurPortefeuille = ValeurPortefeuille; liquidite = Liquidite; }
public List <RebalancementModel> GetRebalancement() { List <RebalancementModel> couvertures = new List <RebalancementModel>(); var priceList = dataFeedProvider.GetDataFeed(option, dateDebut); int periodeRebalancement = 1; RebalancementModel couverture = Jour0(priceList[0], periodeRebalancement); double optionInitiale = couverture.prixOption(); couvertures.Add(couverture); for (var i = 1; i < priceList.Count; i += periodeRebalancement) { var element = priceList[i]; decimal spotPrice = element.PriceList["1"]; RebalancementModel NewCouverture = new RebalancementModel(option, element.Date, (double)spotPrice, dataFeedProvider.NumberOfDaysPerYear, periodeRebalancement, couverture); couverture = NewCouverture; couvertures.Add(NewCouverture); } return(couvertures); }