Matching intraday and Daily close price
Author: KrMitsos
Creation Date: 4/11/2008 8:04 PM
profile picture

KrMitsos

#1
Wealth-Lab Version 5 (.NET) 5.0

Please let me know if this is not the right forum for these type of questions.

For the experts:
1. Can I give a description/name to a trendline drawn using code? I want to be able to see its name when i move my cursor on top of it while viewing the chart the same way that i can see the description of a DataSeries.

2. In some instances the close at 4PM of a 5minute interval scale is not the same as the daily close. For example look at the closing price on CSCO at 4pm on 4/4/08: I get the last bar with a 5min close to show 24.44 whereas the daily bar shows 24.39. I noticed in WL 4.5 there is usually an additional bar added after 4PM that makes the close at that bar be the same as the daily close. Should have the same in WL5 such that daily indicators derived by using intraday data should match with the indicators if daily data was used.

3. I have been experiencing some issues with one of my strategies while streaming specifically where all of a sudden the strategy will give me an error message for some symbols only but it will still work for others: "Runtime error: Index was out of range. Must be non-negative and less than the size of the collection" and if i rerun the strategy 1 or 2mins later the strategy will run no problem. Is there a way to find which DataSeries or loop causes the problem? Also I have been experiencing the same issue when I am using the ADX indicator and while in streaming mode.

4. The editor does not save a different size of fonts that i choose and everytime i reopen WL i have to reset it to my preferences.

Thanks in advance for all the help.
profile picture

Eugene

#2
Hi.

1. Can I give a description/name to a trendline drawn using code? I want to be able to see its name when i move my cursor on top of it while viewing the chart the same way that i can see the description of a DataSeries.

Sorry, it's not possible but sounds like a good candidate for an override to DrawLine:

e.g. void DrawLine(ChartPane pane, int bar1, double value1, int bar2, double value2, Color color, LineStyle style, int width, string Description <-- so that it could pop up a chart overlay when moused over);

Robert, what do you think?
profile picture

Cone

#3
It's a good idea, but how many people really want that feature? (It would be at the bottom of the priority barrel for some time to come.)

Even though it's probably easy to implement, it requires some amount programming resources, testing, and documentation. Fidelity customers should call Fidelity to suggest enhancements (that can't be implemented as Add-ons) so that they can be discussed and prioritized.
profile picture

KrMitsos

#4
Ok. Not a big deal. I understand that its not neccesarily a big priority unless many people request it. I would think though any object that is drawn on the chart should technically have a description. I guess i can always annotate the chart. Its just that any annotations start creating clutter.

How about the other questions. Any suggestions there.

Thanks a million!
profile picture

Eugene

#5
How about the other questions. Any suggestions there.


#2 - Robert will correct me on that for sure, but it sounds like something to be fixed in 5.1 with the incorporation of heartbeat? HERE:

...for Fidelity streaming since the end-of-interval is determined by the reception of first tick (the open) in the following interval.

This is going to change once "the heartbeat" is implemented for Fidelity Streaming in 5.1



#3 - Without seeing the code and any knowledge of the strategy, it seems like if it's missing some check for zero/null condition. Could you elaborate on this one? Does it happen in Streaming only and what was the time frame?


#4 - Yes, unfortunately it's what I can reproduce in WLP 5.1 as well. The very next Editor window opened reverts to default font size. I guess that this setting is not being saved to XML. Could you open a support ticket for that please.
profile picture

Cone

#6
#2 - Eugene's information is right, but I don't think that's the problem in this case. Fidelity Daily bars incorporates post-market trading, but then corrects it the next day. (In the 4.x options, you must select that these updates be applied.) Just look at the TOS - it's evident that 24.44 was the last trade before 16:00.
profile picture

KrMitsos

#7
Cone and Eugene thanks for the replies.

#2 - Cone, I agree with you that under the TOS, 24.44 is indeed the last trade. I am not sure what the rules are for posting closing prices but both Wall Street Journal and BigCharts report the close on that day as 24.39 which is what ATP shows. In any case i think that both WL and ATP should match. Is this an option that will exist in 5.1?
Is this the "Apply Data Corrections during Fidelity Data Updates" option in 4.5 that you are talking about?

#3 It happens under a static mode too. The interesting part is that the strategy works for a 15min interval but doesn't work for a 5min interval for some symbols only. I will try to go through the code myself and pinpoint the problem. Will get back to you on that if i can't resolve it.

#4 Will open the ticket.

Regards.
profile picture

Cone

#8
#2 - There's something called the "official close" and that's probably what you're seeing in the Daily data, but I have no idea how it's determined. Call Fidelity and ask them to explain if someone else can't explain it here first.

Fidelity Daily data corrections (using the official close) become available generally by 7am the next day. Correcting data is not optional in 5.0 (you always get corrections). You can turn off corrections in 4.x.

Matching intraday and Daily - it's not going to happen. You'll see the same thing for any provider. We went through this exercise here a couple years ago already.
profile picture

KrMitsos

#9
Ok. In WL 4.5.35 i am running CSCO under a 5min interval and i am getting, on 4/4/08, an additional bar at 4:05pm with a 24.39 close but i do not get that bar in 5.0. Is this what the "hearbeat" will fix that Eugene talked about?

Don't mean to reinvent the wheel here. Just want to understand why in one version i am getting the additional bar that matches the close for that day and not getting it in the other.
profile picture

Cone

#10
It's a problem with the server returning an extra bar that 4.5 doesn't expect. 5.0 expects the server to return an extra bar and eliminates it.
profile picture

KrMitsos

#11
Cone, it seems to me that this extra bar that 4.5 doesn't expect make the intraday close match the daily close that is reported by Fidelity. Shouldn't be the same for 5.0?
profile picture

Cone

#12
You can debate this with Fidelity, but where the last tick at 4:00:00 occurs and the price that someone decides is the "official" close may be two different things. We don't have any control on the latter, but ticks that occur after 4pm are not considered regular market hours. It's not a question of trying to match the official closing price.
profile picture

KrMitsos

#13
Cone, Hi, i did speak with Fidelity (had my conversation through instant messaging so if you want me i can email it to you) and they said they will contact the Wealth Lab developers on this. I assume thats you :)
Basically there are some instances where some orders do come in before 4pm but they are getting filled shortly thereafter and obviously they are getting reported shortly after 4pm. The last bar that comes in from Fidelity after the 4pm close addresses those trades. Below is an extract from the SEC website on the reporting of the closing price. Fidelity follows this reporting and for exchange listed securities it is based on the last price as reported on the primary exchange and for Nasdaq listed securities it is based on the Nasdaq official closing price which in both cases its not the price at exactly 16:00:00. The additional bar that was coming in after 4pm in version 4.5 had the official closing price.

Here is the extract on the closing price:
"...the Consolidated Tape Association – implemented a system designed to make closing prices uniform. Under this system, the regular session closing price for stocks will be the 4:00 p.m. price. Sometimes orders come in before 4:00 p.m., but they can't be filled until after 4:00 p.m. Therefore, the CTA produces a 4:15 p.m. Market Summary for vendors and the media that includes regular session trades that are reported before 4:15 p.m. but should be included in regular session 4:00 p.m. prices. Any trades that take place during after-hours trading sessions will be "tagged" with the letter "T" on the consolidated tape and will not affect the regular session closing price (or the regular session high and low prices). The Nasdaq Stock Market, which operates a similar system for trades in its securities, uses similar conventions. "

Here is the full link to the SEC site and the definition of the closing price: http://www.sec.gov/answers/closepr.htm

When i click on "streaming", the daily closing prices for the datasets that were created using an intraday scale, change, because it seems to me that under streaming mode WL does read the fidelity server and hence the closing prices as reported by Fidelity. This doesn't happen for the symbols that were created using a daily scale.
WL 5.0 is such a great product with so many enhancements when compared to 4.5 but i feel in this specific case it is the contrary and could create data discrepancies.
I hope i made my case clear.

Thank you
profile picture

Cone

#14
Thanks for the good information.

Our company, MS123 (the wealth-lab.com third party), is not involved in preparing the Fidelity Data Providers or programming the main Wealth-Lab client, so no, we're not the responsible developers for this. It sounds like you got the ball rolling down the right alley though. Good luck!
profile picture

KrMitsos

#15
I feel there is some irony in your "Good luck" statement - nothing will ever get done? So for my own benefit what are you guys responsible for and who takes care of the tickets we open on this website for the WL5 product?
profile picture

Cone

#16
It depends on the problem. Website, Data Adapters, some Add-ons, and in general "our products" -> MS123 takes care of these. Fidelity Data and the Wealth-Lab main client -> MS123 analyzes the issue and acts as a facilitator to submit problems to Fidelity.

In this case, Wealth-Lab is working per design. But, you are Fidelity's customer, they listen to customers, and you called them to consider a design change. That's one person out of thousands of customers that they have to consider.
profile picture

marron

#17
#3. "Runtime error: Index was out of range. Must be non-negative and less than the size of the collection". Do you, KrMitso, or anybody find out something aobut this?!! I got the same problem on static datasource folder when scanning. However, when i check the specific symbol which got runtime error on Strategy Window, it works fine.
profile picture

Eugene

#18
Which Strategy? Data provider? Was your DataSet up to date? What about the DataSource composition? Data loading settings i.e. what number of bars are you loading? This, in short, is what welcomed when properly Reporting a Problem?

Without collecting all of that, it's harder to get to the root of the problem because this error per se is generalized (but has to do with the data). Assuming that you run a different WLP build than KrMitsos did half-year ago, your problem might be altogether different.
profile picture

marron

#19
My strategy, simple less than 100 line. Fidel data provider. Yes, data uptodate. I scan on native 30-minutes datasource. Data -range is set 50+ on top of what my strategy required.
profile picture

Eugene

#20
Well, given that I could suggest to double-check the strategy code.