// добавляет новый уровень, проверят чтобы не было дублей private int AddLevel(int Bar, double Price1, double Price2) { trueLevel tl; for (int i = 0; i < Levels.Count; i++) { if (Levels[i].Bar == Bar) { return(0); } } tl = new trueLevel(Bar, Price1, Price2); Levels.Add(tl); return(tl.ID); }
public int GetActualSortedLevels(ref trueLevel[] l) { Update(); int i = 0, j = 0; if (Levels.Count > 0) { l = new trueLevel[Levels.Count]; int c = 0; for (i = 0; i < Levels.Count; i++) { if (Levels[i].isActual()) { l[c] = Levels[i]; c++; } } Array.Resize <trueLevel>(ref l, c); //sort the array by Level2 price Array.Sort <trueLevel>(l, CompareLevels); return(c); } return(0); }
private static int CompareLevels(trueLevel x, trueLevel y) { int i = Math.Sign(x.PriceLevel2 - y.PriceLevel2); return(i); }