I’ve also checked the quotes with fidelity… This is historical data from days ago. Data on Google and fidelity have accurate historical data. The prices and volume are slightly incorrect when viewing this data using iex with the alpaca api. (as shown in the example)
yahhh well data usually changes on trading days, so the price even though the market is closed or even open will move down or up depending on things like after market hours and such.
There is a final, fixed, price at the end of the day. 4 PM EST There shouldn’t be variation.
Is the iex data from alpaca showing the final after hours price for the day? 12 PM EST?
this is important to distinguish when making day calls. As far as I’m aware, requesting using the min time parameter only issues data between trading hours. 9-4 PM EST
some misconceptions, iex and alpaca have nothing to do with each other
“There is a final, fixed, price at the end of the day. 4 PM EST There shouldn’t be variation.”
wrong it can always change
“Is the iex data from alpaca showing the final after hours price for the day? 12 PM EST?”
your not talking about the same data as iex and alpaca are not the same
“this is important to distinguish when making day calls. As far as I’m aware, requesting using the min time parameter only issues data between trading hours. 9-4 PM EST”
no
You seem to be missing the point of the issue I’ve raised…
The alpaca api is fetching data from iex yes? That’s what documentation seems to say. Iex is the data provider and alpaca is the api. There are no misconceptions.
In any case, Kris, you have failed to provide any sort of beneficial input relating to my issue.
If alpaca is getting its data from iex, and that data is appearing to be inaccurate, it seems iex has issues to resolve.
I’m hoping to get any input from people with a similar experience.
“The alpaca api is fetching data from iex yes? That’s what documentation seems to say. Iex is the data provider and alpaca is the api. There are no misconceptions.”
no you can clearly see in the documentation that, Consolidated market data is provided by third-party data vendor Polygon also this data feed only includes quotes and trades occurring on the IEX (one of the U.S. stock exchanges) so you will not be able to see a bid ask, if you’d like to know more i can explain what that is
“In any case, Kris, you have failed to provide any sort of beneficial input relating to my issue.”
im not your boss so no one said i ‘need’ to help you
“If alpaca is getting its data from iex, and that data is appearing to be inaccurate, it seems iex has issues to resolve.”
its not thats Polygon
IEX is an exchange that provides their API free of charge (for most data). One thing you must understand about market data is that there are multiple exchanges/markets such as IEX, NASDAQ, & NYSE to name a few. Some symbols will trade in one exchange and not others or some will trade on all exchanges. The price data for a given symbol in each exchange can vary between each exchange. For example you might have a symbol XYZ in which the last closing price on NYSE was 3.21, but 3.17 on NASDAQ. 3rd party data provider’s that relay data from the exchanges to the end user might get their data from a multitude of sources. The key take away point is that there is variation in the price data of a stock and your algorithms should be able to handle that if they are consuming multiple data sources.
I am requesting data on companies only listed on one exchange. EX AAPL only trades on nasdaq. (few companies have dual listings). Since the data is recorded at the end of the day, it should have a fixed price that all data sources record. Somewhere, the data is not recorded correctly…
If I open an account, it doesn’t look like polygon will have this issue. But, data integrity is a concern of mine before opening an account.
As far as I’m aware, fetching AAPL from the alpaca iex api should return the same daily close historical data as any other “market watch”.
Your going to need to clean/prepare your data yourself. You should prepare newly harvested data like you would prepare a newly harvested turkey. Pluck it’s feather’s, wash it, and cook it. Only then should you eat it. The exchange’s are not in the business of preparing your data and serving it on a platter for you. Data preparation is Data Science Rule #1.
Another analogy is to think of a data source as a gold mine, you wouldn’t try to sell gold ore to a jewelry shop. That’s totally out of process, the ore must be refined first and processed first. Only then can you make use of it.
Interesting discussion, I can add one instance of returning out of range data by get_barset(“FB”, ‘day’, limit=400)
For the day 2018-12-20, the low of the day shows “1.34” which is incorrect. I checked with many other source. Even a flush crash will not get you 1.34 for FB on 2018-12-20.