示例#1
0
        public void SendMarketDataRequest(FIXMarketDataRequest request)
        {
            SubscriptionDataType subscriptionDataType = (SubscriptionDataType)0;

            for (int i = 0; i < request.NoMDEntryTypes; i++)
            {
                FIXMDEntryTypesGroup mDEntryTypesGroup = request.GetMDEntryTypesGroup(i);
                switch (mDEntryTypesGroup.MDEntryType)
                {
                case '0':
                case '1':
                    if (request.MarketDepth == 1)
                    {
                        subscriptionDataType |= SubscriptionDataType.Quotes;
                    }
                    else
                    {
                        subscriptionDataType |= SubscriptionDataType.OrderBook;
                    }
                    break;

                case '2':
                    subscriptionDataType |= SubscriptionDataType.Trades;
                    break;
                }
            }
            for (int j = 0; j < request.NoRelatedSym; j++)
            {
                FIXRelatedSymGroup relatedSymGroup           = request.GetRelatedSymGroup(j);
                SmartQuant.Instruments.Instrument key        = SmartQuant.Instruments.InstrumentManager.Instruments[relatedSymGroup.Symbol];
                global::OpenQuant.API.Instrument  instrument = Map.SQ_OQ_Instrument[key] as global::OpenQuant.API.Instrument;
                switch (request.SubscriptionRequestType)
                {
                case '1':
                    this.provider.CallSubscribe(instrument, subscriptionDataType);
                    break;

                case '2':
                    this.provider.CallUnsubscribe(instrument, subscriptionDataType);
                    break;

                default:
                    throw new Exception("Unknown subscription request type " + request.SubscriptionRequestType);
                }
            }
        }
示例#2
0
        public void SendMarketDataRequest(FIXMarketDataRequest request)
        {
            SubscriptionDataType subscriptionDataType = (SubscriptionDataType)0;

            for (int i = 0; i < request.NoMDEntryTypes; ++i)
            {
                switch (request.GetMDEntryTypesGroup(i).MDEntryType)
                {
                case '0':
                case '1':
                    if (request.MarketDepth == 1)
                    {
                        subscriptionDataType |= SubscriptionDataType.Quotes;
                        break;
                    }
                    else
                    {
                        subscriptionDataType |= SubscriptionDataType.OrderBook;
                        break;
                    }

                case '2':
                    subscriptionDataType |= SubscriptionDataType.Trades;
                    break;
                }
            }
            for (int i = 0; i < request.NoRelatedSym; ++i)
            {
                FreeQuant.Instruments.Instrument instrument1 = FreeQuant.Instruments.InstrumentManager.Instruments[request.GetRelatedSymGroup(i).Symbol];
                Instrument instrument2 = Map.FQ_OQ_Instrument[(object)instrument1] as Instrument;
                switch (request.SubscriptionRequestType)
                {
                case '1':
                    this.provider.CallSubscribe(instrument2, subscriptionDataType);
                    break;

                case '2':
                    this.provider.CallUnsubscribe(instrument2, subscriptionDataType);
                    break;

                default:
                    throw new Exception("Unknown subscription request type " + (object)request.SubscriptionRequestType);
                }
            }
        }
        public async void LoadSubscriptions()
        {
            //Get the service
            var service = await YoutubeItemMethodsStatic.GetServiceAsync();

            string nextPageToken;

            //Get the subscriptions
            var tempSubscriptions = GetSubscriptions(null, service);

            if (tempSubscriptions == null)
            {
                Log.Error("Get Subscriptions returned a null object. The method \"LoadSubscriptions\" was cancelled");
                return;
            }

            foreach (Subscription sub in tempSubscriptions.Items)
            {
                SubscriptionDataType subscription = new SubscriptionDataType();
                try
                {
                    subscription = new SubscriptionDataType
                    {
                        Id             = sub.Snippet.ResourceId.ChannelId,
                        Thumbnail      = new BitmapImage(new Uri(sub.Snippet.Thumbnails.Medium.Url)),
                        Title          = sub.Snippet.Title,
                        NewVideosCount = Convert.ToString(sub.ContentDetails.NewItemCount),
                        SubscriptionID = sub.Id
                    };
                    subscriptionsList.Add(subscription);
                }
                catch (Exception ex)
                {
                    Log.Error(string.Format("Subscription failed to load. Object:", JsonConvert.SerializeObject(subscription)));
                    Log.Error(ex.Message);
                }
            }

            if (tempSubscriptions.NextPageToken != null)
            {
                nextPageToken = tempSubscriptions.NextPageToken;
                while (nextPageToken != null)
                {
                    var tempSubs = GetSubscriptions(nextPageToken, service);
                    foreach (Subscription sub in tempSubs.Items)
                    {
                        SubscriptionDataType subscription = new SubscriptionDataType();
                        try
                        {
                            subscription = new SubscriptionDataType
                            {
                                Id             = sub.Snippet.ResourceId.ChannelId,
                                Thumbnail      = new BitmapImage(new Uri(sub.Snippet.Thumbnails.Medium.Url)),
                                Title          = sub.Snippet.Title,
                                NewVideosCount = Convert.ToString(sub.ContentDetails.NewItemCount),
                                SubscriptionID = sub.Id
                            };
                            subscriptionsList.Add(subscription);
                        }
                        catch (Exception ex)
                        {
                            Log.Error(string.Format("Subscription failed to load. Object:", JsonConvert.SerializeObject(subscription)));
                            Log.Error(ex.Message);
                        }
                    }
                    nextPageToken = tempSubs.NextPageToken;
                }
            }
        }
示例#4
0
 protected virtual void Unsubscribe(Instrument instrument, SubscriptionDataType subscriptionDataType)
 {
     this.Unsubscribe(instrument);
 }
示例#5
0
 internal void CallUnsubscribe(Instrument instrument, SubscriptionDataType subscriptionDataType)
 {
     this.Unsubscribe(instrument, subscriptionDataType);
 }
示例#6
0
		protected virtual void Unsubscribe(Instrument instrument, SubscriptionDataType subscriptionDataType)
		{
			this.Unsubscribe(instrument);
		}
示例#7
0
		internal void CallUnsubscribe(Instrument instrument, SubscriptionDataType subscriptionDataType)
		{
			this.Unsubscribe(instrument, subscriptionDataType);
		}
示例#8
0
文件: Transaq.cs 项目: smther/FreeOQ
 protected override void Unsubscribe(Instrument instrument, SubscriptionDataType subscriptionDataType)
 {
   if (!this.isConnected)
     return;
   TransaqSecurity transaqSecurity1 = (TransaqSecurity) null;
   string symbol = instrument.GetSymbol(this.name);
   if (this.selectedSecurity == SecuritySelector.seccode)
   {
     foreach (int index in this.securityBySecId.Keys)
     {
       TransaqSecurity transaqSecurity2 = this.securityBySecId[index];
       if (transaqSecurity2.SecCode == symbol)
       {
         transaqSecurity1 = transaqSecurity2;
         break;
       }
     }
   }
   else if (this.selectedSecurity == SecuritySelector.seccode_board)
   {
     foreach (string index in this.securityBySCB.Keys)
     {
       TransaqSecurity transaqSecurity2 = this.securityBySCB[index];
       if (transaqSecurity2.SecCodeBoard == symbol)
       {
         transaqSecurity1 = transaqSecurity2;
         break;
       }
     }
   }
   if (transaqSecurity1 == null)
     this.EmitError(string.Format("Unknown instrument {0} for unsubscribe {1}", (object) symbol, (object) subscriptionDataType));
   else if (this.selectedSecurity == SecuritySelector.seccode)
   {
     string str = "<command id=\"unsubscribe\">";
     if (subscriptionDataType == SubscriptionDataType.Trades)
       str = string.Concat(new object[4]
       {
         (object) str,
         (object) "<alltrades><secid>",
         (object) transaqSecurity1.SecId,
         (object) "</secid></alltrades>"
       });
     else if (subscriptionDataType == SubscriptionDataType.Quotes)
       str = string.Concat(new object[4]
       {
         (object) string.Concat(new object[4]
         {
           (object) str,
           (object) "<quotations><secid>",
           (object) transaqSecurity1.SecId,
           (object) "</secid></quotations>"
         }),
         (object) "<quotes><secid>",
         (object) transaqSecurity1.SecId,
         (object) "</secid></quotes>"
       });
     else if (subscriptionDataType == SubscriptionDataType.OrderBook)
       return;
     if (!this.SendCommandLine(str + "</command>").Success || !this.openBookBySecId.ContainsKey(transaqSecurity1.SecId))
       return;
     this.openBookBySecId.Remove(transaqSecurity1.SecId);
   }
   else
   {
     if (this.selectedSecurity != SecuritySelector.seccode_board)
       return;
     string str = "<command id=\"unsubscribe\">";
     if (subscriptionDataType == SubscriptionDataType.Trades)
       str = str + "<alltrades><security><board>" + transaqSecurity1.Board + "</board><seccode>" + transaqSecurity1.SecCode + "</seccode></security></alltrades>";
     else if (subscriptionDataType == SubscriptionDataType.Quotes)
       str = str + "<quotations><security><board>" + transaqSecurity1.Board + "</board><seccode>" + transaqSecurity1.SecCode + "</seccode></security></quotations>" + "<quotes><security><board>" + transaqSecurity1.Board + "</board><seccode>" + transaqSecurity1.SecCode + "</seccode></security></quotes>";
     else if (subscriptionDataType == SubscriptionDataType.OrderBook)
       return;
     if (!this.SendCommandLine(str + "</command>").Success || !this.openBookBySCB.ContainsKey(transaqSecurity1.SecCodeBoard))
       return;
     this.openBookBySCB.Remove(transaqSecurity1.SecCodeBoard);
   }
 }