Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }