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); } } }
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; } } }
protected virtual void Unsubscribe(Instrument instrument, SubscriptionDataType subscriptionDataType) { this.Unsubscribe(instrument); }
internal void CallUnsubscribe(Instrument instrument, SubscriptionDataType subscriptionDataType) { this.Unsubscribe(instrument, subscriptionDataType); }
protected virtual void Unsubscribe(Instrument instrument, SubscriptionDataType subscriptionDataType) { this.Unsubscribe(instrument); }
internal void CallUnsubscribe(Instrument instrument, SubscriptionDataType subscriptionDataType) { this.Unsubscribe(instrument, subscriptionDataType); }
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); } }