public static AssetMarket CreateAssetMarket(FXMarket populate_fx = null) { AssetMarket aMkt = new AssetMarket(); aMkt.AddQuote(new AssetCcyPair(Asset3(), Ccy1()), 48.5); aMkt.AddQuote(new AssetCcyPair(Asset1(), Ccy1()), 15000.0); if (populate_fx != null) { aMkt.PopulateWithFXMarket(populate_fx); } return(aMkt); }
public void HistoricalAccountingData() { HistoricalAccountingData had = new HistoricalAccountingData(); had.SetCcyDB(GetCcyDB()); // Create AccData 1 FXMarket fx1 = Init.CreateFXMarket(); fx1.CcyRef = had.CcyDB.RefCcy; fx1.AddQuote(new CurrencyPair("GBP", "EUR"), 1.1); fx1.AddQuote(new CurrencyPair("GBP", "JPY"), 130); AssetMarket amkt1 = Init.CreateAssetMarket(); amkt1.AddQuote(new AssetCcyPair(new Asset("AAPL"), new Currency("USD")), 1234.56); amkt1.PopulateWithFXMarket(fx1); List <Category> list = new List <Category> { Init.CreateCategory1(), Init.CreateCategory2() }; AccountingData ad1 = new AccountingData(list, fx1, amkt1); had.AddData(new DateTime(2020, 1, 1), ad1); // Create AccData2 FXMarket fx2 = new FXMarket(); fx2.Copy(fx1); fx2.AddQuote(new CurrencyPair("EUR", "USD"), 1.2); fx2.AddQuote(new CurrencyPair("GBP", "EUR"), 1.15); AssetMarket amkt2 = new AssetMarket(); amkt2.Copy(amkt1); amkt2.AddQuote(new AssetCcyPair(new Asset("BNP"), new Currency("EUR")), 50.0); amkt2.PopulateWithFXMarket(fx2); AccountingData ad2 = new AccountingData(list, fx2, amkt2); had.AddData(new DateTime(2020, 2, 3), ad2); // Test string fileName = SerializeObject(had, "HistoricalAccountingData"); HistoricalAccountingData desHad = DeserializeObject <HistoricalAccountingData>(fileName); Assert.IsTrue(had == desHad); }
public AccountingData Copy() { List <Category> newData = new List <Category> { }; foreach (var cat in _Data) { Category copyCat = cat.Copy(); newData.Add(copyCat); } FXMarket fxmkt = new FXMarket(_CcyDB.RefCcy); fxmkt.Copy(_FXMarket); AssetMarket aMkt = new AssetMarket(); aMkt.Copy(_AssetMarket); aMkt.PopulateWithFXMarket(fxmkt); AccountingData res = new AccountingData(_CcyDB) { _Ccy = (Currency)_Ccy.Clone(), _TotalValue = _TotalValue, _Data = newData, _FXMarket = fxmkt, _AssetMarket = aMkt, _Map = null }; res.ReorgAccountingData(_Map); foreach (Category cat in newData) { cat.ModifyAmountEventHandler += res.UpdateTotalAmount; } return(res); }
public void UpdateAssetMarket() { _AssetMarket.PopulateWithFXMarket(_FXMarket); }