我有以下問題需要解決,而且我似乎無法提出一個算法,從來沒有想到一個實際的解決方案。計數有序數據
我具有類似結構的表/數據作爲以下內容,其中的ID並不總是按順序對同一定單/ 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(第3行)= 2909.64大於ClosePrice(行2)= 2901.67但較低。因此,從最近的價格來看,我們有2排「走向同一個方向」。
當然,我必須通過很多其他名稱來做到這一點,所以速度非常重要。 PS:謝謝大家的幫助,我在構建最終程序時從所有答案中獲得靈感。你們都很親切!
如果第三排有'ClosePrice = 2901.69'(即大於第二行但小於第一行),它會被計算在內嗎?如果它是「2901.67」(與第二行相同)呢? – 2012-03-13 16:24:31
不,它不會,因爲它會打破序列,比第二個更高。整個想法是將價格從一個時期持續增加/下降,並顯示持續增長持續了多久。 如果它是相等的,它就是重要的。 – user1158959 2012-03-14 12:24:02