Verileri, Uzun İşlem Saatleri için verileri içeren bir hisse senedi sağlayıcısından alıyorum.
Veriler, json'dan dönüştürdüğüm 1 dakikalık veri noktaları toplanır List<Aggregate>
burada toplama Yüksek, Düşük, Aç, Kapat ve toplu 1 dakikalık pencerenin başlangıç zamanını içerir.
Sorgularım birden fazla işlem gününü kapsıyor-yüzlerce olabilir ve binlerce olabilir. Ve göstergelerin hesaplanmasında mesai sonrası veriler hariç tutulmalıdır.
Bu yüzden nesnenin yüzlerce öğesinin bir listesi var:
public class Aggregate
{
public decimal Close { get; set; }
public decimal UnixTimestamp { get; set; } // milliseconds
...
}
ve ayrıca DateTime FromDate
ve DateTime ToDate
yüzlerce güne yayılan.
Şimdi, mesai sonrası verileri filtrelemenin kesin bir yolu, UnixTimestamp
her öğenin normal işlem süresi penceresine 9: 30 AM PST-16: 00 PM PST. Bu, her birini dönüştürmeyi gerektirir UnixTimestamp
-e doğru DateTime
. Bu çok fazla karşılaştırma... Sezgisel olarak, dönüştürmek daha iyidir FromDate
ve ToDate
-e doğru UnixTimestamp
ve öğeleri Lınq ile filtrelemek.
long unixTimeMsecToDate = new DateTimeOffset(aggrParams.ToDate).ToUnixTimeMilliseconds();
long unixTimeMsecFromDate = new DateTimeOffset(aggrParams.FromDate).ToUnixTimeMilliseconds();
Ancak, parmağımı tam koda koyamıyorum... Tarihleri mi karıştırıyorsun? Nasıl?