How to run strategy at circa 3:45pm although code has closing price?
Author: wphill
Creation Date: 10/5/2010 9:19 AM
profile picture

wphill

#1
Back testing results on strategy is based on Monday's close.
Currently, I will try to execute Tuesday morning with the symbol's price....hoping to get a price close
to Monday's Closing price or figuring that with enough trades it will balance out...sometimes getting a higher and sometimes getting a higher price. However, I would much rather stick to the mechanical strategy
of getting Monday's close. Is there a way to do this that does not require a modification of the underlying code? I tried using Yahoo as the data provider. That did not work..or perhaps I did this incorrectly. ???
profile picture

Eugene

#2
Have you enabled "Always return data with partial bar" on the Data Manager's "Yahoo! Data" tab?
profile picture

wphill

#3

QUOTE:
Have you enabled "Always return data with partial bar" on the Data Manager's "Yahoo! Data" tab?

No, I did not.
It would help to have the steps clear. I will attempt to answer my own question....

Prior to opening the strategy & running it,
I assume that I go to preferences/streaming data/enable yahoo;

then,
go to data mgr/yahoo data (with above enabled).

then,
run the data set associated with the strategy.
Or, does just running the strategy automatically access yahoo data?

Do I need to undo anything after accomplishing my goal?
Is this data 20 minutes delayed and not real time?
profile picture

Eugene

#4
This option includes the partial (incomplete) bar for today in download.

Without it, there's no reason to run the AtClose workaround from the WealthScript Guide because your data will always have yesterday's bar as the latest. But the workaround is about accessing today's bar almost at the close (e.g. 3:45 pm).

Makes sense?
profile picture

wphill

#5
So....the steps that I outline would be correct? And, no need to undo changes?
profile picture

wphill

#6
I tried following the steps that I suggested.
Not successful.Prior to close of mkt... Data Update...for example....is only for 10-5-2010....and today is 10-6.
There is no indication of a partial bar being reported.

I sure would like to figure this one out.
profile picture

Eugene

#7
As the User Guide says, "Update Data on Demand" should be enabled for that option to work (not sure why). May it be that the unidentified stock/etc. at Yahoo! didn't have the data for 10/06?
profile picture

Cone

#8
QUOTE:
I assume that I go to preferences/streaming data/enable yahoo;
This isn't required to get partial daily data. Primarily, Y! Streaming can be used for streaming Quotes with a Premium Account (Y! doesn't have intraday backfill, so it's not useful for charting).

QUOTE:
then, go to data mgr/yahoo data (with above enabled).
This isn't a daily step, it's a one-time configuration in the "Yahoo! Data" tab. Select "Always return data with partial bar".

Question for you: "How many symbols are involved?"
o If it's for one symbol (or just a handful) you'll probably want to enable File > Update Data on Demand and click "Go" for each Strategy Window.
o Otherwise, use the Data Manager "Update the DataSet (Pricing)" for a quicker update before running the charts. You could also probably use the S. Monitor with the "Run Now" option too.

QUOTE:
Or, does just running the strategy automatically access yahoo data?
You must create the DataSet using the Yahoo! Provider and run it on that DataSet.

QUOTE:
Is this data 20 minutes delayed and not real time?
It's delayed unless you have a Y! "Premium Account".
profile picture

wphill

#9
Thanks....I have made a "test" strategy" denoting day of trade. Later in the day, as the mkt gets underway I will incorporate the above feedback. Then, let you know how it went.
profile picture

wphill

#10
QUOTE:
"Update Data on Demand" should be enabled


That was done previously.

QUOTE:
Select "Always return data with partial bar".


That was done previously

QUOTE:
use the Data Manager "Update the DataSet (Pricing)"...before running the charts


That was done previously. I did this just for the data set that I wanted.



This is a multiple symbol strategy. I would think that the essential first step is to have
the data set updated with yahoo as as the provider for "today's" partial data bar...however I do not think that yahoo is doing this. Today is the 7th...and according to the data mgr (not the charts) I continue to get data no later than the 6th. When I keep running the data set I get:

"Symbols already up to date: "

The other step that I enabled was to check off Yahoo as the data provider in Data Mgr/Update Data tab. I did it with both yahoo and fidelity enabled; and i did it with only yahoo enabled.

I also ran the strategy which as "thursday" (today) as the day of trade. No trade indicated.

QUOTE:
You could also probably use the S. Monitor with the "Run Now" option too.


I tried this. I activated the strategy. Right clicked to get "run now"...nothing seemed to happen.

I wonder if I need to click on "updata now"....in the same box as where I check up Yahoo as historical provider...in the "Data Mgr/Update Data tab"..
which would end up with ALL data sets being upadated.?????

Where am I going wrong?
profile picture

Eugene

#11
Either you didn't check "Always return data with partial bar", or haven't closed the Data Manager after making this change, or you're hitting a server from the Yahoo's server farm with delayed data. I'm currently getting the 10/07/2010 bar w/o a problem, after hitting 'Go' (having enabled Partial Bar + closed DM + turned On Demand Data Updates).
profile picture

wphill

#12
QUOTE:
haven't closed the Data Manager after making this change

QUOTE:
use the Data Manager "Update the DataSet (Pricing)"...before running the charts


These two statements seem to coflict with each other. DM was left open when I tried running either the data set or the strategy (which is a multi symbol code)...no matter, a 10/7 entry did not result.



QUOTE:
You must create the DataSet using the Yahoo! Provider and run it on that DataSet.

After seeing this then perhaps I have to re-"create" the data set with yahoo as the provider
profile picture

wphill

#13
I re created the data set...YES...in the DM i have today's partial bar entry.
But, NO, when the strategy was run on this data set the performance did not go thru today, nor register a trade....this may be a coding issues. DM was closed. For the chart of the strategy a bar for today automatically came up....i use spy as a benchmark in the multi symbol strategy.

Steve S...his coding...he worked quite hard to return a 3:30 time for the day of the trade...but it never worked...so he advised trying yahoo as the provider...which I am doing now...i suppose that the partial bar must be regarded as the "close"...and it seemingly does not. Any clues/suggestions to pass on to him, should he consider making a modification?
profile picture

Eugene

#14
QUOTE:
These two statements seem to coflict with each other.

There's no real contradiction: as Cone pointed out, ticking the partial bar checkbox is a one-time configuration. Set it and forget it, and then you can have the Data Manager window in any state. By closing that window I just wanted to be on the safe side, ensuring that the configuration gets written (however, it's probably doesn't even required, and a change to the checkbox triggers the necessary event.)
QUOTE:
But, NO, when the strategy was run on this data set the performance did not go thru today, nor register a trade....this may be a coding issues. DM was closed. For the chart of the strategy a bar for today automatically came up....i use spy as a benchmark in the multi symbol strategy.

So Wealth-Lab works as expected, the provider functions correctly, the today's bar comes up? Could you explain the real problem in clear and unambiguous terms, other than "did not go thru, nor register a trade"?
profile picture

wphill

#15
When the multi symbol strategy is run with the data set that has yahoo icon...and trade day of the week in the code is "Thursday"...under the Performance tab...and this is equivalent to backtesting....at the very top of this box it has "Backtest performance report: range"...and in this instance it offers a "from" date and a "to" date...the "to" date is 10/6/2010. Then when i open up the "trades" box the last entry is for Thursday a week ago...not today.


Judging from the details in the symbol box of DM..to repeat what I said earlier...I am getting a bar dated today....but prior to the close of the market the strategy is not using this bar.


profile picture

Eugene

#16
In the Data Manager window, which date does the Y! DataSet show in the "Updated" column?

Are you executing the Strategy on this Y! DataSet (10/7/2010), or on a Fidelity DataSet with the 10/6/2010 data?
profile picture

Cone

#17
The code would explain the problem unambiguously. Please post it.
profile picture

wphill

#18
Cone, Needless to say...Steve is very protective of this particular code...per past email correspondence between you guys I assume that there is a mutual regard for one another...so code follows...and thanks for helping.

CODE:
Please log in to see this code.
profile picture

Cone

#19
So much for unambiguity! Gosh, I thought you were going to show us a 10-liner of a strategy buying on Thursdays. I don't have time to look through that this year!

QUOTE:
at the very top of this box it has "Backtest performance report: range"...and in this instance it offers a "from" date and a "to" date...the "to" date is 10/6/2010.
Well, this seems like the key - the primary symbol was not updating to the most current date. You use SPY as the primary symbol for that rotation script, right?

I'll try to remember to take a look tomorrow at Y! SPY. Some symbols for Y! may not update at all during the day, so this is something you probably can't depend on, though with a Premium Subscription I would guess the service would be better.

Even a better option for data for this purpose, however, is TC2007 (TeleChart). You can update Daily symbols during the day - about a 8000 universe for the U.S. markets in about 60 seconds.
profile picture

wphill

#20
Thanks cone....fwiw...here's the data set (all the etfs had a bar entry during the middle of the mkt day)

DIA DVY EEM EFA EPP EWA EWC EWG EWH EWJ EWM EWS EWT EWU EWW EWY EWZ FXI ICF IEV IGE IJH IJR IJS IJT ILF INP IVE IVV IVW IWB IWD IWF IWM IWN IWO IWP IWR IWS IWV IYE IYF IYG IYM IYR KBE KCE KRE MDY OEF OIH PBW QQQQ RKH RSX RTH RWR SMH SPY VEU VNQ VOE VTI VTV VUG VV VWO XHB XLB XLE XLF XLG XLI XLK XLP XLY XME XOP XRT

Hard to understand why Fidelity can't offer partial bars....active trading platform is very good with real time data.
profile picture

Cone

#21
QUOTE:
Hard to understand why Fidelity can't offer partial bars.
Well, you can see the Partial Bar streaming on a Daily chart in Wealth-Lab just like in ATP. The problem is giving the strategy access to partial bar data, and because of how strategies work that's not going to happen (for the most part).

It looks like the Y! SPY partial bar is coming in okay today. How about for you?

For sure the data is delayed though, so to do what you want, you'll need a Y! Premium Data Subscription, or Telechart.
profile picture

wphill

#22
QUOTE:
It looks like the Y! SPY partial bar is coming in okay today. How about for you?


The Y! spy partial bar is coming through as judged by the chart tab that comes up when the strategy is run on the Y! created data set. Also, when I look at the details of this data set the last bar is dated as the current day even when the market has not yet closed.

So, is the the bottom line that I need :
QUOTE:
a Y! Premium Data Subscription, or Telechart.
.? With these extra services the strategy will have access to the partial bar data?
profile picture

Cone

#23
QUOTE:
when I look at the details of this data set the last bar is dated as the current day even when the market has not yet closed.
That's exactly right. Since this is a static provider, that partial/incomplete bar is added to the chart like any other.

QUOTE:
With these extra services the strategy will have access to the partial bar data?
Sure, you're seeing it right now with Y!, it's just delayed. TeleChart will give you the same result after you perform the update during market hours. I just looked and Y! is only $11 or $14 per month depending on a yearly or monthly subscription. TeleChart is about twice that, but worth it if you use the scanning and need to update more symbols very quickly.
profile picture

wphill

#24
QUOTE:
I just looked and Y! is only $11 or $14 per month depending on a yearly or monthly subscription. TeleChart is about twice that, but worth it if you use the scanning and need to update more symbols very quickly.


I signed up for Y!Premium account. This took a real search to find the site. Whatever... IT DOES WORK toward getting intraday results. I just run the data set for pricing, and then run the strategy. However, as you pointed out, first, I have to re create the data site with Y! as the data provider, and then I have to save the strategy to this duplicate data set. A lot of duplication, considering the number of strategies that I run. And, as you suggest, it loads very very slowly. If it takes fidelity 1minute to load on my xp machine, it will take almost 3 minutes to run the same strategy with they Y! data. I do not understand why the huge difference. And, I don't understand why a wlab strategy does not have access to fidelity intraday data. How much is it about technology and how much about money?

TeleChart is an option. The problem is that I don't like going back to high monthly fees for a data provider. Call me frugal. The degree of slowness in running a strategy will only allow me time to run 1-3 strategies at 3:30pm in order to make a decision. Ideally, I need to run about 20 strategies. And that would take about 50 minutes...perhaps faster on my laptop.

Are not other wlab users hollering for fidelity to give them some kind of access to intraday data..even if there are some limitations...or even if one has to pay a fee?
No matter..I made some progress. Thanks!
profile picture

Eugene

#25
QUOTE:
I signed up for Y!Premium account. This took a real search to find the site.

No searching required: just click "More information on Premium account" on the "Yahoo!" tab in the Data Manager.
QUOTE:
If it takes fidelity 1minute to load on my xp machine, it will take almost 3 minutes to run the same strategy with they Y! data.

What exactly is taking 3 minutes? "Update the DataSet (Pricing)" in the Data Manager? Performing "Run Now" in the Strategy Monitor? Executing the code in a Strategy window?

Nonetheless, if "On Demand Data Update" is disabled and you have updated the Y! DataSet for today's partial bar, there hardly could be any speed difference between Fidelity and Yahoo data.
profile picture

Cone

#26
QUOTE:
wlab users hollering for fidelity to give them some kind of access to intraday data.
That comment is totally out of context. Fidelity provides over 6 years of intraday bars from 30-minute down to 1-minute.

Back in context, you're requesting script access to partial bar data for Daily bars. After sitting back and thinking about it, this is a real possibility Fidelity can consider as an enhancement. When you start streaming in a chart, the first thing that happens is a request for a partial bar; streaming takes over control from that point. So, what you need is an option like Y! to "always show the most recent data" for static [Daily] charts. We'll put it on the consideration list.
profile picture

Eugene

#27
QUOTE:
Back in context, you're requesting script access to partial bar data for Daily bars.

Is it different from ds.PartialValue?
profile picture

wphill

#28
QUOTE:
No searching required: just click "More information on Premium account" on the "Yahoo!" tab in the Data Manager.


You are absolutely right. I can't replicate it but "i thought" that I already tried this click somewhere else within wlab and did not get a response. Your reference gets me there pronto.

QUOTE:
if "On Demand Data Update" is disabled and you have updated the Y! DataSet for today's partial bar, there hardly could be any speed difference between Fidelity and Yahoo data.


Yes, again, you are right. I disabled this above function and Executing the code in a Strategy window...to be more specific...runs at the same speed for both data providers

As I work with using the premium account alongside coded strategies that I am re-saving with the Y! as the data provider...questions are surfacing.


Question: In Data mgr/ yahoo data...within the premium account box.. do I need to log in and put password? I did this just now, but I am not sure that it made a difference?

Question: Originally, I was under the impression that,first, I had to go to data mgr and update pricing for the specific data set associated with a coded strategy..and then secondly, execute that coded strategy in order to get access to the close of the intraday data bar; Or, can I skip that first step?

Question: When I Execute the code in a Strategy window associated with a Y!data set during market time and get performance results that goes up to the intraday date, are the results based on "real time" of when i executed the strategy or when I updated the data set thru data mgr?

Question: For those other instances where Fidelity is the data provider..is the "on demand data update" function necessary to be activated when executing a coded strategy as a way to bypass the step in data mgr of updating the associated data set (fidelity is the provider)...and , of course, this is all for end of day data (close) after the close of the market?
profile picture

Eugene

#29
QUOTE:
do I need to log in and put password?

If you want real-time quotes, then definitely yes. Otherwise you do not appear as a logged in user to Yahoo! and therefore only get delayed quotes.
QUOTE:
Or, can I skip that first step?

Having the DataSet updated before running the strategy eliminates the need for On Demand Data Updates. If you skip this step, your data would not be actual anymore - unless you turn On Demand back again and experience the 3x slowdown due to background internet access.

So leaving that option disabled and updating the DataSet manually prior to running Strategies is the optimal option.
QUOTE:
are the results based on "real time" of when i executed the strategy or when I updated the data set thru data mgr?

The results are of course based on when you updated the DataSet.
QUOTE:
For those other instances where Fidelity

Fidelity does not provide the today's partial daily bar. This is why we're here, right?

Not sure why you're concerned about this step in Data Manager - if this step takes a few moments but makes strategy execution time comparable to Fidelity data. To save even more seconds, perform "Update All Data" with Yahoo! provider checked if you have many Y! DataSets to update.
profile picture

wphill

#30
QUOTE:
If you want real-time quotes, then definitely yes.(log in)


I have filled in the log-in boxes with username.yahoo.com and password. However, I do not see
any confirmation...like "welcome (username)" and when I go to the link at the bottom (more information) I see my status as "active" for the real time package and this is whether I am logged in or not. Nonetheless, after some experimentation it looks as if I am getting real time quotes.

While it is not a good idea to be "logged into fidelity"...because it slows down running time...is it ok to stay logged into yahoo?

RE: On Demand Data Update. This function has been useful to me because I have some data sets with mutual funds. I have since learned that to execute "update data" means update ALL data sets and this produces problems in the data history. Mutual funds not only need to be segregated within data sets but between data sets, too. I am even too hesitant to attempt to perform "Update (all) Data"...does it start right away or does it give time to check off selected data sets?

Re: speed of updating just one data set with yahoo as the provider....even with on demand disabled and being sure not to be logged into fidelity (this slows it down too), it takes 3 minutes to update 210symbols. Despite slow speed I will up update manually the data sets...as you suggest.This is on my xp machine. Does this seem slow?

Overall, it's slow learning but I am moving closer to a structure to enable discipline, focus, and consistency. Thanks for the feedback. Direct suggestions..always welcome.
profile picture

Eugene

#31
QUOTE:
While it is not a good idea to be "logged into fidelity"...because it slows down running time...is it ok to stay logged into yahoo?

I think OK because logging in to Yahoo! is a different nature. It only applies to streaming requests when they're being made. When there are no streaming charts, the provider doesn't keep a live connection to Yahoo.
QUOTE:
I have since learned that to execute "update data" means update ALL data sets and this produces problems in the data history.

If I'm not mistaken, it's a live bug of the Fidelity static data provider (at least it was the case with 5.6). If Fidelity provider is unchecked, it does not affect other DataSets such as Yahoo.
QUOTE:
it takes 3 minutes to update 210symbols.

Let's clarify something first. Do you select "Update (Pricing)"? Or do you select "Update" and have any fundamental provider enabled? In this case, fundamental update adds up to the total time.
profile picture

wphill

#32
QUOTE:
Do you select "Update (Pricing)"?


Defintely. Just the pricing update. (Getting into fundies is just another mountain to climb and less relevant to me since I am using etfs rather than stocks.) By tomorrow I will try updating on my lap top that has the new intel i-5 chip.

QUOTE:
If Fidelity provider is unchecked, it does not affect other DataSets such as Yahoo.


I braved it and clicked "update data"...and now I see that I still have the opportunity to only check yahoo as the provider...before going to the second step of "update all data."

For strategies associated with fidelity as the provider, is the time to complete a strategy execution faster if there has already been a download (i think as you suggest) OR it makes no difference to just rely on the update on demand function?

Is there a way to quarantine the data sets with mutual funds? I do not use them very much..and for now, not at all. Some way to have them as available but inactive? Maybe I will just move them to a flash drive for access at another time. Suggestions welcome.
profile picture

Cone

#33
Just did a Y! 300 symbol DataSet update in 1 min 13 sec. It's easiest just to highlight the DataSet and click "Update DataSet (Pricing)" rather than doing a Provider update (unless you want to update all symbols for the Provider).

QUOTE:
For strategies associated with fidelity as the provider,
It doesn't matter in the S. Monitor, bu in a chart on demand is slower because it only accesses 1 symbol at a time. The Data Manager update is fastest for both Y! and Fidelity.

QUOTE:
Is there a way to quarantine the data sets with mutual funds?
You mean so their Fidelity data requests don't get mixed with stock symbols? Short of creating a new Windows login that only does stocks OR funds, there's no way, not until 6.1 in which it will be automatic.

If you remove the DataSets with fund symbols in them, make sure that the option on "Update Data" to "Update only symbols contained in DataSets" is selected.
profile picture

Eugene

#34
Ditto, Y! always updates fast here - wphill might be hitting a slow server?
profile picture

wphill

#35
eugene and cone, i think that i am beginning to get a handle on strengths,limitations, workarounds etc for this. Next is to see how well yahoo communicates with me about how they correct the monthly charge to an annual charge.

From this discussion, changes ahead on my wish list: fidelity provide access to static partial bar intraday data for those of us that want to run our coded strategies near end of the day. However, there are some cautions: relatively slow speed ...for me... may limit how many strategies I can run and make decisions upon. And, of course, the biggest caution is that the strategy was developed for eod data...a lot can happen in the last half hour.

Another wish is that in DM i can highlight the data sets that I want to run versus running them one at a time. For me, I would highlight a group of yahoo associated data sets, or ditto for fidelity data sets, and first, if i should choose would be to highlight data sets with mutual funds. i assume that data sets with mutual funds always need to be run first.

Re index symbols...i remain cautious. I think that they may cause similar problems that mutual fund symbols did. This happens when an index symbol update fails to give the same ohlc data that stock symbols offer.

at the moment i'm at the point that i need to practice a routine with what i have learned here and then get back with you ...if i need more assistance. encouraging to see you guys keep on eye on how to make wlab better. simple is a good thing for me. how else can one have a discipline.
profile picture

wphill

#36
The Y! updates are running much faster on w7 i5 processor. If I'm using
this information at 3:30ish to decide whether or not to sell-buy, I think
that there will be time to execute strategies that get access to this
"static" data. I have created a Y! data base and saved each strategy
that when "run" will automatically access it.

My take-away is that Fidelity has the same information, and even with free
yahoo data, I...the user...can get static data and create a "partial" bar with it...
but what the wlab user can not do is to have access to this data when..ie. simultaneously... executing a strategy prior to the end of the market day. Do I have this right?

And, in the future wlab may have an upgrade that allows a strategy to have access to static data for the most recent day prior to the market's close. Do I have this right?

If all this is correct, any thought on when this upgrade would occur? The reason I am asking is that I will need to determine whether or not I want to have a monthly or annual rate for the yahoo premium account.
profile picture

Eugene

#37
We, a 3rd party company, don't have information whether Fidelity plans to offer partial daily bars or not.
This website uses cookies to improve your experience. We'll assume you're ok with that, but you can opt-out if you wish (Read more).