Beginning on Tuesday morning, the strategies I use for trading on my desktop suddenly started producing results like they were stuck on Monday's data, and the same thing happened again today. I have been attempting to find the problem without success. I did some cleaning of my data over the weekend, so I'm suspecting the problem is with a file related to my data.
Fortunately, I also have the Strategies I trade on my laptop. As part of my debugging, I copied the data on my laptop to a new directory and overwrote the following directories on my laptop with the ones from my desktop:
DataSets
FidelityFMDFundamentalProvider
FidelityStaticProvider
and everything works fine on my laptop, so I'm pretty sure the problem is not with the data itself.
To rule out possible corruption of the Strategies, themselves, I copied one of my strategies from my laptop to my desktop and it still doesn't work there. I also copied WealthLabConfig.txt from my laptop to my desktop which also didn't make any difference.
Unfortunately, my Strategies are written in a way that is not typical and are fairly complex, and so far, I haven't been able to reproduce the problem with a toy example.
I know this isn't much to go on, but since your response is never, "Reload Wealth-Lab Pro", I'm hoping you can point me to other files to look at and/or try copying back and forth.
Size:
Color:
This looks like a case of Tuesday/Wednesday defined as a market holiday in the Markets.xml file in
C:\Program Files\Fidelity Investments\Wealth-Lab Pro 6\Data\ (and not anywhere else!). (Funny thing, Wednesday was a market holiday but in Germany.) For example:
Fidelity static data stopped at 2018-07-02 1:00pmWLP 6.9 is missing Special Hours for 2016 and 2017And of course the first thing to check is the ending date if the Date Range is applied to your Strategies. (While copying WealthLabConfig.txt from the laptop would've fixed the charting but not the Strategy Monitor as it keeps its preferences in StrategyMonitorConfiguration.xml.)
Size:
Color:
Thanks Eugene. It wasn't exactly that, but that did lead me to the problem.
My Strategies use .SPX as a proxy for each day a symbol should have traded, and for reasons that I don't know, .SPX (and .IXIC) had not updated on my desktop since 9/30/18, so my Strategies kept thinking that was the last trading day, even though most symbols had data for Monday and Tuesday (which was why I couldn't reproduce the problem with a toy example).
That should have been caught when I overwrote the data to my laptop, but I made the mistake of using a quicker copy that only overwrote the older files on my laptop, so it didn't overwrite the .SPX file.
I copied the .SPX file from my laptop back to my desktop and everything is good at least as of Tuesday's data. (I'll check .SPX again after I update the data this morning.)
Now I have to think about changing my Strategies to use markets.xml directly, instead of .SPX to determine each day a symbol should have traded, but I can do that later.
Size:
Color:
Glad you got it sorted out. Nice to know. Keep an eye on the data update log today for a possible error message on .SPX and .IXIC. And it makes me think that you might want to have a tiered detection vs. .SPX only (e.g. .SPX first, then check ^GSPC @ Yahoo and/or Markets.xml).
Size:
Color:
After updating the data, I found out why .SPX and .IXIC weren't updating. I failed to add one of the renamed symbols from my weekend data cleaning (CSRA&2018) to SymbolQuarantineList.txt. When DataManager requested data for .SPX and .IXIC, they were in the same chunk as CSRA&2018. Apparently, because this chunk contained an invalid symbol, none of the symbols in that chunk were updated.
Here is the relevant portion of LastUpdateLog.txt:
QUOTE:
Requesting updates for ZIXI,ZN,ZNGA,ZOES,ZUMZ,ZYNE,.IXIC,.SPX,CSRA&2018
Error requesting data for ZIXI,ZN,ZNGA,ZOES,ZUMZ,ZYNE,.IXIC,.SPX,CSRA&2018
Re-requesting updates for ZIXI,ZN,ZNGA,ZOES,ZUMZ,ZYNE,.IXIC,.SPX,CSRA&2018
....
Symbols whose updates failed for scale - Daily
ZIXI,ZN,ZNGA,ZOES,ZUMZ,ZYNE,.IXIC,.SPX,CSRA&2018
Preparing requests ...
Provider update complete for Fidelity Investments
Obviously, when I added CSRA&2018 to SymbolQuarantineList.txt, the problem was solved. However, I thought I'd let you know about this, because I think this may affect others who may accidentally type an invalid symbol into one of their DataSets.
Size:
Color:
Thanks for sharing.
If I were in your position, I'd come up with a FileSystemWatcher-based C# utility that would notify me on "Symbols whose updates failed for scale..." in the log and schedule it somehow (e.g. Windows scheduled task or service).
Size:
Color:
Thanks. I might do that, but this was another in a series of stupid things. All of the renaming and file creating is done programatically. After I got done, I saw the change to CSRA and did it manually. Obviously, I forgot one step. I'm sorry it resulted in you having to spend time helping me solve my problem, but I certainly appreciate it.
Size:
Color:
Eugene,
In order to solve the problem with .SPX not having updated (and to eventually make it easy to make changes to all my Strategies), I started creating a class library which will eventually contain all the common code used in my Strategies. At this point it does nothing more than I can do through Community Components. However, having sample code available made it easier to get it running.
CODE:
Please log in to see this code.
I assume that Bars.MarketInfo.Holdays just uses markets.xml. If so, it will work regardless of whether the symbol on which the Strategy is being executed has data for that bar, which is what my limited testing shows. Can you confirm this?
Size:
Color:
Yes, the IsATradingDay function is based on the list contained in Markets.xml. It should work for U.S. markets but not for the international symbols with different holiday schedules.
Size:
Color: