Exemple #1
0
        public override bool Equals(object obj)
        {
            BarRequest barRequest = obj as BarRequest;

            return(barRequest != null && barRequest.BarType == this.BarType && barRequest.BarSize == this.BarSize);
        }
Exemple #2
0
        private DataRequests BuildStrategyRequest()
        {
            bool flag1 = false;
            bool flag2 = false;
            bool flag3 = false;
            bool flag4 = false;
            bool flag5 = false;
            List <OpenQuant.API.BarRequest> list = new List <OpenQuant.API.BarRequest>();

            foreach (MarketDataRequest marketDataRequest in this.requests)
            {
                if (marketDataRequest.Enabled)
                {
                    switch (marketDataRequest.RequestType)
                    {
                    case RequestType.Trade:
                        flag3 = true;
                        continue;

                    case RequestType.Quote:
                        flag2 = true;
                        continue;

                    case RequestType.MarketDepth:
                        flag5 = true;
                        continue;

                    case RequestType.Bar:
                        flag1 = true;
                        BarRequest barRequest = marketDataRequest as BarRequest;
                        if (barRequest.IsBarFactoryRequest)
                        {
                            flag3 = true;
                        }
                        list.Add(new OpenQuant.API.BarRequest(this.ConvertBarType(barRequest.BarType), barRequest.BarSize, barRequest.IsBarFactoryRequest));
                        continue;

                    case RequestType.Daily:
                        flag4 = true;
                        continue;

                    default:
                        continue;
                    }
                }
            }
            DataRequests dataRequests = new DataRequests();

            dataRequests.GetType().GetProperty("HasBarRequests", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.SetProperty).SetValue((object)dataRequests, flag1, (object[])null);
            dataRequests.GetType().GetProperty("HasTradeRequest", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.SetProperty).SetValue((object)dataRequests, flag3, (object[])null);
            dataRequests.GetType().GetProperty("HasQuoteRequest", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.SetProperty).SetValue((object)dataRequests, flag2, (object[])null);
            dataRequests.GetType().GetProperty("HasDailyRequest", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.SetProperty).SetValue((object)dataRequests, flag4, (object[])null);
            dataRequests.GetType().GetProperty("HasMarketDepthRequest", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.SetProperty).SetValue((object)dataRequests, flag5, (object[])null);
            MethodInfo methodInfo1 = (MethodInfo)null;

            foreach (MethodInfo methodInfo2 in dataRequests.BarRequests.GetType().GetMethods())
            {
                if (methodInfo2.Name == "Add" && methodInfo2.GetParameters().Length == 1)
                {
                    methodInfo1 = methodInfo2;
                }
            }
            foreach (OpenQuant.API.BarRequest barRequest in list)
            {
                methodInfo1.Invoke((object)dataRequests.BarRequests, new object[1]
                {
                    (object)barRequest
                });
            }
            return(dataRequests);
        }