private void GetOhlcAsync(IOhlcProvider provider, OhlcContext context)
        {
            if (context == null)
            {
                return;
            }

            var ohlc = AsyncContext.Run(() => provider.GetOhlcAsync(context));

            bool      success       = true;
            OhlcEntry ohlcEntryPrev = null;

            foreach (var ohlcEntry in ohlc)
            {
                if (ohlcEntryPrev != null)
                {
                    if (ohlcEntry.DateTimeUtc >= ohlcEntryPrev.DateTimeUtc)
                    {
                        success = false;
                        Assert.Fail("Time check is failed.");
                    }
                }
                ohlcEntryPrev = ohlcEntry;
            }

            Assert.IsTrue(success);
            Assert.IsTrue(ohlc != null && ohlc.Count > 0);

            Trace.WriteLine("OHLC data:");
            foreach (var entry in ohlc)
            {
                Trace.WriteLine($"{entry.DateTimeUtc}: O {entry.Open}, H {entry.High}, L {entry.Low}, C {entry.Close}");
            }
        }
示例#2
0
 public OhlcEntry(ObjectId seriesId, DateTime utcDateTime, IOhlcProvider provider)
 {
     DateTimeUtc = utcDateTime;
     SeriesId    = seriesId;
     Provider    = provider;
     Id          = (SeriesId + ":" + utcDateTime).GetObjectIdHashCode();
 }
示例#3
0
        private void GetOhlcTest(IOhlcProvider provider, OhlcContext context)
        {
            if (context == null)
            {
                return;
            }

            var ohlc = AsyncContext.Run(() => provider.GetOhlcAsync(context));

            bool      success       = true;
            OhlcEntry ohlcEntryPrev = null;

            foreach (var ohlcEntry in ohlc.OhlcData)
            {
                if (ohlcEntryPrev != null)
                {
                    if (ohlcEntry.DateTimeUtc >= ohlcEntryPrev.DateTimeUtc)
                    {
                        success = false;
                        throw new InvalidOperationException("Time check is failed.");
                    }
                }
                ohlcEntryPrev = ohlcEntry;
            }

            Assert.True(success);
            Assert.True(ohlc != null && ohlc.OhlcData.Count > 0);

            OutputWriter.WriteLine("OHLC data:");
            foreach (var entry in ohlc.OhlcData)
            {
                OutputWriter.WriteLine($"{entry.DateTimeUtc}: O {entry.Open}, H {entry.High}, L {entry.Low}, C {entry.Close}");
            }
        }
示例#4
0
 public static Task <ApiResponse <OhlcDataResponse> > GetOhlcAsync(IOhlcProvider provider, OhlcContext context)
 {
     return(ApiHelpers.WrapExceptionAsync(() => provider.GetOhlcAsync(context), nameof(GetOhlc), provider, context));
 }
示例#5
0
 public static ApiResponse <OhlcDataResponse> GetOhlc(IOhlcProvider provider, OhlcContext context)
 {
     return(AsyncContext.Run(() => GetOhlcAsync(provider, context)));
 }
示例#6
0
 public OhlcEntry(ObjectId seriesId, DateTime utcDateTime, IOhlcProvider primary, IOhlcProvider conversionProvider, Asset intermediary) : this(seriesId, utcDateTime, primary)
 {
     ConvertedProvider = conversionProvider;
     ConvertedVia      = intermediary;
 }