public string GetCharMapping(IStockHistory hist) { string totalMapping = ""; DateTime startDate = hist.MinDate; DateTime endDate = hist.MaxDate; while (startDate < endDate) { IStockData todayData = hist.GetStock(startDate); IStockData pervData = hist.GetPrevDayStock(startDate); if (todayData == null) { startDate = DateFunc.GetNextWorkday(startDate); continue; } string s = ParseChars(pervData, todayData); if (!string.IsNullOrEmpty(s)) { totalMapping += s + "|"; } startDate = DateFunc.GetNextWorkday(startDate); } return(totalMapping); }
public string GetCharMapping(IStockHistory hist) { string totalMapping = ""; DateTime startDate = hist.MinDate; DateTime endDate = hist.MaxDate; while (startDate < endDate) { IStockData todayData = hist.GetStock(startDate); IStockData pervData = hist.GetPrevDayStock(startDate); if (todayData == null) { startDate = DateFunc.GetNextWorkday(startDate); continue; } string s = ParseChars(pervData, todayData); if (!string.IsNullOrEmpty(s)) { totalMapping += s + "|"; } startDate = DateFunc.GetNextWorkday(startDate); } return totalMapping; }
public void Calc(IStockHistory hist) { DateTime startDate = hist.MinDate; DateTime endDate = hist.MaxDate; while (startDate < endDate) { IStockData stock = hist.GetStock(startDate); CalculateSignal(startDate, stock); startDate = DateFunc.GetNextWorkday(startDate); } }
/// <summary> /// Add stock data from a stock history /// </summary> /// <param name="hist">a stock history</param> public void Calc(IStockHistory hist) { DateTime startDate = hist.MinDate; DateTime endDate = hist.MaxDate; while (startDate < endDate) { IStockData stock = hist.GetStock(startDate); results_.AddStockData(stock); startDate = startDate.AddDays(1); } }
// 股票市值 public double MarketValue(DateTime day) { IStockData stockProp = History.GetStock(day); if (stockProp == null) { stockProp = History.GetPrevDayStock(day); } if (stockProp != null) { return(_CurrentStock.Count * stockProp.EndPrice); } else { return(0); } }
public ICollection <StockVertex> FindVertex(IStockHistory hist) { Dictionary <int, StockVertex> datePosToVertex = new Dictionary <int, StockVertex>(); //List<StockVertex> vertexes = new List<StockVertex>(); Vertexes vertexes = new Vertexes(); //FixedSizeLinkedList<IStockData> fixedvertexes = new FixedSizeLinkedList<IStockData>(TIME_WINDOW_MARGIN); FixedSizeLinkedList <SortStock> fixedvertexes = new FixedSizeLinkedList <SortStock>(TIME_WINDOW_MARGIN); FixedSizeLinkedList <SortStock> fixedvertexesmin = new FixedSizeLinkedList <SortStock>(TIME_WINDOW_MARGIN); DateTime startDate = hist.MinDate; DateTime endDate = hist.MaxDate; int currentIdx = 0; while (startDate < endDate) { IStockData stock = hist.GetStock(startDate); if (stock != null) { fixedvertexes.AddLast(new SortStock(currentIdx, startDate, stock.MaxPrice)); fixedvertexesmin.AddLast(new SortStock(currentIdx, startDate, stock.MinPrice)); } if (fixedvertexes.IsEnough()) { SortStock stockMax = fixedvertexes.FindMax(); SortStock stockMin = fixedvertexesmin.FindMin(); vertexes.Add(CreateVertex(stockMax, VertexType.Max)); vertexes.Add(CreateVertex(stockMin, VertexType.Min)); } startDate = DateFunc.GetNextWorkday(startDate); currentIdx++; } return(vertexes.GetAll()); }
public ICollection<StockVertex> FindVertex(IStockHistory hist) { Dictionary<int, StockVertex> datePosToVertex = new Dictionary<int, StockVertex>(); //List<StockVertex> vertexes = new List<StockVertex>(); Vertexes vertexes = new Vertexes(); //FixedSizeLinkedList<IStockData> fixedvertexes = new FixedSizeLinkedList<IStockData>(TIME_WINDOW_MARGIN); FixedSizeLinkedList<SortStock> fixedvertexes = new FixedSizeLinkedList<SortStock>(TIME_WINDOW_MARGIN); FixedSizeLinkedList<SortStock> fixedvertexesmin = new FixedSizeLinkedList<SortStock>(TIME_WINDOW_MARGIN); DateTime startDate = hist.MinDate; DateTime endDate = hist.MaxDate; int currentIdx = 0; while (startDate < endDate) { IStockData stock = hist.GetStock(startDate); if (stock != null) { fixedvertexes.AddLast(new SortStock(currentIdx, startDate, stock.MaxPrice)); fixedvertexesmin.AddLast(new SortStock(currentIdx, startDate, stock.MinPrice)); } if (fixedvertexes.IsEnough()) { SortStock stockMax = fixedvertexes.FindMax(); SortStock stockMin = fixedvertexesmin.FindMin(); vertexes.Add(CreateVertex(stockMax, VertexType.Max)); vertexes.Add(CreateVertex(stockMin, VertexType.Min)); } startDate = DateFunc.GetNextWorkday(startDate); currentIdx++; } return vertexes.GetAll(); }