Мне нужно решить следующую проблему, и я пока не могу придумать алгоритм, не говоря уже о реальном решении.
У меня есть таблица с аналогичной структурой / данными, как показано ниже, где идентификаторы не всегда в последовательности для одного и того же тикера / QuouteType:
ID Ticker PriceDateTime QuoteType OpenPrice HighPrice LowPrice ClosePrice
------- ------ ---------------- --------- --------- --------- -------- ----------
2036430 ^COMP 2012-02-10 20:50 95/Minute 2901.57 2905.04 2895.37 2901.71
2036429 ^COMP 2012-02-10 19:15 95/Minute 2909.63 2910.98 2899.95 2901.67
2036428 ^COMP 2012-02-10 17:40 95/Minute 2905.9 2910.27 2904.29 2909.64
2036427 ^COMP 2012-02-10 16:05 95/Minute 2902 2908.29 2895.1 2905.89
2036426 ^COMP 2012-02-09 21:00 95/Minute 2926.12 2928.01 2925.53 2927.21
Информация, которую мне нужно извлечь из этих данных, следующая:
- Сколько существует последовательных строк? Считая вниз от самого последнего (как записано в PriceDateTime), глядя на ClosePrice?
IE: для текущего примера ответ должен быть 2. ClosePrice (строка 1) = 2901,71, что больше, чем ClosePrice (строка 2) = 2901,67, но ниже, чем ClosePrice (строка 3) = 2909,64. Таким образом, оглядываясь на последнюю цену, мы имеем 2 ряда, которые «идут в одном направлении».
Конечно, я должен сделать это для многих других имен, поэтому скорость очень важна.
PS: Спасибо всем за вашу помощь, я черпал вдохновение во всех ваших ответах при построении финальной процедуры. Вы все очень добры!