DTN_Gary_Stephen has contributed to 251 posts out of 20596 total posts
(1.22%) in 1,054 days (0.24 posts per day).
20 Most recent posts:
I have some further information: GME experienced very volatile trading on May 12. The stock was halted 4 times during that day due to limit up/limit down restrictions. The trade you're asking about was the last trade before the first halt occurred. The bid/ask at the time of the trade, are not truly reflective of this trade. Trading resumed again 5 minutes later.
So this trade isn't exactly what I speculated, it was a unique situation. But the situation I described is common, especially in bid/ask offers that aren't also trades.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
When a tick error occurs, the exchanges will send a Trade Correction, and the history available via historical API lookup will be updated to reflect the correction. As of today, that tick is still in the history, so it's probably not an error.
What is it, then? The Ask Price of 500,000 is probably something I call a "token bid." Sometimes the market makers want to have an active Bid or Ask for a symbol, but don't actually want to buy or sell any of that symbol. So they set a ridiculously high ask, or a ridiculously low bid, that no one will ever try to execute. So this is probably a legit transaction. I'm not sure how this bid/ask could have resulted in a sale, but it is normal for outlandish bid/ask prices to show up on the Level 1 feed as just bid/ask offers.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
NFX effectively eased operations as a futures exchange on June 2, 2020: seehttps://www.nasdaq.com/solutions/nasdaq-futures-nfx
So there are no more active symbols for that exchange. It should not have been a choice in the account management portal; we are working to remove it as a choice now.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
Thank you, I'm glad to help! And if I may make one last suggestion: don't assume rules are the same for all underlying symbols. We've noticed a little inconsistency in how legacy symbols are handled and so forth.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
That message can also mean "you don't have the necessary data subscription." QNPZ22 is a NYMEX symbol, and you'd need that data subscription to watch any symbols from it.
By the way: that you're getting a Q,QNPZ22,,Not Found,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, suggest you're not using the latest protocol 6.2. This would give you a message n,QNPZ22 instead. If you're not sending a SET PROTOCOL command when you connect, this could cause other unexpected results.
The IQFeed API has a versioned protocol, that operates separately from the version number of the IQFeed client software. By sending the command S, SET PROTOCOL, (protocol number) each time you connect to the API, you are telling the API which iteration of the protocol you wish to use. This allows you to integrate new IQFeed features into your custom app, at your own pace, or remain on a past protocol for as long as you wish.
The most recent protocol is 6.2. Protocol 6.1, 5.2, 5.1, 5.1 and 4.9 are still supported, and each has its own set of documentation found here. It is advisable to use the most recent protocol, unless you have backwards compatibility-related or other reasons for using an older one.
If you're not specifying a protocol, it will default to the oldest, 4.9.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
You added the @ symbol to your watch command. This was not in the SBF command's response. Omit it and you will get correct results:
w@QNPZ22 n,@QNPZ22 wQNPZ22 F,QNPZ22,24,,,,,,,,,,,,,,,,HENRY HUB NATURAL GAS PENULTIMATE DECEMBER 2022,,,,,,,,,,,,14,4,,60.03,8,112,,,,,,,,11/25/2022,,,NPG,,,18:00:00,17:00:00,USD,2500,FGHJKMNQUVXZ,0.0010,,,, P,QNPZ22,,,,,0,,,,,,,,7.2630,scv,01
The n,SYMBOL response to a watch command means "symbol not recognized", which is a correct response in this case.
Note that the SBF command will always return DTN's own symbology for a symbol, which sometimes differs from the exchange's own symbology.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
Quote: Hi DTN Gary Stephen, Thanks for explaining that your DTN code mirrors the option names as determined by the CME. I apologize for assuming that the DTN code had logic that duplicated the CME naming rules. Like you, I was unable to find the CME futures options naming rules for the “week of month” number on any web page or document, CME or otherwise. As you mention: Perhaps the CME handles week counting differently for "day-of-the-week" future options than it does for "end of week" future options.I believe this is the case. Please see my example from my first post in this topic above, dated May 6 and repeated here…. (The option names are valid IQfeed names.) Data from April 2022: Wednesday expiration, April 2022, Put, strike 4,200.00:
@E1CJ22P420000 (week=1, data through 4/06/2022) @E2CJ22P420000 (week=2, data through 4/13/2022) @E3CJ22P420000 (week=3, data through 4/20/2022) @E4CJ22P420000 (week=4, data through 4/27/2022)
April 2022, end of week options:
@EW1J22P420000 (week=1, data through 3/31/2022) @EW2J22P420000 (week=2, data through 4/08/2022) @EW3J22P420000 (week=3, data through 4/14/2022) @EW4J22P420000 (week=4, data through 4/22/2022) @EW5J22P420000 (week=5, no data) @EWJ22P420000 (EOM, data through 4/29/2022) (EOM coincides with end of last week for April 2022)
Notice that the 1C,2C,3C,4C (Wednesday expiry) options for the same “week of month” number expire in the calendar week following the W1,W2,W3,W4 (Friday) options. So it must be the case that the "week of month" for A,B,C,D (Mon,Tue,Wed,Thu) options is not always the same as the "week of month" for the W1,W2,W3,W4 (Friday) options - and therefore they use different naming rules. I gave an illustration of this in my last post: Example: no A,B,C,D expiration in the first calendar week . . . .
F S S M T W T F S S M (Fri, Sat, etc.) W1 1A 1B 1C 1D W2 DayOfMonth= 1 2 3 4 5 6 7 8 9 10 11 ^--NOT nW=1 ^--start of nW=1 ^--start of nW=2 Note: in the above case, the “week of month” number for the second Friday (W2) is different than “week of month” number for A,B,C,D (1A,1B,1C,1D) in that same calendar week. This is why some months only have four (4) A,B,C,D “week of month” numbers, but have five (5) calendar weeks, and possibly five (5) W* numbers (Fridays).
Thanks for the CME Product Codes link. As far as the CME naming, I believe they limit the “week of month” for Friday to EW1-EW4 because the 5th Friday always coincides with the trading end-of-month ( EOM) day, which supersedes (replaces) the EW naming for that Friday. (Either that, or it could be a holiday.) Some example months showing a 5th Friday that is the trading EOM are: 2021: April, July, October, December (for January, the 1st Friday is a holiday) 2022: April, July, September, December (note: The months not listed have 4 Fridays.) Thanks for your thoughtful replies and information. I will attempt to reverse engineer and code the rules, and see how they match to the A,C or A,B,C,D options for the past several months. Thanks again. Edited by step999 on May 11, 2022 at 05:03 AM--- Original message by step999 on May 11, 2022 03:53 AM If I discover anything that will help you I'll post it here. But so far we don't have a clear-cut set of rules for how these new weekday future option symbols are made. There is also room for inconsistency in different underlying commodities, and different ways they handle the legacy symbols.
If you're going to try and reverse-engineer the rules, I suggest using the FDS Market Summary report. This report contains fields for the symbol, full name, and expiration date, like this:
LM,Symbol,Description,PeRatio,AvgVolume,DivYield,DivAmount,DivRate,PayDate,ExDivDate,CurrentEps,EstEps,SIC,Precision,Display,GrowthPercent,FiscalYearEnd,Volatility,ListedMarket,MaturityDate,OptionRoots,CouponRate,InstitutionalPercent,YearEndClose,Beta,LEAPs,WRAPs,Assets,Liabilities,BalanceSheetDate,LongTermDebt,CommonSharesOutstanding,MarketCap,52WeekHigh,52WeekHighDate,52WeekLow,52WeekLowDate,CalHigh,CalHighDate,CalLow,CalLowDate,Expiration,LastSplit,LastSplitDate,PrevSplit,PrevSplitDate,NAICS,ShortInterest LM,@E1AK22C210000,"E-MINI S&P 500 MONDAY WEEK 1 MAY 2022 CALL 210000",,,,,,,,,,,2,12,,,4.07,43,,,,,,,,,,,,,,,,,,,,,,,20220502,,,,,,
This makes to easy to collect all symbols at once. The command would be FDS,9,34,date in YYYYMMDD format.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
DTN doesn't make the symbols - the exchange does. DTN endeavors to use the same symbol as the exchange whenever possible. When conflicts with another exchange's symbols occur, there aren't any strict rules, or algorithm for how to change it, except that we try to match the exchange's symbol as much as possible. Typically, we just precede it with @ or Q.
I wasn't able to find any official rules for how CME numbers the weeks for weekly options. I inferred that Week 1 starts on the 1st day of the month, with no regard to what day of the week it is. But I only looked at one particular month to determine that. This page https://www.cmegroup.com/trading/options/weekly-options-on-futures.html is the CME's list of Product Codes for future options. Interestingly, there's no code for "5th week end of the month" for E-mini S&P 500 - only through Thursday.
Quote: Monday E1A-E5A IWWA Index Tuesday E1B-E5B IMBA Index Wednesday E1C-E5C IEWA Index Thursday E1D-E5D IMDA Index Friday EW1-EW4 1EA Index - 4EA Index
A 5th Friday of the month can exist, so I'm not sure what this implies. Perhaps the CME handles week counting differently for "day-of-the-week" future options than it does for "end of week" future options. (Bearing in mind what I said earlier about Friday not getting its own code because "end of week" covered it.) I'll see if I can learn anything from the CME; I didn't find their naming rules online, like it's easy to find the OSI standard for equity options online.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
I'm glad you were able to work around the problem! Thanks for letting me know.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
The "symbol guide" and "symbol lookup" links at http://iqfeed.net/ will now direct you to updated versions of these tools: https://ws1.dtn.com/IQ/Guide/ and https://ws1.dtn.com/IQ/Search/.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
Generally, the new weekly futures options for futures will follow this pattern:
A = Monday expiration B = Tuesday expiration C = Wednesday expiration D = Thursday expiration
Friday may or may not be E. Before expirations on different days of the week were introduced, the default was that equity options expired on Friday, so it didn't need anything to indicate the weekday. Some of these symbols have been grandfathered in.
Furthermore, the ABCD letter indicating the weekday of the expiring option might not appear in the same place for different future options.
It is coincidental that EW options expire at the end of the week. They were the first weekly options introduced on the E-mini S&P 500. The symbol logic at the time was most likely E = E-mini, W = weekly.
I infer from the names of past future options that the week number is limited to the month it actually belongs to:
LM,@Q5CH22P995000,"E-MINI NASDAQ 100 WEDNESDAY WEEK 5 MARCH 2022 PUT 995000",,,,,,,,,,,2,12,,,2.24,43,,"@NQM22",,,,,,,,,,,,,,,,,,,,,20220330,,,,,,
LM,@QN1J22C1000000,"E-MINI NASDAQ 100 WEEK 1 APRIL 2022 CALL 1000000",,,,,,,,,,,2,12,,,2.33,43,,"@NQM22",,,,,,,,,,,,,,,,,,,,,20220401,,,,,,
Future Options expiring on Wednesday March 30 were "WEDNESDAY WEEK 5 MARCH" but ending on Thursday, April 1 were "WEEK 1 APRIL".
This may be applied inconsistently, though.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
I'll confirm this new nomenclature, but I'm pretty sure you've got it right.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
Can you provide a iqconnect.txt log file, with all logging turned on? You can send it to me at the developer support address. A "Test" on the IQConnect tab of the Diagnostics app would be helpful also.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
Nothing has changed on our end. IQFeed wouldn't block you from connecting to the Admin socket. I suspect something external is using port 9300, or otherwise interfering with traffic to it. You can find this in Command Prompt. Send this command:
netstat -ano | findStr “9300”
This will turn up one or more lines like this:
C:\Users\Gary.Stephen>netstat -ano | findStr "9300" TCP 127.0.0.1:9300 0.0.0.0:0 LISTENING 17736 TCP 127.0.0.1:9300 127.0.0.1:59229 ESTABLISHED 17736 TCP 127.0.0.1:59229 127.0.0.1:9300 ESTABLISHED 21048
The number on the far right is the process ID. To find what each one represents, enter this on the command line. (The actual numbers will vary. Change the number, and repeat the command once for each number, as appropriate.)
tasklist /fi "pid eq 17736"
And this will tell you exactly what’s using the port:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============ iqconnect.exe 17736 Console 1 17,112 K
iqconnect.exe is what you want to be using to be port 9300, but see if this discovers that some rogue app is using it. You can then decide what to do: reconfigure it or IQFeed to use something else (see below), or just disable the conflicting app.
Other comments:
- A Logitech app called lghubupdater commonly interferes with port 9100 in this way. Most people just disable that app to resolve the conflict.
- It is possible to customize what port numbers IQFeed uses, by making registry changes in Computer\HKEY_CURRENT_USER\Software\DTN\IQFeed\Startup. I recommend caution when doing this, though, because third-party software (and third-party code bases) don't always implement this.
- Make sure you have whitelisted the entire IP range IQFeed uses, which is: 12.36.218.128 – 12.36.218.254 (CIDR: 12.36.218.128/25), Ports: 60000-60060. I don't think that's the issue here, but it's always good to make sure of this.
I hope this helps! Beyond that, I'd need to get more information from you. You can send me a support email or chat, and I will investigate further.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
DTN will be doing network and security maintenance this Saturday morning. This will require us to do server reboots. Users should be rerouted to live servers. The maintenance window is from 7:00 a.m. to Noon CT. We recommend any users who normally use the system at that time to postpone any critical process until after the maintenance window.
There are no open markets at this time, so the impact to our users should be minimal. If you do have issues, we recommend that you log out and back in again to reconnect.
https://iqhelp.dtn.com/general-maintenance-this-saturday-april-30-2022/
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
DTN will be doing network and security maintenance this Saturday morning. This will require us to do server reboots. Users should be rerouted to live servers. The maintenance window is from 7:00 a.m. to Noon CT. We recommend any users who normally use the system at that time to postpone any critical process until after the maintenance window.
There are no open markets at this time, so the impact to our users should be minimal. If you do have issues, we recommend that you log out and back in again to reconnect.
https://iqhelp.dtn.com/general-maintenance-this-saturday-april-30-2022/
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist Edited by DTN_Gary_Stephen on Apr 28, 2022 at 02:53 PM
Can you give an example?
It makes sense that Number_of_trades_Today shouldn't decrease during the day, but there might be rare circumstances where this appears to happen.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
Can you be more specific? There are a lot of COT reports: https://www.cftc.gov/MarketReports/CommitmentsofTraders/HistoricalViewable/cot032922
Is it just the energy symbols or ICE symbols you want?
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
Are you sending S,SET PROTOCOL first? The Market Summary commands were only added in Protocol 6.1, so if you're not specifying 6.1 or 6.2 the API will not recognize this command.
Also (as altmany just said) make sure you are connecting to Port 9100. Other ports (like 9400) will not understand this command.
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist Edited by DTN_Gary_Stephen on Apr 11, 2022 at 10:40 AM
The Option Chains command will return only current options, not past ones. There is no API method that will return past option symbols, but we publish a text lists of past/expired option symbols in:
www.iqfeed.net/downloads/beta/IEOPTION.zip
This list includes only past option symbols that traded at least once. Standard API commands will work on past option symbols. There is also a file www.iqfeed.net/downloads/beta/EQUITY.zip which contains past equity symbols.
Also, the Level 1 Fundamental Message contains a field called Contract Months, fifth from the end (in protocol 6.2):
F,@NQ#,22,,,16700.00,12750.00,,,,,,,,,,,,E-MINI NASDAQ 100 JUNE 2022,,,,,,,,,,,,12,2,,29.52,8,43,11/22/2021,03/26/2021,,,,,,06/17/2022,,,NQ,,,18:00:00,17:00:00,USD,20,--H--M--U--Z,0.25,,,,
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
|