Trick to request scheduled data updates more than once a day?
Author: hlh
Creation Date: 10/11/2012 8:03 AM
profile picture

hlh

#1
Hi

Is there a trick to request data updates more than once via the built in scheduler? As different data gets updated at different times it would be nice to run several "Scheduled Automated Daily Updates" automatically at certain, to be specified, times (great when Wealth-Lab remains open all the time).

It is easier to have (extensive) strategies executed quicker in Strategy Monitor at an exact time when data has been updated before than to allow "Update Data on Demand". One strategy over SP500, for example, takes less than 30 sec over updated data but takes 14 minutes (almost 30 times longer) when doing update data on demand on-the-fly.

Thanks!
profile picture

Eugene

#2
Hi Harry,

I think that a hack is easily possible through a scripting solution:

CODE:
Please log in to see this code.



P.S. More of the same kind: FAQ > "Is it possible to make actions on DataSets programmatically"
profile picture

hlh

#3
Excellent stuff, Eugene!

Works flawlessly and allows to pick exactly those DataSets which make sense at a certain time(e.g. when lunched via Strategy Monitor).

Thank you!
profile picture

Eugene

#4
You're welcome.
profile picture

kazuna

#5
I'm testing a code described in this thread:

CODE:
Please log in to see this code.


When I ran it on WLP, I got an exception saying:
QUOTE:
Dow 30 updating
message : Symbols already up to date: AA,AXP,BA,BAC,CAT,CSCO,CVX,DIS,GE,HD,HPQ,IBM,INTC,JNJ,JPM,KO,MCD,MMM,MRK,MSFT,PFE,PG,T,TRV,UTX,VZ,WMT,XOM
progressPercent : 93
System.NullReferenceException: Object reference not set to an instance of an object.
at WealthLab.DataProviders.FidelityStaticProvider.b()
at WealthLab.DataProviders.FidelityStaticProvider.UpdateDataSource(DataSource ds, IDataUpdateMessage dataUpdateMsg)
at WealthLab.Strategies.UpdateAllDatasets.Execute()
Dow 30 updated


Any idea what's wrong?
profile picture

Eugene

#6
Looks like there was an issue updating symbol VZ (?) but the update finished nonetheless. Does this happen to Fidelity's Dow 30 DataSet only? Have you tried other providers too or they aren't affected?

The code still works for me as expected. As the data gets updated, I can visibly see the requests to a dozen of data feeds fired up by WL in a traffic sniffer. (Right now I'm troubleshooting and fixing a data provider gone bad).
profile picture

kazuna

#7
This happens to any Fidelity DataSet (e.g. "Nasdaq 100" and "S&P 100").
But this doesn't happen to Cryptocurrency DataSet.

Also this happens to the first Fidelity DataSet only.
If "Dow 30" is the first Fidelity DataSet, this doesn't happen to the following Fidelity DataSet ("Indices", "Market Sentiment" and "Nasdaq 100" so on...).
profile picture

Eugene

#8
You know that this is an unsupported "hack" into the API which is supposed to be implemented in a data provider rather than be called from a WealthScript Strategy. For this reason your mileage may vary. It would be a reasonable guess that Fidelity DataSets may require some sort of special treatment (that I'm not aware of since I don't work with WLP).

If this only happens to the 1st Fidelity DataSet, a workaround looks obvious to me: create a F. DataSet on top of any other alphabetically e.g. "_1" with some single unimportant symbol.
profile picture

kazuna

#9
QUOTE:
If this only happens to the 1st Fidelity DataSet, a workaround looks obvious to me: create a F. DataSet on top of any other alphabetically e.g. "_1" with some single unimportant symbol.
After testing the code little more, the exception happens not only to the 1st Fidelity DataSet but also other Fidelity DataSet. Apparently this unsupported "hack" has an issue with Fidelity data provider. I have to find other solution to update the DataSet more than once a day.
profile picture

kazuna

#10
Is it possible to automate the data update using AutoIt?

I can open Data Manager like this:
CODE:
Please log in to see this code.

Once [Update Data] tab is opened, I think I can start the update like this:
CODE:
Please log in to see this code.


But I cannot find a way to change the tab, for example changing from [Data Sets] tab to [Update Data] tab.

Any idea or solution to control the tab from AutoIt script?
profile picture

Eugene

#11
QUOTE:
But I cannot find a way to change the tab, for example changing from [Data Sets] tab to [Update Data] tab.

Off the top of my head, you can transmit standard Windows shortcuts for changing tabs which work globally (in the Data Manager, in your browser or spreadsheet app...) - like Ctrl-PgUp and Ctrl-PgDn. Something like "{^PgDn}" in your case to get to "Update Data".
profile picture

kazuna

#12
The two ControlSend code above both work great, however, I cannot change the tabs no matter which control I send Ctrl-PgUp and Ctrl-PgDn.

CODE:
Please log in to see this code.


I tried all of them like these, however, none of them work.
Has anyone ever succeeded changing the tabs from AutoIt?
profile picture

Eugene

#13
This code definitely works for me in WLD 6.9 after fixing the syntax error in your code i.e. Fidelity Wealth-Lab Pro not enclosed in quotes:
CODE:
Please log in to see this code.
profile picture

kazuna

#14
CODE:
Please log in to see this code.


It was a copy-paste error. The actual code is like this but it still doesn't work.
Did all those five ControlSend code work for you on Data Manager?
profile picture

Eugene

#15
Neither one of these works for me:
CODE:
Please log in to see this code.


Each one of them does:
CODE:
Please log in to see this code.
profile picture

kazuna

#16
I think I figured out.
When "Data Sets" is current active tab, the following code works and it changes to the next tab,.
CODE:
Please log in to see this code.


So far I found this is the only control name I was able to change the tab.

Apparently it depends on Window active status.

However, only this one works all the time regardless of the window active status (even when WLP is minimized).
CODE:
Please log in to see this code.
profile picture

Eugene

#17
QUOTE:
When "Data Sets" is current active tab, the following code works and it changes to the next tab,.

I cannot imagine otherwise when you invoke the Data Manager control programmatically (i.e. via AutoIT3). It's always the "Data Sets" tab that gets focus at open. Just close the DM from your .au3 script after the update process finishes to ensure that it reopens at the right tab again.
profile picture

kazuna

#18
I was actually trying to run the data update again after Automated Daily Update in which case "Data Update Log" tab gets focus.

Automated Daily Update used to work flawlessly in the past few years.
Unfortunately, however, it started skipping the update on some random Fidelity Static Provider symbols lately.
LastUpdateLog.txt says the update completed but there are few symbols not updated like this.
QUOTE:
GLD 0 bars No data 0 bars added

In order to workaround this problem, I need to run the update more than once.
profile picture

Eugene

#19
Glad to help you.

However, you might want to raise a new forum thread or support ticket for your new issue of random skipped updates in the Fidelity static data.