public List <OpenOrder> GetOpenOrders(CurrencyPair CurPair) { FXMarket fxmkt = FXMH.GetArtificialFXMarket(DateTime.UtcNow); Dictionary <string, PnLElement> pnlInfo = APnL.ToTable(FXMH, DateTime.UtcNow); return(DataProvider.GetOpenOrders(fxmkt, pnlInfo, CurPair)); }
public void UpdateHistory(Currency ccyChek, FXMarketHistory fxmh) { if (!TxLoaded) { throw new Exception("Load Transactions First!"); } if (ccyChek != CcyRefLoaded) { throw new Exception("Load Transactions First with correct Fiat!"); } if (fxmh.Freq != FreqLoaded) { FreqLoaded = fxmh.Freq; this.PublishInfo($"Recalculating Chart Data {CcyRefLoaded} - {FreqLoaded} ..."); foreach (DateTime date in fxmh.GetAllDates()) { if (date >= StartDate) { FXMarket fx = fxmh.GetArtificialFXMarket(date); if (!History.Keys.Contains(date)) { AddAllocationToHistory(GetClosestAllocation(date), fx); } History[date].CalculateTotal(fx, CcyRefLoaded); } } } }
public void FXMktHist_GetArtificialFXMarket() { FXMarketHistory fxMH = MarketTestTools.CreateMktHistory(); FXMarket fxArt = fxMH.GetArtificialFXMarket(MarketTestTools.dateArt, new CurrencyPair(Currency.EUR, Currency.USD)); XChangeRate xr = fxArt.GetQuote(Currency.EUR, Currency.USD, true); Assert.AreEqual(MarketTestTools.EurUsdArtRate.Rate, xr.Rate, Math.Pow(10, -6)); }
public void FXMktHist_GetAllDates() { FXMarketHistory fxmh = MarketTestTools.CreateMktHistory(); FXMarket artMkt = fxmh.GetArtificialFXMarket(MarketTestTools.dateArt); TestTools <DateTime> .ListComparisonTest(fxmh.GetAllDates().ToList(), new List <DateTime> { MarketTestTools.date1, MarketTestTools.dateArt, MarketTestTools.date2 }); }
private void AddTransaction(Transaction tx, DateTime nextTxDate, FXMarketHistory fxmh) { Allocation alloc = GetClosestAllocation(tx.Date, true); FXMarket FX = fxmh.GetArtificialFXMarket(tx.Date); alloc = alloc.AddTransaction(tx, FX); alloc.CalculateTotal(FX); if (History.ContainsKey(tx.Date)) { tx.Date = tx.Date.AddSeconds(1); } History.Add(tx.Date, alloc); // update the same allocation for the following days List <DateTime> datesList = fxmh.ArtificialFXMarkets .Keys .Where(x => x > tx.Date && x < nextTxDate) .Select(x => x).ToList(); foreach (DateTime date in datesList) { AddAllocationToHistory(alloc, fxmh.GetArtificialFXMarket(tx.Date)); } }