static async void RunLevel1Example() { // ************************************* // Step 1 - !!! Configure your credentials for IQConnect in user environment variable or app.config !!! // Check the documentation for more information. // Step 2 - Run IQConnect launcher IQFeedLauncher.Start(); // Step 3 - Use the appropriate factory to create the client var level1Client = Level1ClientFactory.CreateNew(); // Step 4 - Connect it level1Client.Connect(); // Step 5 - Register to appropriate events level1Client.Timestamp += timestampMsg => Console.WriteLine(timestampMsg); level1Client.Update += updateMsg => Console.WriteLine(updateMsg); // Step 6 - Make your streaming Leve1 requests level1Client.ReqWatch("AAPL"); await Task.Delay(TimeSpan.FromMinutes(1)); }
public async Task RunAsync() { // Configure your credentials for IQConnect in user environment variable or app.config !!! // Check the documentation for more information. // Run IQConnect launcher IQFeedLauncher.Start(); // Choose between 3 different handlers: // 1- Level1MessageDecimalHandler (for decimal) // 2- Level1MessageDoubleHandler (for double) - default one through CreateNew // 3- Level1MessageFloatHandler (for float) var level1Client = Level1ClientFactory.CreateNew( IQFeedDefault.Hostname, IQFeedDefault.Level1Port, Level1Default.SnapshotTimeout, new Level1MessageDecimalHandler()); // Connect level1Client.Connect(); // retrieve UpdateSummaryMessage<decimal> var decimalUpdateSummary = await level1Client.GetUpdateSummarySnapshotAsync("AAPL"); // convert UpdateSummaryMessage<decimal> to UpdateSummaryMessage<float> var floatUpdateSummary = decimalUpdateSummary.ToFloat(); }
public RealTimeMarketDataService() { IQFeedLauncher.Start("MY_LOGIN", "MY_PASSWORD", "MY_PRODUCT_ID", "MY_PRODUCT_VERSION"); _level1Client = Level1ClientFactory.CreateNew(); _level1Client.Connect(); }
public static Downloader CreateNew(string dataDirectory, int numberOfClients) { IQFeedLauncher.Start(); var lookupClient = LookupClientFactory.CreateNew("localhost", IQFeedDefault.LookupPort, numberOfClients, TimeSpan.FromMinutes(20)); lookupClient.Connect(); var level1Client = Level1ClientFactory.CreateNew(); level1Client.Connect(); return(new Downloader(dataDirectory, lookupClient, level1Client, numberOfClients)); }
public static void Level1Client_can_connect_and_terminate_without_error_forceIpv4(bool forceIpv4) { // Arrange SocketClient.ForceIpv4 = forceIpv4; // Act IQFeedLauncher.Start(); var client = Level1ClientFactory.CreateNew(); client.Connect(); client.Disconnect(); IQFeedLauncher.Terminate(); // Assert Assert.Pass($"IQFeedLauncher and the level1 client were able to connect and disconnect/terminate without error with the 'SocketClient.ForceIpv4' value set to '{forceIpv4}'."); }
public async Task RunAsync() { // ************************************* // Step 1 - !!! Configure your credentials for IQConnect in user environment variable or app.config !!! // Check the documentation for more information. // Step 2 - Run IQConnect launcher IQFeedLauncher.Start(); // Step 3 - Use the appropriate factory to create the client var level1Client = Level1ClientFactory.CreateNew(); // Step 4 - Connect it level1Client.Connect(); // Step 5 - Register to appropriate events level1Client.Fundamental += Level1ClientOnFundamental; level1Client.Summary += Level1ClientOnSummary; level1Client.Update += Level1ClientOnSummary; level1Client.Timestamp += Level1ClientOnTimestamp; // Step 6 - Make your streaming Leve1 requests level1Client.ReqWatch("AAPL"); Console.WriteLine("Watching APPL for the next 30 seconds... Please be patient ;-)\n"); await Task.Delay(TimeSpan.FromSeconds(30)); // Step 7 - Unwatch and unregister events level1Client.ReqUnwatch("AAPL"); level1Client.Fundamental -= Level1ClientOnFundamental; level1Client.Summary -= Level1ClientOnSummary; level1Client.Update -= Level1ClientOnSummary; level1Client.Timestamp -= Level1ClientOnTimestamp; }
public void SetUp() { _level1MessageHandler = new Level1MessageDynamicHandler(); _level1Client = Level1ClientFactory.CreateNew(_level1MessageHandler); _level1Client.Connect(); }
public void SetUp() { _level1Client = Level1ClientFactory.CreateNew(); _level1Client.Connect(); }
public async Task RunAsync() { // ************************************* // Step 1 - !!! Configure your credentials for IQConnect in user environment variable or app.config !!! // Check the documentation for more information. // Step 2 - Run IQConnect launcher IQFeedLauncher.Start(); // Step 3 - Create an array that includes the fields desired for Update and Summary messages var fields = new[] { // The IQFeed servers *ALWAYS* include Symbol as first message data field, regardless of fields requested via SelectUpdateFieldName/SELECT UPDATE FIELDS // DynamicFieldset.Symbol *MUST* be the first dynamic field in the array at this time. Parsing errors will result otherwise. DynamicFieldset.Symbol, DynamicFieldset.SevenDayYield, DynamicFieldset.Ask, DynamicFieldset.AskChange, DynamicFieldset.AskMarketCenter, DynamicFieldset.AskSize, DynamicFieldset.AskTime, DynamicFieldset.AvailableRegions, DynamicFieldset.AverageMaturity, DynamicFieldset.Bid, DynamicFieldset.BidChange, DynamicFieldset.BidMarketCenter, DynamicFieldset.BidSize, DynamicFieldset.BidTime, DynamicFieldset.Change, DynamicFieldset.ChangeFromOpen, DynamicFieldset.Close, DynamicFieldset.CloseRange1, DynamicFieldset.CloseRange2, DynamicFieldset.DaysToExpiration, DynamicFieldset.DecimalPrecision, DynamicFieldset.Delay, DynamicFieldset.ExchangeID, DynamicFieldset.ExtendedTrade, DynamicFieldset.ExtendedTradeDate, DynamicFieldset.ExtendedTradeMarketCenter, DynamicFieldset.ExtendedTradeSize, DynamicFieldset.ExtendedTradeTime, DynamicFieldset.ExtendedTradingChange, DynamicFieldset.ExtendedTradingDifference, DynamicFieldset.FinancialStatusIndicator, DynamicFieldset.FractionDisplayCode, DynamicFieldset.High, DynamicFieldset.Last, DynamicFieldset.LastDate, DynamicFieldset.LastMarketCenter, DynamicFieldset.LastSize, DynamicFieldset.LastTime, DynamicFieldset.Low, DynamicFieldset.MarketCapitalization, DynamicFieldset.MarketOpen, DynamicFieldset.MessageContents, DynamicFieldset.MostRecentTrade, DynamicFieldset.MostRecentTradeConditions, DynamicFieldset.MostRecentTradeDate, DynamicFieldset.MostRecentTradeMarketCenter, DynamicFieldset.MostRecentTradeSize, DynamicFieldset.MostRecentTradeTime, DynamicFieldset.NetAssetValue, DynamicFieldset.NumberOfTradesToday, DynamicFieldset.Open, DynamicFieldset.OpenInterest, DynamicFieldset.OpenRange1, DynamicFieldset.OpenRange2, DynamicFieldset.PercentChange, DynamicFieldset.PercentOffAverageVolume, DynamicFieldset.PreviousDayVolume, DynamicFieldset.PriceEarningsRatio, DynamicFieldset.Range, DynamicFieldset.RestrictedCode, DynamicFieldset.Settle, DynamicFieldset.SettlementDate, DynamicFieldset.Spread, DynamicFieldset.Tick, DynamicFieldset.TickID, DynamicFieldset.TotalVolume, DynamicFieldset.Volatility, DynamicFieldset.VWAP, }; // Step 4 - Use the appropriate factory to create the client. Pass a new Level1MessageDynamicHandler to indicate dynamic fields in use var level1Client = Level1ClientFactory.CreateNew(new Level1MessageDynamicHandler()); // Step 5 - Connect it level1Client.Connect(); // Step 6 - Request the feed to begin returning selected fields in Summary and Update messages level1Client.SelectUpdateFieldName(fields); // Step 7 - Register to appropriate events level1Client.Fundamental += Level1ClientOnFundamental; level1Client.Summary += Level1ClientOnSummary; level1Client.Update += Level1ClientOnSummary; level1Client.Timestamp += Level1ClientOnTimestamp; // Step 8 - Make your streaming Level 1 requests level1Client.ReqWatch("AAPL"); Console.WriteLine("Watching APPL for the next 10 seconds... Please be patient ;-)\n"); await Task.Delay(TimeSpan.FromSeconds(10)); // Step 9 - Unwatch and unregister events level1Client.ReqUnwatch("AAPL"); level1Client.Fundamental -= Level1ClientOnFundamental; level1Client.Summary -= Level1ClientOnSummary; level1Client.Update -= Level1ClientOnSummary; level1Client.Timestamp -= Level1ClientOnTimestamp; }