stargrazer has contributed to 279 posts out of 20374 total posts
(1.37%) in 5,977 days (0.05 posts per day).
20 Most recent posts:
Ok, to wrap this up: I'm hoping that DTN will make a note and maybe look into a mechanism where the developer can determine the actual version being connected such that the application can then make appropriate services available for the functionality actually supplied.
The SET PROTOCOL is a bit of a red herring.
Upon connection, I get:
$ telnet 127.0.0.1 5009
Connected to 127.0.0.1.
Escape character is '^]'.
S,IP,0.0.0.0 59000,0.0.0.0 59000,22.214.171.124 60009,
126.96.36.199 60001,188.8.131.52 60005,184.108.40.206 60012,
220.127.116.11 60003,18.104.22.168 60015,22.214.171.124 60050,
126.96.36.199 60014,188.8.131.52 60016,184.108.40.206 60018
Which all arrives prior to being able to do the SET PROTOCOL
Edited by stargrazer on Oct 16, 2021 at 01:53 PM
I extract the version string from the S,CUST message to determine functionality and availability of services.
I have 220.127.116.11 installed. Yet I see 18.104.22.168 in the statement.
S,CURRENT PROTOCOL,6.2, does work to enable certain operations but it would be useful to see that the right version is in place to start with.
There are Level 2 functions which have only recently been released and I would like to check the version prior to enabling/using those functions.
Sure, but ...... the whole point is that this is automated trading.
However, I think what you are saying, is if I do a watch on the symbol, there is a field with the expiry in the response? I'll have to look at the API docs.
However, the problem I have is that I am building up the option chains for futures (run the CFO [Request a Future Option Chain]) command, and I do calculations for date ranges. It gets a bit hairy when trying to work with the @ES weekly options. There are a lot of symbols involved across days, weeks and months. With the weeklies being more difficult to decode..... lots of symbols to lookup.
If changing the symbol is a challenge, maybe adding the day to the description?
Since the equity options have days embedded, is there a standard where the day is embedded in the futures option name as well?
Here is a weekly @ES. An example of another lookup to get at the day.
@E2AU21P377500 E-MINI S&P 500 MONDAY WEEK 2 SEPTEMBER 2021 PUT 377500 CME CMEMINI FOPTION
Edited by stargrazer on Sep 2, 2021 at 12:24 AM
Edited by stargrazer on Sep 2, 2021 at 01:33 AM
Well here are some sample details.
Here is a regular equity option:
GLD2127H185 GLD AUG 2021 C 185.00 OPRA OPRA IEOPTION
The symbol name has the year/month/day encoded in the name. I remember this change occurred some number of years ago. The day, by being encoded in the name, makes it easy to come up with GLD, 2021/08/27, which makes it easy to submit GLD with the date to IB to obtain the contract number for trade executions.
Here is an FOPTION:
QGCZ21P1850 GOLD DECEMBER 2021 PUT 1850 COMEX COMEX_GBX FOPTION
Futures options have a definite expiry day. However, neither the symbol name nor the description includes the expiry day, which is in contrast to the IEOPTION. How does one find the expiry day? Is there a lookup somewhere?
In a similar manner, for a FUTURE:
QGCZ21 GOLD DECEMBER 2021 COMEX COMEX_GBX FUTURE Y
Futures have a definite expiry day. But that day is not provided in the description nor the symbol name. Where does one go to find the day? I can not lookup the contract number in IB without the day.
Is it possible to have an https:// version of http://forums.iqfeed.net?
With the current version, usernames and passwords and content are sent in the clear.
Is it possible to make a format change to mktsymbols_v2.txt or maybe to create a v3 such that expiring symbols have full expiry year, month, and day embedded in the name? or maybe a consistent parsable format in the description field?
It isn't possible create a full IB futures contract request without a manually supplied day of the month into the contract request.
It would be very useful to be able to create a full automatically created contract request given the symbol name of something from the description field for futures, options, and futures options.
I've also noticed that futures options have a different naming convention that do regular equity options.
Proper expiry dates are even harder to calculate for the weeklies for ES/@ES, and similar CME symbols.
You can do pretty much anything you want.
You probably want to study market data to see how others select bar start/intervals.
Here is one example of bar building:
You need to identify when your candle ends. All trades prior to and including that time are included in the candle. When the next update comes in greater than the end time, emit the candle (with the pre-calculated timestamp) and start the next. Note that sometimes a candle is not emitted if there were no trades within that timeframe.
Well, ..... the logical location for real time notifications would be the DTN Client it self. It is already used for popping up version notifications.
Wny not present system notifications as well?
Quote: It forces users who need this data to stream subscriptions and capture them in real time locally. That's an unreliable solution over the internet and something users should not be wasting their time building.
I would say that many have done so, including me.
Quote: IQ Feed could snapshot the BBO once per second
You'll find that when you use that mechanism for liquid instruments, the quality of data becomes lacking due to the high frequency aspects of the data.
FWIW, I believe DTN's choice of quote at trade storage is a reasonable trade-off.
Collecting data real-time during the day allows you to catch the stream as it happens with all its brutality and uneveness. Which is required for proving any sort of trading system 'in the natural'.
Edited by stargrazer on Apr 7, 2021 at 11:52 PM
The guts of what I use for IV then the greeks:
Calc for risk free interest using IQ symbols
What I have as a compute engine as quotes come in:
Quote: my IQML connector for Matlab) calculate the greeks internally and report them to the user
What do you use as a source of interest rate?
Edited by stargrazer on Feb 20, 2021 at 03:25 PM
Not sure by what you mean by 'but it was too slow'. But that would typically be how you would get the bid/ask, is by 'watching' the bid/ask/trade stream.
Run the 'w' with a symbol in IQFeed to obtain the live stream. You can then extract the bid/ask/trade information from this live stream.
Bid/Ask for non trades is not available on any symbol, option or equity.
If you are back testing on that kind of high frequency data, you probably don't really need a lot of history.
I simply run collections on bid/ask/trade info live during market hours. I store that each day. There is much info.
I can then back test as needed on the details collected.
On the other hand, I'll typically build models, then run them real time on paper trading. It provides a true real-time high-frequency experience. Or as close to true, as paper-trading can supply (some slipped and unmet orders).
Or maybe install the packages supplied by your distribution.
Then when you run "wine ..... ", it should use your home directory, and all your user privileges should work on your own files.
Otherwise, run chown 'user.user' <using your user> to fix up ownership.
I find that if I start news or the quote tool, the app initiates the login sequence, and serves to keep the service pinned up.
Typically the first time doesn't work. On the second try it works. Then I can connect my tools. The session seems to be reliable for me at that point.
DTN has been promising an API for many years.
At the very least, it would be nice if they could simulate a WINE session themselves, and maybe see what this issue is and at least resolve it, so that at minimum, WINE does work reliably.
And as a note, this is using x64 version of Wine with the x86 32 bit extensions.
There is some other recent activity on how to start up the agent. In addition, there needs to be a client running and connected to the agent to keep it running. I usually just startup the snapquote and select any old symbol to monitor.
On my machine:
user@here:~$ wine .wine/drive_c/Program\ Files/DTN/IQFeed/iqconnect.exe -product x1 -version x2 -login x3 -password x4 -autoconnect
Substitute your own info for x1, x2, x3, x4
A subset of what I see in today's mktsymbols_v2 file
I don't think .12 is a valid price point?
NEM1921F35 NEM JUN 2019 C 35.00 OPRA OPRA IEOPTION
NEM1921F35.12 NEM JUN 2019 C 35.12 OPRA OPRA IEOPTION
NEM1921F35.5 NEM JUN 2019 C 35.50 OPRA OPRA IEOPTION
NEM1921F36 NEM JUN 2019 C 36.00 OPRA OPRA IEOPTION
NEM1921F36.12 NEM JUN 2019 C 36.12 OPRA OPRA IEOPTION
NEM1921F36.5 NEM JUN 2019 C 36.50 OPRA OPRA IEOPTION
NEM1921F37 NEM JUN 2019 C 37.00 OPRA OPRA IEOPTION
NEM1921F37.12 NEM JUN 2019 C 37.12 OPRA OPRA IEOPTION
NEM1921F37.5 NEM JUN 2019 C 37.50 OPRA OPRA IEOPTION
NEM1921F38.12 NEM JUN 2019 C 38.12 OPRA OPRA IEOPTION
NEM1921F39.12 NEM JUN 2019 C 39.12 OPRA OPRA IEOPTION
NEM1921F40.12 NEM JUN 2019 C 40.12 OPRA OPRA IEOPTION
NEM1921F41.12 NEM JUN 2019 C 41.12 OPRA OPRA IEOPTION
NEM1921F42.12 NEM JUN 2019 C 42.12 OPRA OPRA IEOPTION
NEM1921F43.12 NEM JUN 2019 C 43.12 OPRA OPRA IEOPTION
NEM1921F44.12 NEM JUN 2019 C 44.12 OPRA OPRA IEOPTION
NEM1921F45.12 NEM JUN 2019 C 45.12 OPRA OPRA IEOPTION
NEM1921F46.12 NEM JUN 2019 C 46.12 OPRA OPRA IEOPTION
NEM1921F47.12 NEM JUN 2019 C 47.12 OPRA OPRA IEOPTION
NEM1921F48.12 NEM JUN 2019 C 48.12 OPRA OPRA IEOPTION
NEM1921F49.12 NEM JUN 2019 C 49.12 OPRA OPRA IEOPTION
NEM1921R19.12 NEM JUN 2019 P 19.12 OPRA OPRA IEOPTION
NEM1921R20.12 NEM JUN 2019 P 20.12 OPRA OPRA IEOPTION
NEM1921R21.12 NEM JUN 2019 P 21.12 OPRA OPRA IEOPTION
NEM1921R22.12 NEM JUN 2019 P 22.12 OPRA OPRA IEOPTION
NEM1921R23 NEM JUN 2019 P 23.00 OPRA OPRA IEOPTION
NEM1921R23.12 NEM JUN 2019 P 23.12 OPRA OPRA IEOPTION
NEM1921R23.5 NEM JUN 2019 P 23.50 OPRA OPRA IEOPTION
NEM1921R24 NEM JUN 2019 P 24.00 OPRA OPRA IEOPTION