public int GetPercentageOfBidsAtTopOrBottom(int theKey, dataType thedataType, double MedianPrice, TopOrBottomEnum theTopOrBottom) { double totalBids = 0; double totalAsks = 0; double percentageOfBids = 0; SortedList<double, QuoteDataAtPrice> currentBarDataSL = BarDataCollection[theKey]; foreach (KeyValuePair<double, QuoteDataAtPrice> kvp in currentBarDataSL) { if (thedataType == dataType.bidAndAskSize) { if ((theTopOrBottom == TopOrBottomEnum.Top) && (kvp.Value.Price >= MedianPrice)) { totalBids += kvp.Value.TotalBidSize; totalAsks += kvp.Value.TotalAskSize; } else if ((theTopOrBottom == TopOrBottomEnum.Bottom) && (kvp.Value.Price <= MedianPrice)) { totalBids += kvp.Value.TotalBidSize; totalAsks += kvp.Value.TotalAskSize; } } } if ((totalBids + totalAsks) > 0) return (int) ((100 * totalBids) / (totalBids + totalAsks)) ; return 0; }
public bool IsTopOrBottomQuarter(double Price, double High, double Low, TopOrBottomEnum TopOrBottom) { if (TopOrBottom == TopOrBottomEnum.Top) return ((((High - Low) * 0.75) + Low) < Price) ? true: false; else return ((((High - Low) * 0.25) + Low) > Price) ? true: false; }
public bool IsTopOrBottomThird(double Price, double High, double Low, TopOrBottomEnum TopOrBottom) { if (TopOrBottom == TopOrBottomEnum.Top) return ((((High - Low) * 0.666) + Low) < Price) ? true: false; else return ((((High - Low) * 0.333) + Low) > Price) ? true: false; }
public bool HasMoreTailAtTopOrBottom(int BarIndex, TopOrBottomEnum theTopOrBottomEnum) { double tailAtTop = High[BarIndex] - Math.Max(Open[BarIndex], Close[BarIndex]); double tailAtBottom = Math.Min(Open[BarIndex], Close[BarIndex]) - Low[BarIndex]; //Always true when there is no tail in interested direction if ((theTopOrBottomEnum == TopOrBottomEnum.Top) && tailAtBottom == 0) return true; if ((theTopOrBottomEnum == TopOrBottomEnum.Bottom) && tailAtTop == 0) return true; if (theTopOrBottomEnum == TopOrBottomEnum.Top) return (tailAtTop > tailAtBottom) ? true : false; if (theTopOrBottomEnum == TopOrBottomEnum.Bottom) return (tailAtTop < tailAtBottom) ? true : false; return false; }