Mam dane od dostawcy akcji, które obejmują dane za wydłużone godziny handlu.
Dane stanowią zagregowane 1-minutowe punkty danych, które przekształcam z JSON List<Aggregate>
gdzie urządzenie zawiera Maksimum, Minimum, Otwieranie, Zamykanie i Czas rozpoczęcia zagregowanym 1-minutowym okna.
Moje wnioski obejmują kilka dni handlowych - mogą ich być setki, a może i tysiące. I moje obliczenia wskaźników powinien eliminować dane dotyczące okresu wolnego czasu.
Tak więc, mam listę z setek elementów obiektu:
public class Aggregate
{
public decimal Close { get; set; }
public decimal UnixTimestamp { get; set; } // milliseconds
...
}
a także DateTime FromDate
i DateTime ToDate
który trwa setki dni.
Teraz jeden pewny sposób, aby filtrować dane w godzinach pracy-porównaj UnixTimestamp
każdego produktu w normalnych handlowe okno od 9:30 rano czasu wschodniego do 16:00 czasu wschodniego. To wymagałoby konwersji każdego UnixTimestamp
Dla DateTime
. To wielkie porównanie... Intuicyjnie, to lepiej przekonwertować FromDate
i ToDate
Dla UnixTimestamp
i filtrować elementy za pomocą Linq.
long unixTimeMsecToDate = new DateTimeOffset(aggrParams.ToDate).ToUnixTimeMilliseconds();
long unixTimeMsecFromDate = new DateTimeOffset(aggrParams.FromDate).ToUnixTimeMilliseconds();
Jednak nie mogę podać dokładny kod... przegląda się stare chcesz w kółko? Jak?