필터링 데이터에 대한 연장 거래 시간은 C#

0

질문

나는 데이터는 주식에서는 공급자를 포함하는 데이터에 대한 연장 거래 시간입니다. 데이터 집계한 1 분 데이터 포인트는 나에서 변환을 JSON List<Aggregate> 는 집계가 포함,높음,낮음을 열고,가까운,그리고 시간의 시작은 집계한 1 분 window. 내 쿼리를 포함 여러 거래 일이 될 수 있는 수백과될 수 있습니다. 내 계산의 지표를 제외해야 후시간 데이터이다. 그래서 나는 목록 항목의 수백체:

public class Aggregate
{
    public decimal Close { get; set; }
    public decimal UnixTimestamp { get; set; } // milliseconds
    ...
}

DateTime FromDateDateTime ToDate 에 걸쳐 수백명의 일입니다. 지금 하는 확실한 방법을 필터링하는 시간 이후에 데이터을 비교하는 것입니다 UnixTimestamp 각 항목의 정기적인 시간을 거래 창 9:30AM PST-16:00PM 태평양 표준시. 을 필요로 변환하마 UnixTimestamp 하기 DateTime. 이것은 많이다 직관적으로,그것은 더 나은 변환 FromDateToDate 하기 UnixTimestamp 고 필터링하는 품목과 함께 읽습니다.

long unixTimeMsecToDate = new DateTimeOffset(aggrParams.ToDate).ToUnixTimeMilliseconds();
long unixTimeMsecFromDate = new DateTimeOffset(aggrParams.FromDate).ToUnixTimeMilliseconds();

그런데,나는 내 손가락을 넣어서 정확한 코드...을 반복합니다. 방법?

c# filtering linq
2021-11-23 22:33:57
1

최고의 응답

0

I managed to get rid of Aggregate 체 및 바꾸기에 의하여 그것을 인용하는 개체에서 온 다른 도서관과 함께 시간을 표현했으로 C#날짜와 시간에서 문제를 해결이 직선 방법은 다음과 같이 효과적으로 필터링하는 시간 이후에 데이터 포인트:

        private void FilterExtendedTradingHours(List<Quote> quoteList, AggrParams aggrParams)
    {
        using (Log.VerboseCall())
        {
            if (aggrParams.Interval == "minute" || aggrParams.Interval == "hour")
            {
                Log.VerboseFormat("Initial {0} count: {1}", aggrParams.Interval, quoteList.Count);

                for(int i = quoteList.Count - 1; i >= 0; i--)
                {
                    if ( quoteList[i].Date.TimeOfDay > new TimeSpan(16,  0,  0) || quoteList[i].Date.TimeOfDay < new TimeSpan(9, 30, 0) )
                    {
                        quoteList.RemoveAt(i);
                    }
                }

                Log.VerboseFormat("Post-filtering {0} count: {1}", aggrParams.Interval, quoteList.Count);
            }
        }
    }
2021-12-01 00:26:22

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................